About
Sixteen years of production software, in one place
I started in 2010 as a teaching assistant in a computer graphics and AI lab, moved into web-to-print automation, and have been building and leading production software since: tourism portals, retail platforms, an IoT smart-retail stack, a waste-management platform, fiscal compliance integrations.
Today I work as a senior developer and write technical articles on the side. My own time goes into self-hosted infrastructure: LLM pipelines, retrieval over personal documents, and the glue that makes them usable every day.
How I work
Evidence over adjectives
Every case study on this site carries an evidence grade. Where the source material does not document a design detail, the page says so instead of inventing a plausible diagram.
Boring where it counts
Technology choices are judged by what they cost to operate and restore. A stack someone else can read in two years beats a clever one only I can maintain.
Write it down
Architecture decisions, runbooks and handover notes are part of the deliverable. This site is built the same way: content in the repository, schema-validated, no admin panel.
Employment timeline
Employers, logos and what I actually delivered at each of them, from the research lab in 2010 to the current role in Steyr. Case studies stay separate and unnamed.
Skills
Grouped by what the work actually was. No percentage bars, no twenty-year claims on tools that appeared five years ago.
Languages
Day-to-day syntax, not a list of tutorials
- TypeScript / JavaScriptexpert
- PHPexpert
- C#expert
- SQLadvanced
- Pythonworking knowledge
- C / C++previous experience
Backend and data
Services, schemas and the integration between them
- Node.jsexpert
- NestJSadvanced
- Expressadvanced
- ASP.NET Coreadvanced
- PostgreSQLadvanced
- MySQL / T-SQLadvanced
- Redisadvanced
- MongoDBworking knowledge
- REST API designexpert
- Event-driven architectureadvanced
- Kafkaworking knowledge
Frontend
Enough to own the whole product, not just the API
- Vue.jsadvanced
- Reactworking knowledge
- Next.jsworking knowledge
- AngularJSprevious experience
- Leaflet.jsadvanced
- HTML / CSS3expert
- Tailwindworking knowledge
- Figmaworking knowledge
Infrastructure and delivery
Shipping, running and being able to restore it
- Docker / Composeexpert
- GitHub Actionsadvanced
- Linux / Bashadvanced
- NginXexpert
- Azure DevOpsworking knowledge
- AWSworking knowledge
- Google Cloudworking knowledge
- Kubernetesworking knowledge
- Terraformworking knowledge
- Grafana / Datadogworking knowledge
AI and automation
Applied, self-hosted, and running in daily use
- n8n workflowsadvanced
- LLM provider APIsadvanced
- LiteLLM gatewayworking knowledge
- Qdrant vector searchworking knowledge
- Local embeddings / CPU inferenceworking knowledge
- vLLMworking knowledge
- Paperless-ngx ingestionworking knowledge
- Prompt and agent designadvanced
Practice and leadership
What the work looks like beyond the editor
- System designadvanced
- Clean architecture / DDDexpert
- Microservices and monolith trade-offsadvanced
- Team leadershipadvanced
- Technical mentoringadvanced
- Hiring and interviewingadvanced
- Technical writingadvanced
- Stakeholder communicationadvanced
- Agile / Scrum / Kanbanadvanced
- Test automation and QA practiceadvanced
Education
MSc Computer Science, University of Maribor
2005 – 2010 · FERI, Maribor, Slovenia
Thesis: Image Classification with Self Organising Kohonen Neural Networks, an implemented image classification system rather than a literature survey. Course work in distributed systems, machine learning, neural networks and software architecture, which is where the interest in systems design started.
The teaching-assistant role at the computer graphics and AI lab followed directly from this: research, examples and course material for the same subjects.
Get in touch
Want the version with the boring parts included?
I am happy to walk through architecture decisions, trade-offs I would make differently now, and what I am looking for next.