This post is starting new series about my own Code katas.
In these series I will be publishing code katas which also can be seen as a recruitment tasks.
About tasks (and katas)
These tasks are great opportunity to improve your programming, designing and testing skills. While some of katas that I encountered are simple and can be resolved without any framework or technology, here I will be posting tasks which focus on designing web applications, especially REST backend applications.
These tasks have great scope of work to do. From one perspective, tasks are non trivial, and can not be done in one hour. On the other hand, they do not require to design whole web-app, which is very difficult and time-consuming for one person.
By doing these tasks you have great opportunity to improve your skills. Sometimes at work we can not create and design something from scratch. Some of us only maintain mature legacy systems. Some of us wants to play with new framework, technology or even design approach.
Want to try Domain Driven Design? Want to create web-app followed by onion architecture? Or maybe you want to try Test Driven Development and write tons of tests?
I think that these tasks are great opportunity to accomplish your desires.
You can implement them many times, taking and exploring new paths each time.
Just spend some evening time after work to improve your skills.
Design Tickets Reservation system
Your startup company is creating big online tickets reservation system for many events (concerts, sports). Your role is to design subsystem responsible for real time reservation.
You know that there will be interactive map for each event, and users will be able to reserve and buy tickets by selecting places on the map and then providing their personal details.
System should be efficient and should handle reservations gracefully.
Your team lead asks you if you can do it? Do you?
When you complete your task and document it, feel free to send it to me.
There will be wall of glory with finished linked tasks solutions.