Skip to content

herbenderbler/data-engineering

 
 

Repository files navigation

Code Climate

Thank you for taking the time to review my submission the Sr. Engineer position. I made sure to fulfill all of the base requirements, while adding a few extra niceties.

My commit messages should be self explanatory and give you an idea of where my thought process went with this project. I also made sure I tested everything thoroughly, using RSpec and simplecov to ensure my paranoia.

One major deviation from the base requirements is that I decided to use redis and resque to queue the processing of the uploaded subsidiary files. I felt this would be closer to a "real world solution", plus it was just a fun exercise. I have listed detailed instructions below to help you get everything setup and installed to run my application. I hope you enjoy reviewing it as much as I enjoyed writing it.

Prerequisites

  1. redis 2.6.13
  2. Ruby 1.9.3-p429
  3. Rails 4.0.0.rc2
  4. sqlite3 3.7.12

Installation

In order to install Ruby and Rails, I used RVM, but feel free to go with your preferences. I installed redis and sqlite3 using Homebrew. I'll also give instructions below on installing these using RVM and Homebrew.

Install redis

brew install redis

Install sqlite3

brew install sqlite3

Install Ruby

rvm install ruby-1.9.3-p429

Install RubyGems (if necessary) - RubyGems installation instructions

Install all necessary gems

gem install bundler (if necessary)
cd ~/path/to/my/app
bundle install

Setup database

rake db:create db:migrate db:test:prepare

Run the tests

bundle exec rspec

Generate spec coverage reports

Thanks to simplecov, you can view the coverage of my RSpec tests. Every time you run my test suite, new reports are generated by simplecov and can be found in the /coverage directory within my application. Just open up the index.html in your favorite browser to check them out.

Start the servers

This will start thin and resque simultaneously and allow you to test away:

foreman start

About

The engineering challenge given as part of LivingSocial's interviewing process.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Ruby 94.7%
  • JavaScript 2.9%
  • CSS 2.4%