How I think about software? Working code that solves real problems will always beat perfect code that never ships. But the best engineers know that code is read ten times more than it's written — and that architecture is never context-free.
A proof-of-concept deserves different scrutiny than a business-critical auth flow. I adapt the level of rigour to the stakes — no over-engineering, no under-investing.
Naming, structure, and component decomposition communicate intent to the next engineer. I write for the reader as much as the machine.
Architectural decisions that aren't understood or bought into don't survive contact with a deadline. I invest in documentation, shared language, and mentoring — not mandates.
The best architecture is one where each problem is stated as a composition of simpler sub-problems. This shapes components, services, and their extensibility from day one.
I've migrated complex state systems at scale with zero downtime. Refactoring in production is a skill — it requires a plan, a hypothesis, and the patience to do it incrementally.
In complex organisations, the best ideas win through trust, timing, and empathy — not title. I've improved architectures by building the coalition, not just the argument.
A selection of my past work. Case studies coming soon.
Owned and implemented architecture of the migration of a big, 2000+ page marketing critical for client's business.
Owned and implemented frontend part of authentication flows used by the company's most valued enterprise clients, including Netflix, Spotify and Sony. Led the full design-to-deployment cycle, including threat modelling and cross-team alignment.
Designed and shipped a complex real-time communication feature using WebRTC — including peer-to-peer video, audio, and data transfer. Debugged a race condition deep in a vendor library through systematic hypothesis-driven investigation.
Owned the architecture and delivery of a chatbot system serving millions of users. Built internal state management and caching infrastructure that reduced boilerplate significantly, improved team cohesion, and became a foundation others built on.
I've designed team structures tailored to specific capabilities, business context, and the reality of remote work — giving everyone a clear communication and escalation path without daily babysitting. I mentor through doing: didactic applications, pair debugging, and building shared vocabulary rather than issuing top-down architectural decrees.
I've built and iterated on technical hiring pipelines from screening through to final interviews — adapting process in real time based on the candidate and role. I care as much about signal quality as candidate experience. A bad hire is expensive; a great process filters one and attracts the other.
From pairing with a junior on a gnarly bug, to a peer architecture review, to persuading a product manager that the refactor matters — I adapt the framing, not the message. I've presented at technical conferences and written documentation that people actually reference.
I approach complex bugs like a detective: clear hypothesis, structured tooling (logs, monitors, debuggers), and documented reasoning. I don't just fix the symptom. I've led debugging sessions on race conditions in third-party libraries and built systems that are meaningfully easier to test and monitor by design.
I'm looking for senior IC or staff engineering roles where architecture, team quality, and long-term thinking are taken seriously. If that sounds like your team, I'd like to hear from you.
Case studies and a deeper look at specific projects available on request.
ilijan.kotarac@gmail.com linkedin.com/in/ikotarac github.com/ikotarac© 2026 Ilijan Kotarac