Senior Backend Software Developer

What you’ll do if you join:
As a Senior Developer, you’ll be embedded in one of our product teams, each of which are responsible for some domain of our main application.
• Work with product, UX, and fellow developers to gain a deep understanding of customer problems and lead development of features to solve those problems
• Hold a high bar of personal technical excellence, demonstrated through high quality, thoroughly tested, and exemplary code contributions and reviews
• Contribute to our culture of “you build it, you own it” by listening to your spidey sense and identifying tech debt or other opportunities to improve our technical architecture
• Discover, propose, and evangelize the latest & best practices in Ruby on Rails, GraphQL, and database design
• Build private and public GraphQL API’s that power the OpsLevel front-end experience and CLI capabilities
• Lead technical explorations and create PoC prototypes to discover then build the best solution
• Execute projects in a timely manner, helping the team communicate when they are on or off track to meet goals
• Leverage your years of experience by being a mentor and investing in the growth and success of those around you
• Participate in our oncall schedule, where you may be required to troubleshoot across our core technical stack (Ruby on Rails, VueJS, GraphQL, and MySQL)

Our Stack
We believe in boring technology because it’s well tested and simple.  Our current stack is:
• Ruby on Rails (our main application’s backend)
• Vue.js (our app’s UI)
• GraphQL (how the UI and the backend talk to each other; also used by customers as part of our platform)
• MySQL (gotta store those bits somewhere)
• Redis (some bits gotta be stored faster)
• Terraform (config as code, because any other way is painful)
• Kubernetes (we use AWS EKS)
• Golang (for various operational tools and our open source offerings).

For this role, we don’t require expertise in everything in the above list, but some of these are more important areas than others to have experience in.  Check out “What you have” and “Nice to haves” 👇

What you have
• An empathetic, pragmatic, and collaborative approach to problem solving.  Done is better than perfect.
• A strong growth mindset.  You’re comfortable learning new things quickly.  Unknowns are new frontiers waiting to be discovered
• Experience designing architectures with strong interface boundaries and separation of concerns.  Your craft is deeply rooted in SOLID design principles
• Thorough understanding of writing web applications with Rails.  You probably have at least 5 years of experience with Rails or 7 years with a similar web framework (e.g., Spring, Django, Node.js)
• Experience designing performant data models with MySQL.  You have strong opinions on how to structure data in an RDBMS.  You know when and how to use indices and when to denormalize data.  You have battle scars from debugging and fixing slow queries.

Nice to haves
• Experience with modern cloud technologies such as AWS, Docker, Kubernetes, and Terraform 
• An understanding of job systems for Ruby on Rails such as Sidekiq
• A deep understanding of MySQLHave experience in scaling a web application to thousands of users and millions of events
• Knowledge of in memory datastores like Redis
• You can empathize with companies that run 100’s of applications or microservices

"Should I apply?" - Yes!
If you meet half of the qualifications above, we want to hear from you! And if you’re unsure - apply anyways!

What do I need to interview with OpsLevel?
Not much! A working web camera, microphone, and (ideally) a quiet place with minimal background noise.