19 Sep
|
Practice by Numbers
|
Gurugram
19 Sep
Practice by Numbers
Gurugram
Software Engineer
Practice by Numbers · Gurugram, India · In-office (5 days) · Full-time
About us
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: new payment methods, recent products built on the payments platform, and a lot of work 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 software engineer for our Payments team in Gurugram. You'll report to our Payments engineering lead and work alongside senior engineers who've built this platform.
This is a good role for someone a few years into their career who wants to go deep rather than wide. Payments is an unusually good domain to grow in — correctness matters, edge cases are real, and the habits you build here (thinking about failure modes, retries, reconciliation, data integrity) transfer everywhere. It's hard to pick that up on a CRUD product, and it compounds fast once you have it.
You'll start with well-scoped work and a lot of review, and take on larger and more ambiguous pieces as you get your footing. We'd expect you to be owning a meaningful surface of the product within your first year.
What you'll work on
- Backend features and APIs in Python/Django — shipping real functionality that practices use the same week.
- Payment flows. Card transactions through in-office terminals, hosted payment pages, and patient-facing payment links. You'll learn how each one fails,
which is most of the education.
- Recurring billing. Scheduled charges, retry behaviour, and the handling around payments that don't go through the first time.
- Integrations. Working against our payment processor's APIs and syncing data into third-party practice management systems.
- Queries and data. Writing and tuning PostgreSQL queries, designing tables, writing migrations that are safe to run against production data.
- Bugs and production issues. A real share of them, because debugging someone else's payment edge case is how you learn a payments system properly.
- Tests and tooling. Contributing to our test coverage and CI pipelines rather than treating them as someone else's job.
What we're looking for
- 3–5 years building backend software professionally, with solid Python experience. Django specifically is a strong plus, but we'll take a good engineer from another framework who wants to learn it.
- Comfortable with SQL and relational databases — you can write a join, read a query plan, and reason about what an index is doing.
- Experience building or consuming REST APIs.
- Familiarity with Git-based workflows — branching, code review, CI.
- Care about correctness. In payments, "mostly working" is a bug. We're looking for someone who tests their own work and thinks about what happens when things fail, not just when they succeed.
- Transparent written communication. Our team spans the US, India and Bangladesh, so a lot of thinking happens in writing.
We care more about how you think than about your exact checklist of technologies. If you're strong on fundamentals and missing a couple of items above, apply anyway and tell us what you'd need to pick up.
Bonus, not required
- Any exposure to payments, fintech, billing or subscription systems.
- Redis, Celery, or background job processing.
- Docker.
- Experience working with an external API that was unreliable, and having to design around it.
📌 Software Engineer (Gurugram)
🏢 Practice by Numbers
📍 Gurugram