Code Monkey home page Code Monkey logo

hiring-backend's Introduction

Ruby Code Exercise

Write an app that:

  • Read/parse people information represented in different formats

    Find a sample of each format in spec/fixtures

  • Combine the entries from the different formats

  • Sort the entries by first_name

  • Format each entry to <first_name>, <city>, <birth_date M/D/YYYY>

  • Write at least 2 specs, but no more than 5 - we don't expect 100% coverage

Notes

  • Create as many files/classes as you need
  • Use anything you need from Ruby standard library
  • Don't change files under spec/fixtures
  • Don't change the existing functional test at spec/functional/app_spec.rb
  • Don't use any gem to accomplish the solution
  • Don't worry about invalid input data (if your solution works for the sample data, that's what we need)

What we expect to see in your solution

  • Adherence to Ruby's conventions and idioms
  • Cleanliness/Clarity: Is the intent of the code obvious? Are things named appropriately? Please void overly clever solutions.
  • Consistent style: We don't expect you to follow a specific Ruby code style, but you should be consistent with your choice.
  • Elegant Object-oriented Design - please avoid imperative or functional coding style. Typically the good solutions will have at least two classes other than PeopleController
  • Maintainability: How flexible is the code?
  • Testability: Is it easy to test the code? Please demonstrate with unit tests.
  • Use DRY, KISS and SOLID responsibly to find the sweet spot between an under-engineering and over-engineering.

Instructions

  1. Clone the repository, open this directory, and run bundle install

  2. Run bundle exec rspec

    Notice that there is one functional test failing

  3. Create a branch to work on the solution

  4. Write code and unit tests until the functional test at spec/functional/app_spec.rb becomes green

  5. Push your branch and create a pull request on GitHub

hiring-backend's People

Contributors

pseudoclaws avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.