Skip to content

Instantly share code, notes, and snippets.

@spockNinja
Created May 30, 2018 20:01
Show Gist options
  • Save spockNinja/4a24d5b34890c2cbeb5a9ef04162774a to your computer and use it in GitHub Desktop.
Save spockNinja/4a24d5b34890c2cbeb5a9ef04162774a to your computer and use it in GitHub Desktop.
Product Development Platform Engineer Hiring Project

Product Development Platform Engineer Project

This project is meant to demonstrate several of the skills we are looking for in the Product Development Platform Team. Some requirements are left intentionally vague so that we can see your architecting and problem solving skills, and to allow you some creative freedom. That being said, do not hesitate to ask us questions about the project.

Project Description

Create a serverless application on AWS that deploys via CloudFormation.

This application should expose two API endpoints.

  • subsrcibe
  • unsubsribe
    • Accepts an email address
    • Removes that email from the daily subscription

Deliverables:

Put all of your relevant code and documentation in a git repository. We prefer GitHub, but as long as it is web accessible, you can put it up wherever you have an account.

How you organize your project and generate CloudFormation is up to you. All we ask is that you include the final CloudFormation template in a cloudformation.yaml file at the root of your project.

Notes:

  • You should be able to stay in the AWS "Free Tier" for this project.
  • While AWS SES would provide prettier email formatting, it is not free. You may use AWS SNS topics with an email endpoint.

Bonus Points

If you have time and really want to impress us, here are a few things we would enjoy seeing.

  • Add tests and CI via CodeBuild
  • Add CodePipeline to auto-deploy your CloudFormation template
  • Add a simple UI that uses your API
  • Fully utilize APIGateway's capabilities in the swagger specification (validation, models, etc)
  • Extend functionality
    • Allow subscriptions to schedule their emails
    • Allow subscriptions to choose topics for their random content
    • Get creative, and show us something cool
  • Add a CloudWatch dashboard that shows important metrics for monitoring your service
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment