This project is designed to assess your current abilities as an API developer for Universe. When you're finished zip up your entire project and source files and email it to us.
Create an API comprised of 2 or more microservices. The API should allow you to save and retrieve blog posts, save and retrieve comments on blog posts, and search blog posts. We're not looking for anything over the top, the search can be a very simplistic title based search. The data can be stored in memory or in a simple database.
You can decide the best way to divide these into separate services. We're looking for clear logical division.
Thats it as far as guidelines. They are purposely vague because we'd like to see what you build for a simple api. In order to keep you from going overboard with architectures and clever solutions, we recommend limiting yourself to 2-4 hours. But take as long as you need to produce something you're proud of.
- Code well separated into reasonable classes and functions. We use MVC for Universe but you can use any architecture pattern you want as long as you can explain it to us. Don't feel the need to over architect this, it is a simple app, but your code should be clean and maintainable.
- Semantic, well formatted Swift code. We use 100% Swift at Universe. We understand for some people Swift is more of a hobby than the language they use at work. Let us know if this is your first Swift project. It is not a problem, everyone starts somewhere. Think of this as a chance to use Swift on a simple greenfield project to learn.
- Clear understanding of a microservice architecture. Universe's main API is currently a monolith. But we want to see what a greenfield microservice API looks like to you because we expect to transition.
- We'd love to see instructions on how you'd deploy your collection of services. You can plan deployment for AWS, Heroku, Linode, etc. We don't care about the subjective details, we just want to see a well thought out deployment plan. Bonus points if you deploy it.
- Good documentation. We don't care about the documentation format, how its generated, or if you write it by hand. We just want to see your API accompanied by good documentation that would allow any API consumers to get up and running quickly.