About
I'm Bojan Vidaic — a full-stack developer focused on Shopware 6 plugin development, Symfony, and backend systems. I've been writing code professionally for 6 years, with the last few years centred almost entirely on the Shopware ecosystem: custom plugins, CMS elements, DAL, Messenger, and storefront JS plugins.
I gravitated towards Shopware because it sits at a rare intersection — a serious PHP/Symfony codebase underneath, a real business domain on top, and enough complexity to reward thinking carefully about architecture. Every plugin is a chance to practice clean boundaries, dependency inversion, and code that the next developer can actually follow.
More recently I've been expanding into C# / .NET — bringing the same disciplined OOP approach I use in PHP into the .NET ecosystem. The transition has been natural: SOLID is SOLID regardless of the language.
How I Work
Strict types, strict thinking. Every PHP file starts with declare(strict_types=1). Not because the style guide says so, but because silent type coercion is where bugs hide.
Thin controllers, fat services. Controllers validate input and delegate. Business logic belongs in services. This isn't dogma — it's the reason codebases stay maintainable past the first sprint.
Minimum necessary complexity. I don't build for hypothetical future requirements. I build for what's needed now, in a way that doesn't close doors later.
Readable over clever. If a method needs a comment explaining what it does, it needs a better name. Code is read far more often than it's written.
Stack
Backend: PHP 8.2 · Symfony · C# / .NET · MySQL · REST APIs
E-Commerce: Shopware 6 — DAL, Messenger, CMS elements, Twig, Store API
Frontend: SCSS / BEM · JavaScript
Tooling: Docker · Git · Composer · PHPUnit
Currently
Open to freelance projects, plugin commissions, and other interesting opportunities - especially anything that involves a hard architectural problem or a codebase worth caring about.