Software Engineer II, Backend API Developer
HQ Location: Columbus, OHIO
The engineering team at Root strives to be one of the most transformative engineering teams ever. We’re changing the way an industry works by leveraging technology and data to build the best products possible. Even with our significant growth, we operate in small teams that are given ownership over projects and results. We’ve found that the people closest to the problems are the best at solving them. We’re actively hiring Engineers remotely and excited to announce that Root is a “work where it works best” company. Meaning we will support you working in whatever location that works best for you across the US. We will continue to have our headquarters in Columbus and offices in other locations to give more flexibility and more choice about how we live and work.
Our tech stack includes:
- Ruby / Rails backend, RSpec for testing
- Small amounts of native iOS and Android
- Small amounts of Rust for high performance use cases
- Deployment to AWS ECS using containers
- Datadog for observability
- Buildkite for CI
Our team excels at delivering software to solve the problems in front of us at Root: presently, a suite of world-class mobile, web, and server-based products obsessed with the customer experience. We’ve shaped our team and process around this; we know that constant iteration and experimentation produce the best results.
For more information on engineering at Root see root.engineering
We divide the areas of responsibility for engineers into three major areas:
Technical: The skills and knowledge that make up an engineer’s basic problem-solving toolbox.
Planning and Execution: The ability to plan and execute work across a team of engineers beyond basic technical solutions.
Working with Others: The ability to work effectively with other engineers and people in other functions.
What we look for in Software Engineer IIs on Core Services:
- Strong understanding of dynamic languages and client-server architecture
- Incorporates testing and thinks about reliability as a natural part of delivering working software
- Experienced with multiple programming paradigms
- Experience with diagnosing and problem solving real time issues in production environments
- Substantial knowledge of databases, SQL, and version control tools
- Some understanding of infrastructure and devops
- Interest and aptitude in API and microservice design patterns along with working in a polyglot environment
Planning and Execution
- Plans and completes medium complexity tasks/projects without supervision
- Knows when to ask for help when tasks/projects become more complex than anticipated
- Foresees issues and requirements for projects and features
- Completes pre-planned tasks in an efficient manner
- Thinks critically about work to guarantee business functionality. Understands and takes into account business goals into their technical decisions.
- Can break down initiatives into incrementally implementable deliverables
Working with Others
- Able to work with other engineers on the team to tackle complex issues
- Able to coach less experienced engineers on software engineering techniques and best practices
- Work closely with Product to deliver high-quality features
What we do on Core Services
- Build foundational services consumed by other Root engineering teams
- Partner with product teams on service design and delivery
- Define best practices for service development
- Champion the benefits of decomposition through micro/macro services
- Collaborate with other platform related teams on improving developer experience