contact

ende

Staff Engineer AI & Backend @ Hygraph

Dino Omanovićstaff engineerfor ai platforms, agent runtimes, mcp servers, durable workflows, distributed backends, graphql at scale

I've been building backends for about 14 years. At Hygraph I currently work on AI: an MCP server, the service that runs our agents, and everything between them and the content API. Mostly in Go and TypeScript.

  • 14+ years backend
  • Go & TypeScript
  • AI Labs @ Hygraph
  • Bonn, Germany
Portrait of Dino Omanović

Idea. Experiment. Software.

My favourite part of the job is when an idea turns into something that runs in production. With AI that got more interesting. You can build a demo agent in an afternoon. Getting one to work on real customer data takes a lot longer.

That's where most of my time goes at the moment. Before that I spent years on GraphQL APIs, Postgres and large e-commerce platforms, and I still like all of that too.

AI & Backend Engineer

Agents, MCP tools and the Go and TypeScript services they run on. I still write a lot of the code myself.

Forward Deployed Engineer

Close to customers. From the first conversation to a released feature, and I keep it running afterwards.

Architect

Deciding where the boundaries between services go, and how to get there in steps.

Tech Lead

Coaching engineers and helping product and engineering agree on what comes next.

AI & agents
I built Hygraph's MCP server and a good part of the agent platform behind it. Lately that includes custom agents that customers set up themselves.
Long-running work
Agents call slow and sometimes unreliable APIs. I use Temporal for that, so retries, cancellation and restarts are handled in one place.
Data & APIs
Lots of GraphQL, SQL and Postgres over the years, most recently vector search with pgvector. I like migrations that can go out in small steps.
Leading
I led the core team at Hygraph for two years. Now I work across teams as a staff engineer, which means design reviews, rollout plans and mentoring.

how i build agents_

Roughly what happens when an agent runs on the platform I work on. Most of my work is in the steps around the model call.

  1. 01 start()

    running

    A workflow step changes, a webhook comes in, or someone clicks “run” in the editor.

  2. 02 queue()

    Temporal takes over. Each agent has a coordinator with a fixed number of slots, so a big batch doesn't flood the LLM provider.

  3. 03 think()

    The model works through MCP tools, but only the ones that make sense for this one entry. Publishing isn't one of them.

  4. 04 check()

    Before writing, the agent asks whether a person is editing the entry right now. If so, it backs off.

  5. 05 review()

    Everything one run changed ends up as a single version. A person looks at it and decides whether to publish.

selected work_

Things I led or shaped over the last couple of years, mostly at Hygraph. What I built is only half of it, so each card also has the decision behind it. None of these were solo projects.

01

One MCP interface for AI clients

AI clients needed a safe way into customer projects, not a new integration for every use case. I set up the Go MCP server and the rules for adding tools to it: authenticated, scoped to a project, validated input and errors a model can actually work with. Content, schema and migration tools followed on the same contract.

decision

One shared tool contract instead of per-feature integrations. That gives more leverage, but every tool becomes part of the platform's security boundary, so validation isn't optional.

  • Go
  • MCP
  • Auth
02

Durable execution for agents

Agents call slow LLM APIs and have to survive deploys and restarts, so plain request/response wasn't going to work. I set up the agent service on Temporal and defined the orchestration and recovery patterns: one coordinator per agent, limited parallelism, retries and cancellation. Later agents reuse them instead of inventing their own.

decision

Take on Temporal as a new dependency in exchange for durable retries, queueing and visibility we'd otherwise build badly ourselves.

  • Temporal
  • AWS
  • Go
03

Custom agents people can trust

Customer-configured agents are only useful if people trust what they do. I worked out the boundary first and then built it across four services: agent config, the tool loop, content versioning and the review UI in the editor.

decision

An agent may only change the entry it was started on and can't publish. All edits of one run become a single version that a person reviews.

  • Agents
  • MCP
  • Versioning
04

Agents vs. people editing

Agents shouldn't write into an entry someone is working on. My first design had the agent service read the editor's Redis directly. I changed course to a small API owned by the editor team, so the team that owns the data also decides what it means.

decision

