Software, end to end.

I’m Djordje, a software engineer in Belgrade. I build all kinds of software: web apps, mobile and desktop apps, and the backends and infrastructure underneath them.

I’ve been building production software for more than five years, and by day I’m a full-stack engineer at AceBears. On my own time I make my own products and open-source tools, some of which are under Work. Lately I’ve been writing Rust too, and a game is probably the next thing I’ll build with it.

Away from the keyboard I’m an editorial photographer. My photo stories are at explore.djordjejanjic.rs.

Problems I like solving

Slow systems
Finding where the time goes and taking it out: caching, background queues, fewer requests, less work per frame.
Messy data and flaky services
Making incomplete data and unreliable third-party services dependable, with validation, retries, careful gap-filling and a clear label on anything that’s a guess.
AI that has to be right
Putting language models to work on real documents, with every answer checked against a schema or the source before anyone relies on it, from large hosted models to small ones on a phone.
Old code that can’t stop
Replacing legacy code piece by piece while everything keeps running, and leaving it typed and testable.
Getting it out the door
Build pipelines, app store releases and monitoring in production, so shipping is routine and problems show up early.

Tools I work with

Languages
TypeScript, JavaScript, Swift, Python, Rust
Web and backend
Node.js, NestJS, Express, FastAPI, Angular, React
Mobile and desktop
React Native, SwiftUI, AppKit, Metal
Data
PostgreSQL, MongoDB, Redis, SQLite
AI
OpenAI, Anthropic and Vertex AI APIs, Ollama, Apple Foundation Models
Infrastructure
Docker, Azure, Cloudflare Workers, Jenkins, GitHub Actions

Contact

Email is the best way to reach me: djordje.janjic@hotmail.com. I’m also on LinkedIn, GitHub and X as @geoyanj.