At Monit, we’re building tools to help businesses understand their cash flow trends and run scenarios when they’re considering making a change that affects their one-time or recurring cash flow position.
Where we are today
Historically, Monit has worked with a single vendor in the Boston area to develop and deliver the product to our users. That has worked well, but with our recent seed round, it’s time to bring engineering in-house, and build an inclusive, exceptional engineering culture that will carry us through the next stages of the company’s and product’s lifecycle.
Outsourcing product development is often a recipe for technical debt later. Perhaps by explaining what exists today, we can keep you from backing away slowly.
All source code exists in GitHub, and is reviewed before being merged
Every pull request is built with CircleCI or GitHub Actions and deployed to our dev environment
All environments are infrastructure-as-code via terraform; ClickOps in our applications is not a thing here
Environments are getting closer to being fully disposable, though we’re not quite there yet
The backend is stateless, and 12-factor-y, if you’re familiar with that paradigm
What our stack looks like
Backend is a mix of Java and C#
Frontend is React + Redux
CI/CD pipeline is CircleCI or GitHub Actions, with new stuff using GitHub Actions
We are in the process of migrating from Beanstalk to Fargate, which will be done by December
Where possible, we use AWS backplane services instead of maintaining a self-hosted equivalent
Where and how you fit in
We have a fairly high-functioning product engineering team. Unfortunately they’re not Monit team members. We need to work with that third-party team -- most of whom have been working with the Monit founders since the beginning -- to bring the tribal knowledge, process, practice, delivery, and competencies in-house, and make it our own.
While we’re in the process of doing that, we need to build our engineering culture. We believe it is crucial to get the early foundations right because they carry the weight of the future.
The product exists, has users, and there’s a significant feature backlog. However there are also some big questions that we’re starting to face as customer interest grows and use cases become more complex. As an early, senior engineering leader, one of your responsibilities will be to help us navigate those tradeoffs while also setting the tone for the less experienced engineers.
Required People Skills
An ability to educate and communicate effectively with non-technical people
A bias for action, and an ability to work autonomously while navigating uncertainty
A preference for decomplection and reasoning from first principles balanced with the wisdom to know when a deep refactoring isn’t worth the cost. And conversely: to know when it IS worth the cost.
A desire to mentor less experienced engineers and grow an engineering culture from the ground up
Pragmatism over dogma with respect to technical tradeoffs
A desire and willingness to help these backend engineers write better job descriptions for other front end developers!
Track record of delivery in highly-functional tech environment, preferably one that is cloud-first
Familiarity with cloud architectural patterns, and the technologies that underpin these patterns: microservices, message queues, eventing & event sourcing, container orchestration, etc.
A strong preference for infrastructure-as-code. You don’t need to be a terraform expert on day 1, but ClickOps aren’t part of our DNA, and never will be.
Huge plus: secure-by-design patterns and practice (and passion!)
Experience developing and delivering software in a highly-regulated environment
A preference for “doing” over “managing”
5-10 years of experience of software engineering experience
2+ years of building and administering distributed applications using a major cloud platform
2+ years of experience managing a team of 5 or so people. (We’ll evaluate dedicated Engineering Managers as the company grows. You’ll have input in that conversation.)