Company
Moab
Annual salary
$250k – $350k/yr
Location
New York, NY
Listed
68d ago
- Experience:
- 4 to 8 years
- Workplace:
- 2-5 days/week in our Flatiron office.
- Equity:
- Competitive equity
Hybrid in New York, NY.
Send us your LinkedIn and CV. If your experience fits, we'll introduce you to the recruiter filling this role.
Apply for a referral →The recruiter emails you before anything happens and may suggest other jobs that suit you better.
About this Role
Moab is hiring engineers to build software alongside Patrick Anderson and his team. Our ideal candidate is highly proficient with their tools - having put them to use over many repetitions, taking the time to understand their depth.
We use Python, Unix, and Postgres to build Moab's backend. Our frontend is built with React.js and TypeScript.
Patrick wrote about his approach to building engineering teams here.
Moab engineering will appeal to you if you'd like to work on a team that keeps the tech stack simple, measures their CI/CD time in seconds, has a deeply technical leader, only works on things that move the needle for the business, and ships more than its competitors with a fraction of their headcount.
What you'll do
- Build the reliable, maintainable, and minimal software that comprises our product
- Collaborate with customers to provide feedback on their proposals and assess feasibility of implementation
- Lay the foundation of our engineering culture
Frequently Asked Questions
How do I apply for the Software Engineer (US) role at Moab? +
Use the Apply for a referral button on this page to send us your LinkedIn and CV. If your experience fits, we'll introduce you to the recruiter filling this role. They'll email you to check you're interested, then put you forward for this job or others that suit you better. It's free.
What does this Moab role pay? +
The listing gives $250k – $350k/yr.
Is this role remote? +
The listing gives the location as New York, NY. 2-5 days/week in our Flatiron office.
Interview Prep
Sample questions for a Software Engineer role, written in-house to help you prepare.
How do you approach designing a system when the requirements are still likely to change?
I design around the parts of the problem I'm confident are stable, like the core data model, and keep the parts most likely to change, like specific business rules, isolated behind clear interfaces. Over-engineering flexibility everywhere just adds complexity to parts of the system that were never going to change.
What's your process for debugging an issue that only reproduces in production, not locally?
I add targeted logging around the suspected area and compare production data or configuration against my local setup, since an issue that's environment-specific usually traces back to a real difference between the two rather than a fundamentally different bug. I avoid making speculative changes without first confirming where the divergence is.
How do you decide when a piece of code needs a test versus when it's low-risk enough to skip?
I prioritize tests for logic with real business consequences if it breaks, or code that's likely to be touched again later by someone unfamiliar with it. Simple, rarely-changed glue code gets less coverage, since the cost of a thorough test there often exceeds the risk it's protecting against.
How do you evaluate a proposed technical solution's trade-offs, like performance versus maintainability?
I start from the actual constraint that matters for this specific system, whether that's genuinely performance-critical or whether maintainability is the bigger long-term cost, rather than defaulting to whichever trade-off I personally prefer. Optimizing for performance the system doesn't need just adds complexity nobody benefits from.
Related Roles
Browse all startup roles
Salaried roles at startups, AI companies and established businesses, all filled by referral. One application covers every role.
View all startup roles →