Dušan Dželebdžić · systems engineer & consultant

I modernize the systems your business can’t live without.

30 years with legacy systems, modern stacks, and the integrations between them. When things stop working, I make them work again. Fast.

Shipped with
  • OpenVMS
  • DCL
  • COBOL
  • Linux
  • AWS
  • Terraform
  • PostgreSQL
  • MySQL
  • PHP · Symfony
  • TypeScript · NestJS
  • Python
  • React · Next.js
  • Swift
  • Docker

Problems I get called in for

Usually after something has already broken, or when everyone is too scared to touch it.

  1. Legacy systems nobody understands anymore
  2. Migrations that are too risky to touch
  3. Systems that need to talk to each other but don’t
  4. Production going down or behaving unpredictably
  5. Infrastructure that doesn’t scale or randomly fails
  6. Performance issues under real-world load

Root causes, not symptoms.

Client names stay private. The failure modes don’t, because the next team will hit them too.

NO.SYMPTOMROOT CAUSEAREA
001Production outage affecting thousands of usersCascading connection-pool exhaustion across microservicesARCHITECTURE
002Multi-server WordPress stack with recurring crashesMemory leaks in custom plugins and misconfigured caching layersWORDPRESS
003Cloud-to-on-prem MySQL replication failing silentlyMTU mismatch and packet fragmentation between networksNETWORKING
004An AWS bill thousands a month higher than it should beOversized instances, forgotten snapshots, unattached EBS volumesAWS
005Deployment pipeline down, under time pressureDependency conflict in the CI/CD chain. Fixed and shipped the same dayCI/CD

How to work with me

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: 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

No fluff. No slide decks.

  1. You show me the problemA message, a shared screen, access to the repo. Whatever works.
  2. I diagnose quicklyNo endless meetings. I dig in, find the root cause, tell you what’s going on.
  3. I fix it, or map the way outYou get a working solution, not a presentation about one.

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
Dušan Dželebdžić giving a talk at the OpenVMS Bootcamp in Malmö, 2026
OPENVMS BOOTCAMP · MALMÖ 2026
“Software that’s boring in the right ways. Clarity beats cleverness every single time.”

I’ve worked across startups, long-lived business systems, and products that had to survive real users, real traffic and real constraints. Tools are secondary. Choosing the right level of complexity is the actual job.

Field notes from production

All writing →
postgresql My Postgres RLS policy ran its permission check 28,765 times per query email X-Apple-Action: JUNK on an email that passed DMARC vercel Vercel Web Analytics served its script from a path with no leading slash git Git says "You have not agreed to the Xcode license agreements" php PHP's sprintf pads by bytes, so one † moved my table columns

Things I ship on the side

Too many years overanalyzing ideas. Now I just ship them.

§ Contact

Got a problem? Send it over.

A short description is enough, or just the error message. I’ll tell you whether I can help.

or book a 30-minute call