Berlin, Germany
Aleksandar Velichkovikj
Senior Flutter & Next.js Developer
I build and ship production software end to end — Flutter for cross-platform mobile, Next.js for the web. I take either on its own, or both when a product needs to live in more than one place.
Currently
Shipping small tools in the open and sharpening how I set codebases up for coding agents.
Selected work
Seasn
Digitaler Finanzplaner
Financial planning app for Goethe-Universität Frankfurt. Lead developer through senior ownership — architecture, navigation, state management, release cycles and roadmap.
10,000+ usersGerman App Award 2026Flutter · Dart · GetX · iOS · Android
Seasn Admin Tool
Internal content platform
A Next.js platform that lets the university's data team run Seasn themselves: scenario templates, bilingual video content, scheduled push notifications, AI assistant prompts, pension and product configuration, and data export. I inherited it as a single-purpose tool built on a departed developer's side project and grew it into a six-domain panel with a documented, repeatable pattern for adding the next one. Internal and VPN-locked, so there is no public link.
Six admin domainsUsed by the data teamNext.js · React · TypeScript · MUI · NextAuth · Zustand · Docker
MCP Inspector
Protocol client for the browser
Point it at any Model Context Protocol server and it runs the handshake, lists the tools, builds a working form out of each tool's JSON Schema, and shows the raw JSON-RPC under every exchange. MCP servers do not send CORS headers, so it relays through its own proxy — one that pins the DNS lookup and re-validates the target at connection time, because a URL fetcher on the open internet is an SSRF vector otherwise.
Next.js · React · TypeScript · MCP · JSON Schema
Agent Canary
Prompt-injection test page
Hands your agent a page with six instructions hidden in it — a stylesheet rule, a hidden attribute, colour-on-colour text, Unicode tag characters, an image alt attribute and an HTML comment — then reads the reply back and reports which ones it followed. It separates an agent that obeyed an instruction from one that quoted it while refusing, because those look identical to a naive check and only one of them is a failure. The bait page is served as hand-built HTML rather than React: a server-component render republishes the whole tree as readable JSON in a script tag, handing over all six payloads without using a single one of the techniques.
Next.js · React · TypeScript · Node test runner
Also independently designed and shipped consumer iOS applications to the Apple App Store.
Also shipped
GRIND
An interval timer for workouts and focus sessions. Installable to the home screen, and genuinely private — no accounts, no analytics, no network requests once it has loaded. Everything you build stays on your device, with a backup file if you want it somewhere safer.
Next.js · TypeScript · PWA
Toolshed
Single-page tools for questions that keep coming up: is this website real, where does a link actually go, what is hidden in this text, could someone forge mail from this domain — plus formatting JSON and decoding tokens. No build step, no backend, no accounts.
HTML · CSS · JavaScript · RDAP · DNS-over-HTTPS · Unicode · JWT
Crawler Policy
Paste a domain and see which AI crawlers its robots.txt actually allows, resolved the way a crawler resolves it rather than by searching the file for a name.
Next.js · TypeScript · RFC 9309
Intercept
A word game in the Star Wars alphabet. Decode a transmission written in Aurebesh — a real letter-for-letter substitution — and the file on whoever sent it opens. You need to know nothing about Star Wars to play, and you can read Aurebesh by the end of it.
Next.js · TypeScript · Aurebesh
Agent-assisted development
Working effectively with agents is a setup problem, not a prompting one. I make production codebases that agents can work in autonomously — documented patterns, rules enforced by tooling, and verification that runs before anything reaches me. On any project of real size, that system is the first thing I build.
- Documented patterns, not prompts
- Every pattern in the codebase has a written reference — paging, caching, async operations, JSON-driven forms, localisation — plus a feature index tracking each shipped feature to its branch and commit. An agent reads the pattern instead of inventing a fifth way to do the same thing. The same documents onboard a human developer faster, for exactly the same reason.
- Rules enforced, not requested
- A pre-write hook blocks edits to protected paths. A post-write hook flags any comment an agent adds, so a no-comments rule actually holds. Custom skills wrap the operations that are easy to get wrong — adding a localisation key can never invent a translation or hardcode a string. Guardrails in the tooling hold when a prompt doesn't.
- Agents verify their own work
- Nothing is reported done on an agent's say-so. A verify skill runs analysis, tests and build and reports the real output. For UI work the agent drives the iOS simulator itself — gestures, screenshots, hot reload — and confirms the change on screen before claiming it works.
- Reviewed before I even look
- Substantial features go through a multi-agent review pass — architecture, behavioural regressions, financial correctness, security, accessibility — before they reach me. Human review is still required before merge, and the accountability for what ships stays with me.
Same principle, pointed outward. This site publishes a live MCP endpoint, so an agent can read my work, check my availability, and pass a message to my inbox on a visitor's behalf.
Pick a question — it runs a real request against this site's MCP endpoint.
https://alekvel.dev/api/mcpAlso available: llms.txt · AGENTS.md · resume.txt
Stack
- Mobile
- FlutterDartGetX state managementNavigation architectureLocal persistencePush notificationsPerformance profilingWidget and integration testing
- Web
- Next.jsReactTypeScriptJavaScriptServer-side renderingStatic site generationProgressive web appsInternal dashboardsAdmin panels
- Delivery
- iOS and Android release management · Apple App Store and Google Play submission · Cross-device testing · Defect triage · Continuous integration basics · Git
- Practice
- Requirements gathering · Stakeholder communication · Technical documentation · Remote and asynchronous collaboration · Agent-assisted development workflows · Claude Code · MCP integrations · Custom agent skills and hooks · Automated verification and multi-agent code review
Background
I came to development self-taught, learning by shipping rather than by curriculum — a bootcamp at Ironhack in 2021 to close the gaps, then five years of production work that taught the rest. That is still how I operate: I would rather have something running than specified, and I care how it looks by the time it gets there.
Education
- 2021
- Ironhack — Full-Stack Web Development Programme
- 2012 — 2014
- ESRA — Diploma of Education, Photography
Languages
- Macedonian · Native
- Croatian · Bilingual
- English · Full professional proficiency (C1)
- German · B2, conversational