Welcome to the technical test for the Mid-Level Backend Developer position at Pingback! In this challenge, you will build a backend system to process marketing campaigns. Below are the project details and submission instructions.
Develop a backend application that:
- Receives marketing campaign details (title, recipient emails, message) via AWS Lambda (HTTP request).
- Adds campaign requests to a queue (AWS SQS).
- Processes queued campaigns asynchronously using AWS Lambda.
- Logs the simulated email sending process.
Pingback needs a system to manage the sending of mass email campaigns. Your task is to build an AWS Lambda function that receives campaign data (title, email list, message), sends it to an AWS SQS queue, and processes it with another AWS Lambda function that simulates sending emails.
- Language & Framework: Node.js.
- API & Processing:
- AWS Lambda to handle campaign submissions (no separate API instance required).
- AWS SQS for queueing campaign requests.
- AWS Lambda for processing queue messages.
- Deployment: The solution should be deployable within AWS Free Tier.
- Logging: Use AWS CloudWatch to log processed campaigns.
-
Campaign Submission:
- AWS Lambda function receives campaign title, list of recipient emails, and message.
- Validates input data (e.g., required fields, valid email format).
- Sends campaign data to an SQS queue.
-
Queue Processing:
- AWS Lambda function listens to the SQS queue.
- Processes messages and logs campaign details.
-
Logging & Monitoring:
- CloudWatch logs for tracking campaign processing.
- Basic error handling and retry mechanism.
- Source code in a GitHub repository.
- Updated README with setup and deployment instructions.
-
Project Setup:
- Initialize a Node.js project and install dependencies (
aws-sdk
). - Configure AWS credentials for local testing.
- Initialize a Node.js project and install dependencies (
-
Lambda for Submission:
- Implement AWS Lambda function to receive campaign data.
- Integrate AWS SQS for queueing campaign submissions.
-
Queue & Processing:
- Set up an SQS queue in AWS.
- Develop another Lambda function to read and process queue messages.
-
Deployment & Testing:
- Deploy Lambda functions and configure SQS.
- Verify Lambda execution and SQS integration.
- Submit a GitHub repository link with your project.
- Deadline: 1 week from receiving the test.
- Send your submission to [email protected].
- Functionality: Does the system meet the requirements?
- Code Quality: Readability, structure, and best practices.
- AWS Usage: Proper implementation of Lambda and SQS.
- Documentation: Clear setup and deployment instructions.
If you have any doubts, feel free to contact us at [email protected]. Good luck and happy coding!