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 assigned work beyond basic technical solutions. Working with Others: The ability to work effectively with other engineers and people in other functions. Scope of Impact: Individual/Team What we look for in a Software Engineer II:
Technical Skills
Writes clean, functional, well-tested code
Experienced with several programming paradigms
Deep understanding of client-server architecture and web technologies
Deep understanding of version control tools
Solid knowledge of databases and SQL
Basic understanding of infrastructure and devops
Planning and Execution
Completes large pre-planned tasks in an efficient manner
Able to take on medium unplanned feature work and bugfixes
Thinks critically about assigned work to guarantee business functionality. Understands and takes business goals into account when making technical decisions.
Working with Others
Works with tech lead and teammates to answer questions about their work
Understands and implements feedback from peers into own work
Provides effective and accurate technical feedback in code reviews
Mentors and coaches more junior engineers
Able to work across teams to tackle complex issues