I work where correctness isn't negotiable. Over 7+ years I've gone from shipping features to owning architecture. Most recently I designed the architecture for a ground-up rebuild of a payments platform, consolidating four legacy codebases into one modular, type-safe system, and wrote roughly 75% of it (~1,815 commits across five repositories).
I care about the parts that compound: documented decisions (ADRs), an architecture that enforces itself in CI, a generated type-safe API client that kills front/back schema drift, and developer experience that turns a two-day setup into one command. (A recent favorite: tracing a 23-second page to a 32-join database view and making it ~10x faster.)
🟢 Open to remote senior engineering and architecture roles.
- Backend: PHP 8.4 (Laminas / Mezzio, Slim), Doctrine, DDD, OpenAPI
- Frontend: TypeScript (strict), Vue 3, Nuxt 4, Vuetify, Tailwind CSS
- Quality & CI: PHPStan (level 5) + custom rules, Psalm, Deptrac, Rector, SonarQube, GitHub Actions
- Databases & infra: MariaDB / MySQL, Redis, Docker, DDEV, Ansible, Linux
- Also writing: Go, Shell
- php-booster - a ready-to-use stack of PHP code-quality tools (PHPStan, Psalm, ECS, Rector, Git hooks), pre-configured on DDEV. The standards I bring to a team, packaged.
- forge - a fast Git-hook and dev-workflow tool written in Go (with a Homebrew tap).
- ansible-post-installation ⭐ - playbooks that provision a complete Linux/macOS dev workstation from scratch.
- goranninkovic.com - my portfolio and writing: Nuxt 4, Tailwind, i18n, prerendered to Cloudflare.
- Designing and building a payments-platform rebuild (modular monolith + Slim middleware + Nuxt 4 SPA + generated TypeScript SDK), with an AI-augmented migration workflow that roughly halved the projected timeline
- Deepening Go (and tinkering with Rust)
- Open to the right remote team - let's talk





