Senior Software Engineer
- Posted 7 hours ago
- Be among the first 10 applicants
Job Description
Practice by Numbers
Practice by Numbers builds the software dental practices run their day on — scheduling, patient communications, analytics, VOIP and payments, in one platform. Around 1,500 practices across the US and Canada use us to run their front desk.
Payments is one of our fastest-growing areas, and one of the few where the software is directly responsible for whether a practice gets paid. We're investing heavily in it over the next year: new payment methods, new products built on top of the payments platform, and a lot of work on making the core more reliable as volume grows.
We operate like a startup, because we are one. Scope is wide, decisions are fast, and there isn't a layer of people between you and the problem.
About The Role
We're hiring a senior backend engineer for our Payments team in Gurugram. You'll report to our Payments engineering lead and work closely with the Payments product manager.
This is a deep individual-contributor role. You'll write code, make architectural calls, and own systems end to end.
What you'll work on
Bonus, Not Required
- Gurugram, India
- In-office (5 days)
- Full-time
Practice by Numbers builds the software dental practices run their day on — scheduling, patient communications, analytics, VOIP and payments, in one platform. Around 1,500 practices across the US and Canada use us to run their front desk.
Payments is one of our fastest-growing areas, and one of the few where the software is directly responsible for whether a practice gets paid. We're investing heavily in it over the next year: new payment methods, new products built on top of the payments platform, and a lot of work on making the core more reliable as volume grows.
We operate like a startup, because we are one. Scope is wide, decisions are fast, and there isn't a layer of people between you and the problem.
About The Role
We're hiring a senior backend engineer for our Payments team in Gurugram. You'll report to our Payments engineering lead and work closely with the Payments product manager.
This is a deep individual-contributor role. You'll write code, make architectural calls, and own systems end to end.
What you'll work on
- Backend services and APIs in Python/Django. You'll own significant surfaces outright, with performance, reliability and maintainability as first-order concerns rather than afterthoughts.
- Money movement. Card-present transactions through in-office terminals, hosted payment pages, and patient-facing payment links. Each surface has its own failure modes and its own definition of done correctly.
- Recurring billing. Scheduled charges, retries, and the logic that decides when a failed payment needs a human rather than another automated attempt.
- Reconciliation. Processor webhooks arrive late, out of order, or after someone has already recorded a payment by hand. Making the ledger tell the truth anyway is a real and ongoing part of this job.
- Integrations. Our payment processor, plus syncing payment data into third-party practice management systems — each with its own quirks and none of them forgiving.
- The data layer. Schema design, indexing, query tuning and migrations in PostgreSQL, on a database that's growing faster than it used to.
- How we ship. CI/CD pipelines, test automation, and releases that are safe to roll back.
- 7–9 years building production backends, with deep Python and Django experience and genuine ownership of systems other people depended on.
- Strong PostgreSQL fundamentals — schema design, indexing, transactions, and the ability to find and fix a slow query without guessing at it.
- REST API design and third-party integration experience. You've worked against external APIs that were slow, flaky, or simply wrong, and built around that.
- Redis and Git-based CI/CD — you've built or meaningfully improved a deployment pipeline, not just used one.
- Judgement about correctness where mistakes cost money. Idempotency, retries and race conditions should be things you've had to reason about carefully, not terms you recognise.
- Clear written communication. Our team spans the US, India and Bangladesh, so a lot of thinking happens in writing.
Bonus, Not Required
- Payments or fintech background — Adyen, Stripe, Razorpay or similar.
- Card-present / POS terminal integration experience.
- PCI DSS exposure.
- Subscription or recurring-billing systems.
- Docker/Kubernetes, infrastructure-as-code, or observability tooling (metrics, logs, tracing).





