Careers

One of four, not one of forty

Every company says it puts people first. Here is the specific version, including the parts that will not suit everyone.

The work

You will be visible

On a team of four, there is nowhere to hide and nothing to hide behind. Your decisions are legible, your mistakes are yours, and so is the system when it works.

That is the trade. It is uncomfortable early and it is the fastest way we know to become good at this — which is why the engineers who stay tend to stay a long time.

What you get

Your name on it

Our engineering notes are bylined by the person who did the work, not ghostwritten by marketing. The reasoning in them is yours, and so is the credit.

What you get

Consequences

Our engagements run for years. You will still be maintaining your decisions in 2031 — which is rare, uncomfortable, and the only way anyone actually learns to design well.

What you get

Hard problems

Payment switches, credit models, self-healing infrastructure, commodity exchanges. Not all of it is glamorous. Very little of it is boilerplate.

What you get

Depth over breadth

We would rather you become genuinely expert in something than passably familiar with everything. Hiring and training both follow that.

What you learn

Production code in your first fortnight

Most graduate programmes park you on a bench for three months, then shadow you onto something peripheral. We do the opposite, because a small team cannot afford a passenger and because nobody has ever learned to build systems by watching one. You write production-grade code within days and you are inside a real production system within weeks.

That is uncomfortable, and it is the point. Three years here covers ground that takes considerably longer elsewhere — not because anyone works longer hours, but because the surface you touch is wider and the consequences arrive sooner.

The ground it covers
  • Architecture, as a practice rather than a diagram. Microservice decomposition, the design patterns that matter and the ones that are cargo cult, and evolutionary architecture instead of big up-front design — enough runway for what is coming, and no more.
  • Multi-tenancy, properly. Separate accounts, separate schemas, shared tables with a tenant index — what each costs, and why the least isolated option is often right once you shard behind it.
  • Latency you have to go and find. Getting a response under a hundred milliseconds at volume means knowing whether the time went in your code, the query plan, or the network — and having something to do about each.
  • Scale that is not hypothetical. A switch clearing a hundred thousand transactions an hour at peak. Seven thousand credit decisions a day. Three thousand chargers reporting twice a minute. The numbers are real and so are the consequences of getting them wrong.
  • Security as a standard, not an intention. Encryption at rest and in motion, key management in validated hardware, short-lived signed tokens — and systems that have to pass SOC 2, PCI DSS, ISO 27001, HIPAA or the RBI’s rules rather than an internal review.
  • Integration, which is most of the job. A typical platform here talks to forty or fifty external systems — banks, bureaus, government registries, national payment schemes — most of which you cannot test against and none of which you control.

Nobody touches all of this, and the list against each role below is the honest one for that job. It is here because the range is the point: a small team on a system that runs a whole business ends up further across this than a large team on a slice of one would.

Languages, frameworks

Java and Spring Boot for most backends. Node and TypeScript. Python where the modelling is. React and Next.js on the web, Flutter and native iOS and Android on mobile, published as SDKs with native wrappers where third parties consume them.

Cloud

AWS by preference — Lambda, Aurora, SQS, OpenSearch, Elastic Beanstalk, CloudWatch. Azure where the client’s estate is already there: Event Grid as an MQTT broker, Service Bus, App Service, Application Gateway, managed MySQL. Docker and Kubernetes, Prometheus and Grafana around both.

Data, messaging

PostgreSQL and Aurora, MySQL, Redis, Kafka. OpenSearch as a read-side store where commands and queries genuinely diverge. Row-level security and dynamic connection pools where a single schema serves many tenants.

Payment rails

ISO 8583 for card and ATM switching, and the National Financial Switch behind it. UPI and IMPS against the NPCI switch. AePS for Aadhaar-authenticated withdrawal where a customer has a thumb and no card. NACH and e-mandate for recurring debit, BBPS for bill payment, prepaid instruments and e-RUPI. ISO 20022 where the messaging has moved to it.

Devices, transport

