Founding Engineer
Zenskar
May 2024 - Present
Credit notes from the ground up
Building the credit notes system from a blank slate. I'm designing it with how different ERPs and billing tools handle credit notes in mind, so the model holds up across all of them rather than being tailored to one. The aim is to cover the full spread of real-world use cases while keeping the flow simple and intuitive for the people actually issuing and reconciling credit notes.
GoalSolve credit notes cleanly across billing tools while keeping the user experience simple.
AchievedIn progress — designing and building the credit notes system end to end.
Observability & logging infrastructure
Took the existing logging setup, which was inconsistent from module to module, and standardised it across the system. I rolled out an OpenTelemetry instrumentation layer across services feeding into SigNoz, so traces, logs, and metrics all line up. This gave the team a single, coherent view to actually follow a request end to end and debug issues quickly instead of piecing things together from scattered logs.
GoalGet better, consistent observability across the whole system.
AchievedStandardised logging across modules with OpenTelemetry and SigNoz for end-to-end observability.
API versioning across the system
Introduced a versioning scheme across the system's APIs and wove it into the existing setup so clients can pin to the version they're already integrated with. The harder part was rolling it out without breaking anyone — I planned the migration so existing traffic kept working throughout and the whole thing shipped with zero downtime.
GoalLet clients stay on a stable API version and migrate on their own terms.
AchievedRolled out API versioning with a zero-downtime migration into the existing system.
Fallback engine for settings
Built a fallback engine for settings that stores config per label across the full tenant hierarchy — organization, business entity, customer, contract, product, and invoice — and serves it all through a single API. When a value isn't defined at the level you ask for, say invoice, the engine walks up the hierarchy to the nearest level that does have it, like contract, and returns that instead. This means callers can just ask for the effective setting without having to know or hard-code the resolution order themselves.
GoalLet settings be defined at any level and resolved automatically without callers hard-coding the hierarchy.
AchievedShipped a single-API fallback engine that resolves config to its nearest relevant level with tenant-level checks.
Zenskar UI kit package
Designed and shipped the @zenskar/ui-kit package from scratch — a set of embeddable UI components that other teams and customers can drop into their own products. I focused on getting the fundamentals right: a clean, well-structured codebase, a theming layer so the components adapt to each consumer's look and feel, and an API that stays simple to use as the kit grows.
GoalGive teams a reusable, embeddable set of UI components that are easy to theme and drop in.
AchievedPublished @zenskar/ui-kit on npm with embeddable, themeable components and solid code practices.
End-to-end checkout flow
Dug into the different checkout flows we'd built across the various reps to understand what was working and what wasn't, then teamed up with others to design and build a single end-to-end checkout. The result lets end customers go from selecting what they want to completing a purchase entirely within the customer portal, without dropping out to anything external.
GoalLet end customers buy and make purchases directly through the customer portal.
AchievedShipped a working end-to-end checkout that lets customers complete purchases from the portal.
AI contract parsing (RAG)
Integrated AI-powered contract parsing built on a Python Retrieval-Augmented Generation (RAG) pipeline. It reads raw contract documents, pulls out the relevant terms, and generates structured contract data — replacing what used to be slow, error-prone manual entry with something that produces accurate results straight from the source document.
GoalExtract accurate structured data from contracts without manual entry.
AchievedShipped automated contract parsing that produced accurate contract data from raw documents.
End-to-end testing infrastructure
Led the setup and tuning of the end-to-end testing stack with Cypress, and reworked how it ran in CI. By splitting the suite into parallel matrix jobs on GitHub Actions, the pipeline went from a slow bottleneck to something fast and reliable enough that the team could trust it on every push.
GoalMake CI reliable and fast enough that it wasn't a bottleneck for shipping.
AchievedCut CI run times by around 50% while expanding end-to-end coverage.
Gateway fee automation for accounting
Built the accounting logic that automatically calculates payment gateway fees and turns them into correct journal entries. The tricky part was the edge cases — partial payments, refunds, and differing gateway behaviours — so I worked through each of them carefully to make sure the numbers finance teams relied on always reconciled.
GoalGive finance teams accurate, automated fee handling instead of manual reconciliation.
AchievedEnabled correct journal entries with edge cases covered, reducing manual accounting work.
Generic filtering & streamlined workflows
Studied how filtering and data-heavy workflows are handled across established SaaS products, then designed a set of reusable, generic filter components that could be dropped into any module. Alongside the components I reworked several existing workflows to cut out redundant steps, so common tasks took fewer clicks and the experience stayed consistent wherever filtering showed up.
GoalCut the number of clicks and steps users needed to get to the data they wanted.
AchievedStandardised filtering across modules, making workflows faster and the UI more consistent.
Product Catalog & Contracts features
Owned full-stack work across two of the core modules, Product Catalog and Contracts, taking features from design through to production. A lot of the surface area was legacy UI that had grown hard to use over time, so I paired closely with designers to untangle the existing flows, rework the interactions, and rebuild the parts that were causing the most friction for users.
GoalFix usability issues in older interfaces and reduce day-to-day friction for users.
AchievedShipped cleaner, more usable flows in the core modules with fewer rough edges for customers.