Fail open on timeouts, so an editor outage doesn't stop every agent. Run in shadow mode first and look at what would have been blocked before enforcing it.

  • Temporal
  • Redis
  • Rollouts
05

Vector fields in the CMS

A new field type has to mean the same thing in the database, migrations, GraphQL schema, SQL translation and the editor. I split the work into seven separate pieces, so each layer could be reviewed and shipped on its own behind a flag.

decision

Show users the trade-off between exact and approximate search instead of hiding it behind an index that can silently miss results.

  • pgvector
  • GraphQL
  • Aurora
06

Leading the core GraphQL platform

Two years setting technical direction for the team behind Hygraph's global GraphQL API, balancing performance, reliability and API stability. That included edge caching with finer invalidation, the move to Aurora, and building our on-call and incident routines.

decision

Change risky infrastructure region by region, with monitoring in place first, instead of one big switch.

  • GraphQL
  • Fastly
  • Aurora

experience

Started as an apprentice in 2012, fell for Go along the way and ended up working on AI.

Hygraph

Remote · 2021 – today

  1. Staff Engineer AI & Backend

    2025 – todaynow

    MCP server, agent runtime on Temporal, vector search and the infrastructure underneath.

  2. Staff Engineer Backend & Infrastructure

    2024 – 2025

    Content search with permissions, workflow authorization, autoscaling and keeping observability costs in check.

  3. Engineering Lead · Core

    2022 – 2024

    Led the team behind the GraphQL API. Edge caching, Aurora, on-call and a lot of coaching.

  4. Engineering Lead · Developer Experience

    2021 – 2022

    Reusable content components across data model, API and editor, while the team grew quickly.

  5. Senior Backend Engineer

    2021

    Reworked schema generation so each project needs only one cached GraphQL schema.

TheyDo

Amsterdam · Remote · 2024

  1. Staff Engineer

    2024

    Importing large amounts of customer research and pulling insights and journeys out of it with LLMs.

Qvest Digital

Germany · 2012 – 2021

  1. IT Consultant & Systems Architect

    2020 – 2021

    Architecture group for the e-commerce platform of a large car manufacturer.

  2. Product Owner & Systems Architect

    2018 – 2020

    Worked with the customer for two to three teams, translating priorities into technical work.

  3. Developer → Systems Architect

    2012 – 2018

    Go and Java microservices for large online shops. Taught Go internally until people started using it.

technology_

I like learning new things, but some tools are just fun to work with.

overview

Over the years I've worked on lots of different projects and learned to appreciate many technologies.

  • Go
  • TypeScript
  • Node.js
  • MCP
  • Temporal
  • LLM tool loops
  • Agents
  • RAG
  • pgvector
  • Embeddings
  • PostgreSQL
  • Aurora
  • Redis
  • GraphQL
  • SQL
  • OPA
  • AWS
  • ECS/Fargate
  • SQS
  • Fastly
  • Pulumi
  • OpenTelemetry
  • Distributed tracing
  • Rust
  • Java
  • Kafka
  • gRPC
  • Docker
  • Kubernetes
  • CI/CD
  • Load testing
  • Event-driven
  • Microservices

talks

I like sharing what I've learned and talking about it.

new2026

Building an AI Knowledge Base with MCP

Talk

2022

Choosing a GraphQL Provider

GraphQL Conf

The state of Kafka and Go
Why Go?
Database bottleneck
Microservice quality
Reactive Go
Serverless Go

in short_

The quick version, for recruiters, customers and anyone skimming.

Who is Dino Omanović?

Dino Omanović is a staff engineer for AI and backend systems, based in Bonn, Germany. He has worked at Hygraph since 2021. Before that he was at TheyDo and spent nine years at Qvest Digital.

What does he specialize in?

AI agent platforms, MCP servers, durable workflows with Temporal, GraphQL APIs and PostgreSQL, mostly in Go and TypeScript. He has done both hands-on engineering and technical leadership.

What kind of roles does he take on?

Staff-level AI and backend engineering, forward deployed engineering close to customers, architecture across teams, and tech lead roles.

Does he work remotely?

Yes. He has worked fully remotely since 2021 from Bonn (CET) and works in English and German.

How can I get in touch?

The easiest way is a message on LinkedIn. His code is on GitHub.