MQTT over TLS to hardware in the field, at two messages a minute per connector. OCPP and OCPI for chargers and roaming between networks. HTTP/3 over QUIC where the handshake is what costs you, and webhooks in both directions because half these counterparties call you.

Machine learning

Decision trees for approve-or-decline, multivariate regression setting the interest rate, a third tree routing each approval to the partner that should fund it. Random cut forest over fleet telemetry. Language models summarising call transcripts, scoring sentiment, and answering from design documents and ticket histories.

Integration

Usually forty or fifty systems per platform: national payment schemes, credit bureaus, account aggregators, government identity and tax registries, KYC and fraud providers, trading platforms, and CRMs — Salesforce, HubSpot and the rest — most of which you cannot test against.

One of those deserves more than a card. The machine learning here decides things, and the decisions are somebody’s money. Seven thousand credit applications a day are approved, declined and priced by models we built, and every one of those was a judgement a person used to make. That changes the problem in three ways you will not meet in a tutorial.

There is no history to train on. Before a lender has lent, it has no repayment outcomes — so the approval models learned instead from about eight thousand decisions previously made by hand. Human judgement as the label set. The model is not trying to out-predict the credit team; it is trying to reproduce their judgement seven thousand times a day.

The inputs are absent, not noisy. Regularisation handles an unreliable feature. It does nothing for a first-time borrower with no credit bureau file at all — which in this population is the norm rather than the edge case. So the decision is decomposed into four analysers and an arbiter that knows which evidence is missing, instead of one model over a sparse vector that degrades silently and reports the same confidence either way.

Sometimes there are no labels at all. Nobody has characterised the fault yet on a charger that is not alarming but is behaving unlike its peers, so there is no tagged dataset to learn from. Normal has to be inferred from the fleet rather than defined by anyone.

And all of it has to survive being questioned. A declined applicant is entitled to a reason, and a risk committee has to sign off decisions it can recognise as its own officers’. That is why the approval path is interpretable splits rather than the most accurate model we could fit — a trade you will be asked to make deliberately here, and to defend.

The place

Flexible, and we mean the boring kind

A free, flexible and comfortable workplace is easy to claim, so here is what we actually mean by it: you organise your own time around what the work needs, and the measure is whether the work is good.

The part that is less common: we extend the relationship to families. The people you live with carry some of the cost of a demanding job, and we would rather acknowledge that than pretend work happens in a sealed container. Partners and children are part of how this company behaves, not an afterthought at the annual party.

This is a knowledge business. Beyond the client relationships and the code, the assets walk out of the building every evening, and the whole operating model assumes they choose to come back.

Open roles

Four we are hiring for now

Each of these sits on a real team building a real system. The descriptions are longer than usual because we would rather you self-select than discover the mismatch in month four.

Java tech lead

Bangalore · full time
What you would work on

You would own the architecture of a system and build it. Our tech leads write the architecture documents — the ones that describe a system from several angles and record the alternatives that were rejected — and then write the code that implements them. On a team of four or five, leading is not a separate activity from building.

Current systems in this shape: a payments switch integrating with a national real-time scheme; a fleet platform ingesting telemetry from thousands of devices twice a minute; a credit engine deciding thousands of applications a day.

What we look for

You have made an architectural decision that turned out badly, and you can describe what you learned without getting defensive about it. You write well enough that other people can follow your reasoning — not documentation as a chore, but thinking made legible. You are comfortable saying you do not know, in front of a client.

Honestly

This is not a route out of coding. If what you want is to stop building and start directing, you will be unhappy here and we will both know it quickly.

Java · Spring Boot · reactive where it earns its place · PostgreSQL · Kafka · AWS. We are not religious about any of it.

QA engineer

Bangalore · full time
What you would work on

In our domains the failure paths are the product. On one payments platform, dispute-resolution flows accounted for nearly half the certified surface — the paths that run when something goes wrong outnumbered the ones where it goes right.

You would build the things that make failure reproducible: simulators of systems we cannot get access to, suites that provoke timeouts, duplicate responses and late callbacks on demand, and the certification runs that a scheme operator or regulator signs off.

What we look for

