Skip to content
  1. Home
  2. Hire
  3. Node.js
  4. GraphQL
Hire developers

Senior GraphQL developers: 3 vetted profiles in 48 hours

Senior engineers for a GraphQL layer that stays fast as it grows: a schema three teams can share, resolvers with a data loader, and a cost limit that keeps one query from taking the service down.

What we test for

Apollo Server and FederationSchema design and deprecationDataLoaderPersisted queriesDepth and cost limitsCodegen for typed clientsSubscriptions over WebSocket

Typical work

  • A schema that several teams extend without stepping on each other
  • Taking an API that got slow the moment a client nested three levels deep
  • Authorization per field, rather than per endpoint
  • Migrating clients off a REST surface without a flag day

The coding test

A query that looks harmless makes 1,200 database calls. Find the resolvers responsible, fix them with a data loader, then add the limit that would have refused the query in the first place. Then deprecate a field without breaking the mobile client that still ships it. Scored on the deprecation as much as on the batching.

For your interview loop

Five interview questions you can reuse

We use questions like these in our soft-skills and technical rounds. Steal them for your own interviews.

  1. Why does a GraphQL API end up making a thousand queries, and what fixes it?

    A strong answer covers: Because resolvers run per field per item, so a list of fifty with an author each is fifty-one queries, and nesting multiplies it. DataLoader fixes it by batching within a request and caching by key. The thing seniors add is that it only batches what you ask it to batch, so the fix belongs in every resolver that crosses a boundary, not just the one that showed up in the trace.

  2. How do you version a GraphQL schema?

    A strong answer covers: You do not. You add fields, deprecate the ones you are replacing, and watch the usage of the deprecated ones until it reaches zero. That only works if you measure per-field usage from day one, which is the part teams skip and then cannot remove anything.

  3. Where should authorization live?

    A strong answer covers: In the resolver layer, per field, with the rule expressed once and applied by the schema rather than copied. Checking at the entry point does not survive a schema where the same type can be reached through four paths. The question to ask a candidate is what happens when a field is exposed through a new parent type.

  4. How do you return an error a client can act on?

    A strong answer covers: For anything expected, as part of the schema: a union or a result type with the failure cases named, so the client handles them with the compiler helping. The errors array is for the unexpected, and leaking exception messages into it is how an internal class name ends up in someone else's crash report.

  5. What stops one client from taking the service down?

    A strong answer covers: Depth and cost limits computed before execution, persisted queries so only known documents run in production, and timeouts per resolver rather than per request. Rate limiting by request count means nothing when one request can ask for everything.

How we work

One invoice a month.

The shortlist is free. Pick the contract that suits you: monthly, six months or twelve.

What every seat includes

  • Contracts, payroll and compliance handled
  • Vetting: coding test, soft skills, English and a level check
  • Free replacements: unlimited on 12+ months, 2 on 6 months, 1 on monthly
  • A direct line to our CEO
Get 3 profiles in 48 hours

Terms in plain words

  • Monthly, six months or twelve, your choice
  • Your rate is locked for the whole contract on 6 and 12+ months
  • Monthly ends with 30 days’ notice
  • Want to hire the developer full-time? The buyout is set in the contract from day one

The full terms, contract by contract

Questions tech leads ask us

Is this the same pool as your Node.js developers?

Usually, scored on a different test. GraphQL is a layer rather than a language, so we ask for the runtime underneath it as well, most often Node or Java.

Can they tell us GraphQL is the wrong choice?

We ask them to. A senior will say when a small, stable API and two clients would be better served by REST, and will name the cost: a schema is a contract you cannot version your way out of.

Skip the sales rep. Talk to the CEO.

Tell us what you're building, your stack and when you need people. Three vetted profiles per role within 48 hours of the call, and a straight answer on whether we're the right fit.