What we test for
Typical work
- Backend services with a module boundary per part of the domain
- Taming an Express service that grew past what a routes file can hold
- Queues, scheduled jobs and workers inside the same application
- Auth across a set of services: guards, roles and token handling
The coding test
Add a feature across modules, with a controller, a provider, a guard and a queue consumer, unit tests through the testing module and one end-to-end test through supertest. Then break a circular dependency between two modules. Scored on where the boundary lands, not on how many decorators they can name.
Five interview questions you can reuse
We use questions like these in our soft-skills and technical rounds. Steal them for your own interviews.
Two modules import each other and nothing resolves. What do you do?
A strong answer covers: forwardRef makes it start, it does not make it right. Either the thing they share belongs in a third module, or one direction should be an event instead of a call. A cycle is a boundary drawn in the wrong place.
Guard, pipe, interceptor, middleware: what goes where?
A strong answer covers: Middleware runs before routing and knows nothing about the handler. A guard decides whether this request may proceed. A pipe transforms and validates one argument. An interceptor wraps the call for logging, caching or the response shape. Getting the order wrong means the work happens before anyone checked who asked for it.
When is a provider request-scoped, and what does it cost?
A strong answer covers: Scope is contagious: anything that injects a request-scoped provider becomes request-scoped too, so the singleton tree is rebuilt per request and the performance goes with it. Usually the honest fix is to pass the request data through, or hold it in async local storage.
Where is the line between a unit test and an end-to-end one here?
A strong answer covers: A testing module holding the real provider and fakes for what it injects covers nearly everything. The end-to-end run through supertest is for the wiring that only exists at runtime: guards, pipes, serialisation. There should be few of those, and a test that mocks the framework proves the mock works.
An exception is thrown deep inside a provider. How does it reach the client?
A strong answer covers: An HttpException carries its own status; anything else arrives as a 500 through the default filter, which is a sensible default and a poor contract. One filter owns the shape of every error, domain failures map to statuses in a single place, and the stack trace stays in the log rather than the response body.
One monthly price per developer. Everything in it.
No deposit, no minimum term, no placement fee. You pay one invoice a month for each developer on your team.
Per developer, all-in. Your quote arrives by email with your exact number after you send the brief.
- Developer pay, local payroll and taxes
- Vetting: coding test, soft skills, English
- Free replacement within 90 days
- A direct line to our CEO
What changes the price
- Seniority and role. Senior engineer, tech lead or architect.
- Stack. Some stacks and niche tools cost more to staff.
- Team size. Larger teams get a better monthly rate per seat.
- White-label. Agencies reselling under their brand get partner pricing.
Terms in plain words
- First 2 weeks risk-free: if it isn't working, you don't pay for them
- Month to month, 30 days' notice to end
- No deposit and no minimum number of seats
- Want to hire the developer full-time? Buyout of 3 months' fee in year one, 2 months' after
Questions tech leads ask us
How senior are your NestJS developers?
6+ years of professional Node and TypeScript, with recent production NestJS work. We count Node years: the framework is younger than the seniority we ask for.
Is this the same pool as your Node.js developers?
Yes, scored on a different test. The NestJS test is about module boundaries and dependency injection, which is what the framework is actually for.
Can I see the coding test results?
Yes. Every profile card carries the score and the reviewer notes.
What does it cost?
$6,900 per developer per month, all-in, and flat: the same rate whatever the stack. Your exact quote arrives by email after you send the brief.
Skip the sales rep. Talk to the CEO.
Tell us what you're building, your stack and when you need people. Three matched profiles within 48 hours, and a straight answer on whether we're the right fit.