Complex data, made reviewable
Batch Transaction Processor
A typed three-step CSV workflow that turns large, imperfect files into a clear review and validation experience.
Read case studyFull-Stack Software Engineer · Belgrade
I’m Petar Scepanovic, a software engineer with six years of experience shaping reliable, well-tested web products with TypeScript, React, .NET, and Azure.
Selected work
Two builds from different points in my career. Each one shows the problem, my part in it, and the decisions behind the interface.
Complex data, made reviewable
A typed three-step CSV workflow that turns large, imperfect files into a clear review and validation experience.
Read case studyCandour, without friction
A team-built survey product that helps colleagues share anonymous feedback through focused prompts, clear dashboards, and low-friction links.
Read case studyCapabilities
Most of my work sits between layers: where an event becomes state, state becomes an interface, and failure has to become a product decision.
Designing event-driven flows that carry reliable state from background processing to responsive web interfaces.
Azure Functions · Cosmos DB · Web PubSub · Next.jsBuilding production-like automated testing around the workflows most likely to fail at system boundaries.
Playwright · Vitest · Testcontainers · CI/CDMaking loading, offline, validation, and transient-failure states deliberate parts of the product experience.
React · TypeScript · Service workers · AccessibilityKeeping browser, API, queue, and persistence contracts explicit so changes remain understandable and recoverable.
TypeScript · Zod · OpenAPI · C#/.NETExperience
The places where I’ve built, shipped, and improved production software.
Belgrade, Serbia
Feb 2024 — Present
Belgrade, Serbia
May 2021 — Sep 2023
Barcelona, Spain · Remote
Oct 2020 — Mar 2021
Client work stays confidential here. I focus on the engineering decisions I can discuss publicly.
How I work