// Hi, I'm

Miha Gašperšič

Software Architect & DevOps Specialist

A hands-on software architect with 12+ years behind me. I design distributed systems, build the hard parts myself, and own the cloud, Linux and pipelines that get them shipped.

Open to interesting architecture problems & good conversations

Slovenia · EU Distributed systems · Quarkus · Kubernetes Ubuntu & open source
LinkedIn GitHub
scroll for projects & stack — or press ~ for terminal

About

A systems thinker who actually ships.

I work in the gap between a clean architecture diagram and a system that survives real traffic. My focus is distributed systems — microservices, event-driven and domain-driven design — and the DevOps that keeps them healthy: Kubernetes, CI/CD and GitOps.

I'm pragmatic about trade-offs and prefer simple, well-considered solutions over over-engineering. I'm also a committed Linux and Ubuntu user — I've contributed Slovenian localization for Ubuntu on Launchpad — and when I'm not designing systems for work, I run my own self-hosted cloud platform end to end.

  • Experience 12+ years · software architect since 2013
  • Focus Distributed systems, Quarkus/Java, Kubernetes & GitOps
  • Location Slovenia · EU
  • Education B.Sc. — Computer & Information Science, University of Ljubljana
  • Languages English · Slovenian
  • Open source Ubuntu community on Launchpad

Experience

12+ years building & shipping software.

More than a decade at one company — from developer to lead engineer to software architect. I design the systems and still build the hard parts myself, and I'm the team's go-to for the Linux and deployment work that gets projects shipped.

Software Architect

Oct 2013 – present · 12+ yrs

Software development company · Ljubljana, Slovenia

Career path:

  • 2019 – now Software Architect · primary role
  • 2015 – 2019 Senior / Lead Software Engineer
  • 2013 – 2015 Software Developer
  • 2010 – 2013 Software Developer · as a student
  • As architect (my primary role): I design the systems and own the hard parts of delivery — API design, the skeletons for how complex features should be built, and cross-cutting concerns like authentication & authorization.
  • As senior / lead engineer before that: led product development and teams — technical direction, ownership and mentoring.
  • Part of the R&D team — researching new tools, best practices and industry trends.
  • Hands-on throughout: continuous deployment, server / VPS administration, the deployment side of Kubernetes (Helm, manifests), and the Linux administration that gets projects installed and running.

Education

B.Sc. — Computer & Information Science

Faculty of Computer and Information Science · University of Ljubljana

Certifications

Oracle Certified Expert — Java EE 6 JPA DeveloperOracle · 2016
Oracle Certified Expert — Java EE 6 Enterprise JavaBeans DeveloperOracle · 2016
Magnolia Associate DeveloperMagnolia · 2016
Oracle Certified Expert — Java EE 6 Web Component DeveloperOracle · 2015
Oracle Certified Expert — Java EE 6 Web Services DeveloperOracle · 2015
Oracle Certified Professional — Java SE 7 ProgrammerOracle
Oracle Certified Associate — Java SE 7 ProgrammerOracle

What I do

From architecture to production.

Where I add the most value — from the first whiteboard sketch to a service that's still healthy at 3 a.m.

System & Software Architecture

Microservices, event-driven and domain-driven design. API design (REST, GraphQL, gRPC), C4 documentation, ADRs, and architecture reviews that keep systems maintainable as they grow.

Cloud & DevOps

Containerized deployments on Kubernetes and Docker, cloud infrastructure on Azure (plus Google Cloud), Infrastructure as Code with Ansible & Terraform, and CI/CD pipelines built the GitOps way.

Backend Engineering

Cloud-native Java with Quarkus (my specialty), Spring Boot, plus Python and Go. Built for scale, observability and twelve-factor principles.

Technical Leadership

Architecture reviews, mentoring, documentation and stakeholder communication — turning fuzzy requirements into systems teams can actually build.

How I work

Architecture is judgment, not just diagrams.

A few principles I keep coming back to — they're why the systems I design are still maintainable long after the kickoff meeting.

Simple beats clever

I prefer simple, well-considered solutions over over-engineering. The best architecture isn't the most sophisticated one — it's the one the team can actually run and reason about.

Decisions, written down

I document the why with C4 diagrams and ADRs, so the reasoning behind a design survives reviews, turnover and the inevitable "why did we do it this way?" two years later.

Designed to be operated

I design for observability, failure and twelve-factor principles from the start. A system isn't done when it passes tests — it's done when it stays healthy at 3 a.m.

Communication over cleverness

The hardest part of architecture is people, not tech. I turn fuzzy requirements into something a team can build — through reviews, mentoring and honest trade-off conversations with stakeholders.

AI & LLMs

AI is part of my daily toolkit — from model to agents.

AI and coding agents are part of how I work as a software architect, every day. I have hands-on experience across the whole LLM stack — serving models, putting a gateway in front, retrieval and agents — so I know how the pieces fit, how to configure them, and where they actually earn their keep.

LLMsself-hosted or API OpenAI-compatible gatewayone endpoint, server-side keys Chat UI RAG Agents

Part of how I work

AI and coding agents are a daily tool in my architecture and development work — drafting and pressure-testing designs, exploring unfamiliar code, and automating the repetitive parts. Not a side experiment; part of how I ship.

The whole stack, hands-on

I've set up and configured the full pipeline myself: a LiteLLM gateway exposing a single OpenAI-compatible endpoint with server-side keys and routing, and OpenWebUI as the chat front-end. I know how the pieces connect.

RAG that answers from real docs

Retrieval-augmented generation with embeddings and vector search on the LangChain stack — so models answer from actual documents and codebases, not just their training data.

Agents with tools

Hands-on with coding and automation agents — opencode and Hermes, vendor agents from Anthropic (Claude) and Microsoft — plus custom tool-calling built on the LangChain stack.

Stack

The toolbox.

The tools I reach for — chosen for fit, not for the résumé.

Languages

JavaPythonGo TypeScriptDartBashSQL

Architecture

MicroservicesEvent-DrivenDDD RESTGraphQLgRPC C4 ModelADRSOLID

Cloud & Orchestration

KubernetesDockerPodmanHelm AzureGoogle Cloud

IaC & CI/CD

AnsibleTerraformJenkins GitHub ActionsGitLab CIArgoCDGitOps

Backend

QuarkusSpring BootNode.js

AI & LLMs

Local LLMsLiteLLMOpenWebUI RAGLangChainAgentsVector search

Data & Messaging

PostgreSQLMongoDBRedis MinIOKafkaRabbitMQ

Observability & Security

PrometheusGrafanaOpenTelemetry KeycloakOAuth 2.0 / OIDCVault

Got an interesting system to design?

Designing something ambitious, or just want to talk architecture? I'm always happy to chat and share ideas.

LinkedIn GitHub