Goran Ninković

View as PDF
goran@goranninkovic.com Novi Sad, RS goran-ninkovic goranninkovic.com TerrorSquad

Platform engineer, and founder. I take systems that have grown past the team maintaining them and make correctness structural, so quality comes from the architecture rather than from everyone remembering the rules. Most of that work has been in payments and identity, where a wrong number is not a cosmetic bug. I also run a B2B SaaS I built and sold myself, which is where I learned what engineering decisions cost a business. 8+ years across PHP and TypeScript, 7 juniors mentored to production. Novi Sad, Serbia, remote.

Experience

mojGO

Jun 2026 - Present | Solo Technical Founder

B2B leave-management SaaS for the Serbian market. Live in production.
  • Sole engineer and founder: took a B2B SaaS from empty repository to a paying customer of ~240 employees in three months, and run it in production with Sentry monitoring.
  • Closed that customer myself, running discovery, scoping and pricing, then built what I sold: 80 migrations and 44 Playwright end-to-end specs behind it.
  • Made cross-tenant data leaks structurally impossible by enforcing isolation in PostgreSQL Row Level Security rather than in application code.

Euronet Worldwide

Dec 2023 - Present | Senior Fullstack Developer

Ground-up rebuild of four legacy codebases into one three-tier platform (Mezzio API, Slim middleware, Nuxt 4 frontend) behind a payments business. Upstream fix contributed to DDEV (ddev/ddev#6809).
  • Primary author and architect of the rebuild: a modular monolith of 13 bounded contexts with layering enforced by Deptrac, owning two thirds of commits in a team of six.
  • Put five other developers on AI-assisted delivery: packaged the workflow as an installable Claude Code plugin with 14 skills, 4 MCP servers, 43 tools and destructive-command guardrails.
  • Built a code-first pipeline turning PHP API attributes into a versioned, auto-published TypeScript SDK across 220 API operations, so contract drift became a compile error.
  • Built multi-factor auth end to end on a platform that had a bare password gate: email and authenticator-app OTP, enrolment, and environment-aware password recovery.
  • Cut a store listing page from 23.3 seconds to 2.3 by finding a database view hiding 32 joins across 3.9M rows, and made the access-control query 660 times faster. No new infrastructure.
  • Turned scattered wiki pages into a 138-page portal (sole author), mapping ~820 legacy actions across four codebases to their replacements as one migration reference.
  • Raised the baseline through architecture, not persuasion: 7 custom static-analysis rules, 41 ADRs and 2,300 tests on a legacy system that had none, enforced by 6 CI workflows.

Youwe

Mar 2022 - Jun 2023 | Tech lead

Led a 4-person team delivering two Magento 2 B2B projects with custom ERP integrations and tiered pricing. Promoted to Tech Lead after 9 months.
  • First tech-lead role: owned architecture decisions and code reviews, and ran the client-facing technical discussions on both ERP integrations.

Bee IT

Jan 2020 - Feb 2022 | Magento 2 Developer

Built a retail client’s headless e-commerce storefront (VueStorefront + Magento 2) and maintained multi-store Magento 2 websites across NL/BE/DE markets.
  • Mentored 7 junior developers through a structured curriculum; 4 progressed to shipping on real client projects.
  • Contributed an upstream fix to Vue Storefront (vuestorefront/vue-storefront#4533).

Bee IT

Jul 2019 - Jan 2020 | Salesforce Commerce Cloud Developer

Built B2B storefront features on Salesforce Commerce Cloud (SFRA) for a major Dutch retail chain, within a distributed team.

Vivify Ideas

Dec 2018 - Jun 2019 | DevOps Engineer

Owned CI/CD and infrastructure automation: Ansible provisioning, Jenkins pipelines and Icinga 2 monitoring across production servers.

Education

Faculty of Technical Sciences, University of Novi Sad

2016 - 2019 | Bachelor's in Software and Information Engineering

Languages

Serbian

Native

English

Fluent