I applied for a position in Adidas, after a brief interview they handed this code challenge (attached in quote) which, from my point of view, it seems really too time consuming and relatively massive for a senior position...
I mean ...come on, thats no longer a "code" challenge ...these guys are requiring to design and implement a full architecture
What do you think about this?
CODING CHALLENGE
• Following the basic architecture principles :
• ARCHITECT SOLUTIONS IN A WAY THAT MAKES THEM RE-USABLE .
• COMPONENTS ARE DESIGNED TO SCALE BASED ON INCOMING LOAD.
• ALWAYS CARE ABOUT DATA & IT SECURITY
• DESIGN FOR FAILURE– YOUR SOLUTION HAS TO ASSUME AND HANDLE EXCEPTION CONDITIONS
• We want to create a service that given an origin city will return a list of itineraries , one based in the less number of
connections and the second based in the less time. For that you will have to implement a couple of microservices :
• Implement an API in order to expose the data related with a city defined with : city, destiny city, departure time, arrival time,
stored in a data base . You can choose it .
• Implement a Restful service that will consume the previus API in order to calculate the sortest way( in time and in
connections ) to travel from one city to another , independent of the departure time .
• Using the Java framework of your choice (ideally use Spring Boot) and Java8.
WHAT WE EXPECT FROM YOU
• Implement this application following a microservice approach .
• Run each microservice in a different docker container linking them with any docker technology.
• Create a README.md explaining how to build/run/use the app naming every framework/library you use and state
what it does andwhy you used it.
• Every person having Java and some standard tools (Ant, Maven, Gradle) should be able to check out the code,
build and run the app locally.
• Provide API documentation , API Bluprint , swagger or similar
• Please use english as documentation language.
• BONUS 1 : Secure your API
• BONUS 2 : Implement the solution using Spring Cloud.
• BONUS 3 : Create a slide explaining your pipeline proposal for the application.
• When you're done check in your solution into any public GIT repo hoster (github, bitbucket, etc.) and send us the
link and any other documentation you want.
• Following the basic architecture principles :
• ARCHITECT SOLUTIONS IN A WAY THAT MAKES THEM RE-USABLE .
• COMPONENTS ARE DESIGNED TO SCALE BASED ON INCOMING LOAD.
• ALWAYS CARE ABOUT DATA & IT SECURITY
• DESIGN FOR FAILURE– YOUR SOLUTION HAS TO ASSUME AND HANDLE EXCEPTION CONDITIONS
• We want to create a service that given an origin city will return a list of itineraries , one based in the less number of
connections and the second based in the less time. For that you will have to implement a couple of microservices :
• Implement an API in order to expose the data related with a city defined with : city, destiny city, departure time, arrival time,
stored in a data base . You can choose it .
• Implement a Restful service that will consume the previus API in order to calculate the sortest way( in time and in
connections ) to travel from one city to another , independent of the departure time .
• Using the Java framework of your choice (ideally use Spring Boot) and Java8.
WHAT WE EXPECT FROM YOU
• Implement this application following a microservice approach .
• Run each microservice in a different docker container linking them with any docker technology.
• Create a README.md explaining how to build/run/use the app naming every framework/library you use and state
what it does andwhy you used it.
• Every person having Java and some standard tools (Ant, Maven, Gradle) should be able to check out the code,
build and run the app locally.
• Provide API documentation , API Bluprint , swagger or similar
• Please use english as documentation language.
• BONUS 1 : Secure your API
• BONUS 2 : Implement the solution using Spring Cloud.
• BONUS 3 : Create a slide explaining your pipeline proposal for the application.
• When you're done check in your solution into any public GIT repo hoster (github, bitbucket, etc.) and send us the
link and any other documentation you want.
What do you think about this?
Comment