Full-Stack Software Engineer · Belgrade

I build web products that hold up when things get complicated.

I’m Petar Scepanovic, a software engineer with six years of experience shaping reliable, well-tested web products with TypeScript, React, .NET, and Azure.

06 years in software 03 production teams 02 detailed case studies

Selected work

A few projects, properly explained.

Two builds from different points in my career. Each one shows the problem, my part in it, and the decisions behind the interface.

Capabilities

The parts I’m good at.

Most of my work sits between layers: where an event becomes state, state becomes an interface, and failure has to become a product decision.

01

Real-time systems

Designing event-driven flows that carry reliable state from background processing to responsive web interfaces.

Azure Functions · Cosmos DB · Web PubSub · Next.js
02

Quality engineering

Building production-like automated testing around the workflows most likely to fail at system boundaries.

Playwright · Vitest · Testcontainers · CI/CD
03

Resilient product UX

Making loading, offline, validation, and transient-failure states deliberate parts of the product experience.

React · TypeScript · Service workers · Accessibility
04

Typed integration

Keeping browser, API, queue, and persistence contracts explicit so changes remain understandable and recoverable.

TypeScript · Zod · OpenAPI · C#/.NET

Experience

Six years, three product teams.

The places where I’ve built, shipped, and improved production software.

  1. 01

    Zühlke

    Belgrade, Serbia

    Software Engineer

    Feb 2024 — Present

  2. 02

    BlueGrid

    Belgrade, Serbia

    Frontend Developer

    May 2021 — Sep 2023

  3. 03

    OMP

    Barcelona, Spain · Remote

    Frontend Developer

    Oct 2020 — Mar 2021

Client work stays confidential here. I focus on the engineering decisions I can discuss publicly.

How I work

Working on something complicated?

I’d like to hear about it.