I didn't build light mode, I was lazy. If you're a light-mode masochist, there's a page for you.

Go to the light side
01 / IndexSarajevo Probably awake.

Software
Maker.

Semir Blekić. Backend engineer, Go.
Agents type, I still read every line. Red Bull does the rest.

Available for full-time roles. Sarajevo or remote.

Semir at a laptop in a dim café, wearing a plaid shirt
me, pretending to fix prod
02 / WorkAlmost 3 years. No gaps I can't explain.

Work experience

  1. Pickleball.com

    Backend Software Engineer

    Nov 2024 to Sep 2026Remote

  2. Tech387

    Backend Software Engineer

    Apr 2023 to Dec 2023Sarajevo

03 / ProjectsWeekends well spent

Projects

Full stack · Weekend project

Dazzled

A satirical public record for blinding headlights.

Report the car that just blinded you, see which brands lead the leaderboard, check the Peak Blindness chart, generate a citation, or play Blind Drive, a passenger-mode game with a public scoreboard.

Frontend
Next.js static export, TypeScript
Backend
Go, hexagonal, SQLite with embedded migrations
Ops
One Docker image on Render
Details
Per-client rate limiting with an LRU-bounded table, one-use server-tracked game sessions, strict JSON body limits

If the live site takes a while, the server is waking up. Free hosting has a sleep schedule. So do I, in theory.

Status: in progress · Go only · CLI

Migraine

Renumbers SQL migration files after a git rebase.

Two branches both add migration 0042, one gets rebased, and somebody spends the afternoon renaming files by hand. Migraine detects the collision and renumbers your branch's migrations in order, so the team stops fighting over integers. Single binary, zero config, deterministic output.

04 / How I workClaude Code · OpenCode · Codex

I'm a Software Maker.
The agents do the typing.

  1. 1

    Architecture first

    Hexagonal boundaries, ports and adapters. The domain stays clean no matter who wrote the code, me or an agent.

  2. 2

    Agents write, I review

    Claude Code, OpenCode and Codex do the typing, often several at once in Ghostty splits. I set the plan, read every diff and answer for what merges.

  3. 3

    Tests are the spec

    If the agent can't make the tests pass, the agent doesn't merge. Same rule I'd want applied to me.

  4. 4

    Talk to the people paying

    At Pickleball.com I worked directly with clients and partners. I'd rather ask one dumb question than ship a confident wrong answer.

05 / Field notesOct to Nov 2026

I knock on doors.

For the last month I've been visiting local companies in Sarajevo and asking one question: what's annoying you this week? Spreadsheets doing a database's job. Inventory tracked on paper. A website last updated when Facebook was still cool.

I haven't closed a deal yet. I did get very good at listening before proposing anything, which is the part most engineers skip. Building things for people is a lifelong habit and I'll keep doing it. Right now I want to do it inside a team, with people better than me, on a product that matters.

06 / AboutThe non-technical spec

Semir, briefly.

Based in
Sarajevo, Bosnia and Herzegovina. Remote works too.
Age
26
Education
Associate of Science in Computer Science, Faculty of Electrical Engineering, Sarajevo, 2024.
Languages
Bosnian (native), English (proficient).
Good at
Listening. I let people finish the sentence, then I ask what they actually meant.
Motivation
Self-supplied. Nobody has to push me. Occasionally someone has to stop me.
Refuses
Ordinary. Also meetings that could have been a message.
Respect
Cristiano Ronaldo.
Fuel
Red Bull.

That's it. You can go now. Still here? Then let's talk.

Contact is right below