slape / vending-machine-take-home-public

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

At MEDNAX, we put a huge emphasis on Test Driven Development (TDD), continuous integration, pair programming, continuous delivery and SOLID principles. We work in a collaborative environment with a heavy focus on TDD to continuously deliver value to our customers in all languages and environments. We are a continuously improving organization seeking individuals to add to our culture, not conform to it.

Candidates are asked to complete a programming exercise as part of the application process. This is your opportunity to show us what you got. It’s also an opportunity for you to get a feel for what it’s like to work with us asynchronously on a non-trivial programming task. Please ask questions and prepare to receive feedback! Most candidates will receive feedback from our engineers and be asked to make changes before moving onto the next stage of the process. This is a normal part of working on a distributed software team!

At MEDNAX, we practice Test-Driven Development and expect you to test-drive your solution to this problem. Exercises without tests or with only minimal coverage will not be considered. It is not important that you finish all of the user stories. Do not spend more than 4 hours on this exercise.

We will evaluate both your production code and test code on the basis of:

  • Does the solution include a README with build / run steps?
  • Is the code test-driven?
  • How easy is it to fetch dependencies?
  • Is it easy to build and run the tests?
  • Is the project organized in a way that makes sense?
  • Are the naming conventions clear?
  • How clean is the code at the module/class and function/method level?
  • Bonus points for CI/CD

You may complete the exercise in one of the following languages:

  • Ruby
  • Groovy
  • Java
  • C#
  • C/C++
  • Python
  • JavaScript
  • Scala
  • Swift
  • Go
  • Rust
  • TypeScript
  • Kotlin

Please use a Github or Bitbucket repository with frequent commits so that we can see how you approached the problem. Our goal is to get an understanding for how you solve problems. If we decide to move your application forward, the next step is to have an in-depth conversation with you about your work and ask you to live-code a small enhancement to the code exercise.

When completed, please email the URL to your Github or Bitbucket repository to your HR contact.

About