Backend Staff SDE
Monit
Monit
At Monit, we’re building a platform that serves two audiences. Our small business owner platform consists of tools to help businesses understand their cash flow trends and financial position, like a digital CFO. The banker-facing platform consists of insights and analytics about the small businesses in a banker’s portfolio, along with suggested actions those bankers may wish to take that would benefit those small businesses.
Where we are today
In 2022, we brought all engineering and product development in-house, and completed several major changes to our platform as we grew to understand our users and customers better. This included migrating all CI/CD from CircleCI to GitHub Actions; migrating all apps from Beanstalk to ECS + Fargate; and moving identity from inside the application layer into an outer layer of the architectural onion. We also managed to build a few nifty new features along the way.
As we look look ahead to 2023, we’re excited to shift from replacing things to building new things.
How we work
- All source code exists in GitHub, and is reviewed before being merged
- Every pull request is built with GitHub Actions and is auto-deployed to our dev environment on merge
- All aspects of our environment are disposable, infrastructure-as-code. We do not do Click Ops.
- Our applications are all stateless and twelve-factor-y, if you’re familiar with the paradigm
What our stack looks like
- Backend is a mix of Java and C#
- Frontend is React + Redux
- CI/CD pipeline is GitHub Actions
- Our deployable artifacts are Docker images, and they’re deployed to Fargate + ECS
- Where possible, we use AWS backplane services instead of maintaining a self-hosted equivalent, so we use a lot of DynamoDB, S3, and RDS
Where and how you fit in
As a Staff Engineer on a small team, your opinion carries a lot of weight, and how you express your views shapes our culture. We expect you to be able to make good, well-reasoned architectural decisions. We expect you to make defensible tradeoffs between tactical delivery and strategic direction.
To some extent, we’re still in the “building Lego bricks” phase of our company and product: the domain is revealing itself to us as we talk to sales prospects and existing customers. If you value composability and orthogonality in your implementation and architecture, you’ll probably appreciate how we create software, and how we model our respective domains.
We care a lot about getting our initial Lego bricks mostly right, and there’s a huge amount of work still to be done on both the front- and back-ends in this regard, for both sides of the Monit platform.
Culture has building blocks, too. Like the software components that comprise the product, culture is how we build our future, and we believe in getting its foundations right, too, because culture carries the weight of all that is to come. As an early, senior engineering leader, one of your responsibilities will be to help us navigate the seas of uncertainty and ambiguity 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, and to be able to make the business case for it.
- A desire to mentor less experienced engineers and grow an engineering culture from the ground up
Tech skills
- Track record of delivery in highly-functional tech environment, preferably one that is cloud-first
- Familiarity with cloud architectural patterns
- Microservices, message queues, container orchestration, etc.
- A strong preference for infrastructure-as-code – you don’t need to be a terraform expert on day 1, but “click ops” aren’t part of our DNA, and never will be.
- Deep familiarity with one or more mainstream programming languages, with a general preference for functional or object-functional design patterns
- Experience with both SQL and NoSQL as well as their relevant data modeling and horizontal scalability patterns
- 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 people management
Qualifications
- 5-10 years of experience of software engineering experience
- 2+ years of building and administering distributed applications using a major cloud platform
- Small plus: you’ve managed a few individual contributors before, though this a thing you won’t necessarily be doing in this role. (Unless you want to.)