Engineering at Root

Open Positions

  • Senior Software Engineer

    Scope of Impact: Team/Initiative/Company View details

  • Mid-level Software Engineer

    Writes clean, functional, well-tested code View details

  • Junior Software Engineer

    Excellent command of basic programming skills View details

Overview

Hello! We’re the engineering team at Root. We’ve put tremendous care into defining who we are and how we work, and we want to share it openly. Job postings often contain only a fraction of the information that thoughtful and deliberate people want to know when choosing a place to work.

Given the lack of detail, it’s not surprising that many people end up working somewhere through a connection to the company rather than applying for a position directly. A friend can easily tell you what it’s like to work at a company. A job description typically includes a series of bullet points which barely tell you anything. While the length of this content may take some time to read through, we’d love for you to gain a preliminary understanding of who we are and how we work. Maybe it’ll be a match for the kind of place you want to spend your time — or maybe it won’t. But hey, at least you can figure that out before you go through a few rounds of interviews. If Root sounds like a place where you’d like to spend your time, please get in touch with Chris Evans at chris.evans@joinroot.com. We’d love to hear from you.

What is Root?

Root is a car insurance carrier, like GEICO and Progressive. We use data science and technology to identify and insure good drivers, reducing insurance premiums for good drivers as a result. Car insurance is a compulsory product — it’s literally illegal to drive without it. Unfortunately, people are paying significantly more than they should be because their car insurance carrier only looks at their demographics and not how they drive. We’re fixing that.

Root was started in 2015 with backing from Drive Capital. Although creating an insurance carrier from scratch was an audacious undertaking, we realized we needed to own everything end-to-end to build an exceptional insurance experience. With schlep blindness in full effect, we made it happen. Most insurance carriers were started a century ago and are running on an amalgamation of technology that is decades old. Root is the manifestation of “software is eating the world” in insurance. Our core expertise is responding to trends in technology by incorporating new sources of data into insurance pricing and building great products and user experiences on top of it.

In March 2018 we raised a $51M Series C — one of the largest rounds ever raised by an Ohio tech startup.

Companies in every industry need to assume that a software revolution is coming.
Mark Andreessen

The Team

In addition to demonstrating the leverage that can be achieved by building an insurance carrier on top of modern technology, we’re also proving what can be accomplished by small teams of exceptional people.

Steve Jobs once said that the success or failure of a startup depends on the first ten employees. I agree. If anything, it's more like the first five. Being small is not, in itself, what makes startups kick butt, but rather that small groups can be select. You don't want small in the sense of a village, but small in the sense of an all-star team.
Paul Graham

Although we’ve grown beyond the first ten, we operate in small teams that are given ownership over projects and results. Root is where it is today due to the hard work, ingenuity, and exceptional performance of the people here. The idea behind Root is simple and well-known. Insurance companies have known for a long time that how people drive is more predictive of their likelihood of getting into an accident than their demographics. However, actually executing on this idea is challenging. We’ve been fortunate to build an incredibly talented team that has brought this idea to life.

Team Process

We build software using an agile methodology, working in cross-functional teams comprised of software engineers, product managers, data scientists, and designers. We work in one-week iterations. We kick off iterations by gathering together as a team to review story cards for the week. We have a daily standup to share progress from the previous day, plans for the current day, and any issues or blockers. At the end of each iteration, we have a company-wide showcase to share our results and celebrate our progress. The showcase also creates accountability and ensures we’re consistently delivering working software.

Periodically, teams gather for a retrospective. We discuss what’s going well and what’s not going well, and we identify action items we want to take. Reflecting on how to become more effective as a team is a critical component of our process. The entire engineering organization at Root does a retrospective each quarter.

Our product team sets roadmaps and objectives on a quarterly basis. As we wrap up one quarter and plan to start work on the next, we set aside three days for Hack Days. It’s an opportunity for the engineering team to hone skills, explore new technologies, and work on problems entirely of their choosing.

