Getting a New Employee Coding in 30 Minutes

By Lasse Lumiaho on December 9, 2016

When it comes to customer acquisition, onboarding is the new conversion according to Intercom. They claim that “the latest batch of billion-dollar companies are built on making their users successful, and that means providing great onboarding.” It makes perfect sense because if you make your customers successful from day one, it is very likely your business will be successful as well.

The same is true for recruitment. To make sure your employees are successful in their jobs, you should make sure they can be successful on their first day. We have recruited about a dozen software developers since founding, and with our recent funding we plan to grow the development team.

To make sure our new software developers get to carry out productive work as quickly as possible, we have created an installation guide that takes about 30 mins to complete. Every new recruit goes through the installation guide while making sure it is updated with any changes in the process.

The “hardware kit”

The “hardware kit”

The “hardware kit”

The “hardware kit” consists of a default setup:

  • A Macbook Pro laptop (16GB variants)
  • A mouse or trackpad
  • An external keyboard
  • An external screen
  • An extra charger for home
  • A laptop stand
  • A notebook
  • A T-shirt.

New hires can choose to use or not use any of the peripheral devices depending on their personal preference. We want to make sure they can work the way they feel most comfortable. The right to use the T-shirt starts on the first day.

When our newest hire Arttu started, he set himself a goal to have code running in the production environment before he would use his hoodie. It took him three days get there, he implemented our first AWS Lambda pipeline. We think this is an awesome target and a nice way to honor the hoodie. From now on, we will include the same goal in our onboarding process for everyone.

Development environment

To be sure that the code works exactly the same way in development, testing and server environments, we build and run every component as a separate Docker container. Using Docker not only unifies the environment, but eases the development workflow and has a much smaller memory requirement compared to running virtual machines for each component.

Even though most of us use Mac laptops, having everything “dockerized” allows developers to choose whatever OS they prefer. For example, Eljas uses Linux on his Macbook Pro.

The figure below shows the complete environment, however, depending on the component under development, the developer will run only relevant containers. For example, making changes to the dashboard UI just needs the “dashboard” and “postgres” containers. This is slightly different from our staging and production environments where multiple instances are needed for scaling up and/or in reducing end-user latency. development setup and containers development setup and containers

The installation guide

To make the above mentioned setup work you need to install a bunch of things on your laptop, and configure the setup accordingly. Below is our five step process to get a new laptop up and running in less than 30 mins.

Like many software development teams, we use Github and Docker to build software. We turn on FileVault (the default macOS disk encryption) for all computers, in case they are stolen. All steps are generic and can be used for a setup similar to ours.

  1. Install Homebrew, Git, git bash completions, Virtualbox, Docker Toolbox, and Vagrant.
  2. Configure your git:
     git config --global "Your Name" git config --global "" git config --global color.ui true git config --global checkout git config --global branch git config --global status git config --global alias.dc 'diff --cached' 
  3. Generate and add SSH key to Github, and clone the repositories you want to work on.
  4. Run docker-machine create --driver virtualbox default and run eval $(docker-machine env default), it helps spin up docker containers quickly. Also remember to add it to your .bash_profile.
  5. Run script to setup and run the full stack environment.

If you got excited or you’re interested to know more details about our containerized development setup, leave a comment below or shoot an email to dev[at] We are also hiring, and all of our positions are available at

Tags:, Recruiting