Back-End Developer (Node.js / Microsoft SQL Server)
About Flexi
Flexi Software is a 30+ year-old enterprise software company building commercial accounting applications for both cloud and on-premises deployment. Our customers run their financial operations on our software — closing their books, reporting to regulators, and answering to auditors with it. That sets a high bar for correctness, and it is the reason our engineers care as much about the data layer as the code that sits on top of it.
We are now building the next generation of that platform. This is a re-platforming effort, not a science project: the accounting logic is proven, and the customers are already live, but the technology underneath it is roughly twenty years old and increasingly expensive to support. We are rebuilding it as a modern multi-tenant SaaS solution on Azure while continuing to support customers who deploy on-premises.
This role is one of the core engineering hires for that effort, based in our Atlanta office.
The Role
You will build the application API layer in Node.js on top of Microsoft SQL Server. In practice, the work runs roughly 70% API and service development, 30% database work — but the database 30% is what makes the other 70% possible. A great deal of Flexi's accounting logic lives in T SQL today, and you will be the person who can read it, reason about it, decide what belongs in the API and what stays in the database, and make both sides fast.
This is not a role where you hand SQL off to someone else. We are looking for a back-end developer who is genuinely strong in SQL Server — someone who reads an execution plan without flinching, knows why a query went sideways after a schema change, and has opinions about indexing that they can defend.
You will report to the engineering lead and work on a small, dedicated team of fewer than ten engineers. Small team, real ownership: the design decisions you make will be visible in the product and in the codebase for years.
What You'll Do
- Build API services — design, develop, test, and document RESTful services in TypeScript on Node.js (NestJS or Express).
- Work across the data boundary — write and tune T-SQL, design and evolve schemas, and make deliberate case-by-case calls about whether business logic belongs in a stored procedure or in the service layer.
- Carry legacy logic forward — read and understand existing legacy database code, and translate it into the new architecture without losing the accounting behavior our customers depend on.
- Make it fast under real load — profile and optimize queries, indexes and API endpoints for concurrency and large data volumes; diagnose performance problems from execution plans and query statistics.
- Build for multi-tenancy — implement tenant isolation, data partitioning and access patterns that hold up as the tenant count grows.
- Support both deployment models — write code that works against Azure SQL Database in our cloud and Microsoft SQL Server in customer on-premises installations, and account for the differences between them.
- Contribute to architecture — participate in design discussions for new functionality; on a team this size, mid-level engineers are expected to have a voice in the design, not just an assignment.
- Fix what breaks — investigate and resolve defects surfaced through QA and customer support, including issues that only appear at customer data volumes.
- Write the tests and the docs — unit and integration tests for the code you ship, and technical documentation your teammates can actually use.