Development Process

  • Card Wall

    We use Trello for our card wall. We make changes to code using feature branches and use a pull request workflow on GitHub. Once a change has been reviewed, it’s merged into master.

  • Weekly Releases

    For our mobile apps, we release weekly. We cut release branches every Tuesday morning, at the end of the iteration. If a feature isn’t quite ready, we wait to ship it until the next release. We value the consistency and predictability of the weekly “train schedule” release strategy. For our backend, we release daily.

  • Pair Programming

    We primarily work individually, but we also periodically do pair programming. We have pairing stations set up to be comfortable and conducive to collaboration: two monitors (mirrored), two keyboards, and two mice hooked up to a single computer. While our pull request process can help engineers learn and grow, there are many aspects of software development that can’t be taught via pull requests. PRs only contain the end-result of writing code; they don’t capture the process of getting there. Tools, techniques, and thought processes can all be improved via pairing.

Values

We share Etsy’s value of choosing boring technology. As engineers, we pay attention to trends and love exploring new tools. When we make decisions for how we want to build software, we do so judiciously and deliberately. We currently leverage many new tools across our projects, such as React Native, Buildkite, and Amazon’s Elastic Container Service. We also rely on the tried and true solutions: Rails, Postgres, and Redis.

  • React Native

  • Rails

  • Docker

  • AWS

  • Buildkite

  • Postgres

  • Redis

Technologies

We’ve listed the technologies that we work with last, because we believe that people care more about what they’ll be building and who they’ll be building it with than the exact tools they’ll be using.

We’ve built Root using technologies that allow us to maximize the value we’re able to create for our customers. Our goal is to deliver software at the optimal intersection of quality and speed, recognizing that our needs will be rapidly evolving in the early stages of the company.

  • Rails

    We’ve built our backend in Rails. It’s mostly an API for our mobile clients, but we have some web views for our internal admin dashboard. Ever since DHH published that video of building a blog in 15 minutes back in 2005, it’s been apparent that Rails is a framework designed to make developers happy and productive.

  • React Native

    Our mobile apps are written in React Native, along with some functionality built in native code on each platform. The cross-platform reuse of React Native is beneficial, but even within a single mobile platform, we’ve found our development velocity to be higher than it is with native code. With features like hot reloading and better testability, the feedback loop in the development process is significantly faster. We released an open source library that we built to enable better unit testing of React Native components.

  • ECS

    We deploy to Amazon ECS. While we enjoy devops work, we keep our production infrastructure as simple as possible. Many engineering teams seem to spend a disproportionate amount of time on infrastructure wizardry: orchestrating containers, configuring service discovery, distributed request tracing, and the like. We’ve positioned ourselves to spend the majority of our time on creating direct value for our customers in building our products. So far, we haven’t received a single email from our customers asking about our tech stack or deployment strategies.

  • Buildkite

    We run Continuous Integration through Buildkite. When our backend builds are successful, we push a container to Amazon’s Container Registry. Our client builds can then pull down the latest backend container to run the integration test suite.

Opportunities for Improvement

While it’s tempting to be entirely self-promotional and only convey the good things about working at Root, we also want to share areas that we’re working on improving. We have a retrospective every quarter to identify opportunities for improvement. Here are a few things from our last retro:

  • Strategy for upgrading React Native
  • Upgrading in general (iOS 11, Android Studio, gradle)
  • Documenting our coding standards
  • Build failure between midnight UTC and midnight Eastern

Our Interview Process

We’ve designed our interview process to allow us to make hiring decisions confidently, while also being efficient with candidates’ time.

We ask everybody interviewing with us to write a little bit of code. Formally, this is known as a work-sample test. Of course, it can be difficult to ascertain true engineering ability from a small bit of code, but we’ve found this exercise to be a representative indicator of ability.

Following the coding exercise, we schedule a one-hour phone interview with two engineers at Root. We cover a variety of questions to try to asses breadth and depth of expertise, as well as engineering philosophy. We’ve shaped our topics to reflect the actual work that we do at Root and the skills we’d require for the position.

Finally, we bring people in for an on-site interview.

Getting Involved

We love being part of the larger communities around engineering, startups, and insurance, participating whenever we can. Look out for us at events around town, or contact us if you’d like to chat about doing something together.

Planning an event? Let’s chat.

If you’re interested in chatting about opportunities with our engineering team, we’d love to learn more about you and for you to learn more about us.

Clara Kridler

Head of People
Email me

Chris Evans

People Team
Eng Roles
Email me