Dušan Dželebdžić presenting to a room at OpenVMS Bootcamp, a slide about turning natural language into DCL behind him
Dušan Dželebdžić at a laptop, turned toward the audience
Dušan Dželebdžić · On stage at OpenVMS Bootcamp, Malmö, 2026

software engineer & consultant

I connect the systems your business runs on.

I build integrations, modernize software that’s been running for decades, and find the bugs that survive everyone’s first guess. Thirty years in, the awkward problems are still the interesting ones.

  • AI & system integration
  • Legacy modernization
  • Production troubleshooting

Built by me.
Still my responsibility.

My own businesses are where the engineering gets its practical test. I live with the decisions, keep the systems running and fix what I got wrong.

The biro.works homepage

Behind the enquiry form

How an enquiry moves through Biro’s intake

Prospective clients, sales pitches, operational mail and junk take different paths. The classifier records a category and a reason.

biro.works

AI integration with a business behind it.

Biro builds and looks after websites for agencies and growing businesses. It’s also where I put AI to work in a real business, starting with how enquiries arrive, get assessed and receive a reply.

Email and web forms feed one intake. Drafts come from the service catalogue, a daily spend limit keeps the model honest, and every customer reply waits for a human.

WebKeeper dashboard with a demo portfolio of sites that need attention The WebKeeper dashboard on a phone

Real product screens. The businesses and numbers in them are demo data.

WebKeeper

Knowing what changed. And who owns it.

16.6 s
Permission check per row
23 ms
Once per statement

One glance query, PostgreSQL 17 test container, 20 seeded sites.

After a decade of running an agency, I wanted a shared record of the websites we looked after: who controls each client domain, who handles renewals, and when something quietly changes.

Building it also gave me a memorable PostgreSQL problem. One row-level security check was running 28,765 times for a single query.

There’s usually a reason it’s broken.

I’ve worked on software that’s been in production for decades and on products still finding their feet. Client names stay private. The failure modes don’t, because the next team will hit them too.

  1. NET

    Replication that failed between networks

    Cloud-to-on-prem MySQL replication was failing silently. The root cause was an MTU mismatch and packet fragmentation.

  2. WP

    A WordPress fleet with recurring crashes

    Memory leaks in custom plugins and misconfigured caching layers kept knocking over a multi-server setup.

  3. ARCH

    An outage that started with one connection pool

    Thousands of users down, because connection-pool exhaustion cascaded across microservices.

  4. AWS

    A bill thousands a month too high

    Oversized instances, forgotten snapshots and unattached EBS volumes, all quietly billing.

How we can work together

Most work starts with a message about something that’s broken or stuck. From there it goes one of these ways.

Flagship

Legacy modernization

Your business runs on a system nobody dares to touch. I connect it to modern infrastructure, move the data out piece by piece, and retire it on your schedule, not on the day it finally dies. From OpenVMS to last decade’s PHP monolith.

Tell me about your system
  1. Phase 1ConnectBridge the old system to modern infrastructure.
  2. Phase 2MoveData and features migrate piece by piece.
  3. Phase 3RetireThe old system goes when the new one has proven itself.

↳ Stop after any phase and you’re better off than before it.

Emergency fix

Something is broken right now. I diagnose and fix it.

Typically 24–48 h

System audit

Architecture, performance and risk, in a clear report with priorities.

Output: a written report

Ongoing support

Priority access, fixes and improvements. A senior engineer on call.

Monthly retainer

Custom development

Web apps, mobile apps and integrations, mostly for industrial settings.

Design → build → ship

When a project needs more than me

I bring in people I’ve worked with for years, for exactly as long as the project needs them. You still talk to me. I own the architecture and the result.

  • Full-stack architects
  • Pentesters
  • Frontend developers
  • Marketing, for launches

Tell me what needs to work together.

An AI integration, an older application, or a production problem that won’t explain itself. Send me the context and I’ll tell you whether I can help.

or book a 30-minute call