Someone whose first instinct on seeing an interface is what happens if this arrives twice. Automation skill matters and we will ask about it; adversarial imagination matters more and is harder to teach.

Honestly

You will spend considerably more time thinking about whether money can move twice than about whether a button is aligned. If manual regression testing against a written script is what you enjoy, this is not that job.

Test automation · API and integration testing · simulators and stubs · scheme certification · performance and failure injection.

Business analyst

Bangalore · full time
What you would work on

Our domains are genuinely complicated. The verbs of a real-time payment scheme. The difference between an operating lease and a finance lease, and why it changes a contract engine. How a commodity auction takes its floor from a government support price. What a warehouse receipt has to say before a bank will lend against it.

The job is to become properly expert in one of those and then write it down precisely enough that engineers can build from it. One market platform's requirements ran to thirty-eight use cases before a line of code was written — and that document is why the build went the way it did.

What we look for

Curiosity about how an industry actually works, and the patience to keep asking until the edge cases surface. Precise writing — ambiguity in a requirement becomes a defect three months later. And the confidence to say “that contradicts what you told me last week” to someone more senior than you.

Honestly

This is not a story-writing role taking dictation from a product owner. You will be expected to understand the domain better than most of the people you write for, which takes months and is uncomfortable at the start.

Requirements and functional specification · use case and process modelling · domain research · stakeholder work · wireframing.

Engineers

Bangalore · full time · 0–3 years
What you would work on

Backend services in Java and Node, React front ends, mobile in Flutter and native, machine learning in Python. On a small team you will touch more than one of those, and the boundaries are softer than they would be in a larger organisation.

Recent work you could have been part of: a credit engine decomposed into four independent analysers; a rule engine that issues commands to physical hardware in the field; an auction platform integrating weighbridges and yard equipment.

Why we hire at this level

You would work alongside people who have been doing this for fifteen years, on a team small enough that they will notice what you do — and small enough that you cannot be parked on something peripheral. Within a year you should be able to explain a real system end to end.

That is the fastest way we know to become good at this, and it is the reason we take people at the start of their careers rather than only hiring experience.

What we look for

Evidence that you have built something and cared how it turned out. A university project, something you made for yourself, a contribution to somebody else's work — what it is matters much less than whether you have opinions about it.

Honestly

We will ask you to go deep on something in the interview. Pick whatever you know best — we have no preferred language, and there is no expectation that it is anything we currently use.

Java · Node.js · TypeScript · React · Flutter · native iOS and Android · Python · PostgreSQL · AWS. You will not know most of these. Nobody does at the start.

None of the above

Open application
Apply anyway

We hire for depth, which means an unusual specialism is interesting rather than a problem. Security engineering, data platform work, site reliability, interface design, technical writing — if you are genuinely excellent at something adjacent to what we do, we would like to hear from you.

We do not always have a matching role open. We would still rather hear from good people at the wrong moment than not hear from them at all.

Honestly

Who this does not suit

The same things that make this good make it wrong for some people, and finding that out in month four is expensive for everyone.

Consider carefully
  • There is no bench. Nobody is parked between projects, which means there is rarely a quiet quarter and no easy place to coast.
  • The ladder is short. A small firm has fewer titles. Progression here is depth and responsibility rather than a rung every eighteen months.
  • We hire slowly. Because dilution is the specific risk we are managing, our process is longer and more selective than you may be used to.
  • You will not be one of many. If you prefer the shelter of a large team and clearly bounded scope, you will find this exposed rather than liberating.

Applying

Send us something you built

Attach a CV if you have one. But the most useful thing you can send is something you made and a few sentences on what was hard about it — what you tried first, what you rejected, and what you would do differently now.

That is the conversation we are going to have anyway. Starting with it saves us both a round.

A few sentences is plenty. We are reading for how you think, not for length.

PDF or Word, up to 4 MB. It is emailed to the hiring team with your application and not stored on this website.

Applications are read by the engineers you would be working with rather than by a recruitment team. That means they get read properly, and it also means we are slower than we would like. If a few weeks pass and you have heard nothing, a nudge is welcome and not held against you.