# Dino Omanović > Staff engineer in Bonn, Germany, building AI agent platforms, MCP servers and Go/TypeScript backends at Hygraph. Forward deployed, from customer problem to production. 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. ## Pages - [Homepage (English)](https://www.dinodino.cloud/en): profile, selected work, experience, talks - [Homepage (German)](https://www.dinodino.cloud/de): same content in German ## In short ### 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. ## Roles - **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. ## Selected work ### 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. Tags: Go, MCP, Auth ### 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. Tags: Temporal, AWS, Go ### 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. Tags: Agents, MCP, Versioning ### 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. Tags: Temporal, Redis, Rollouts ### 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. Tags: pgvector, GraphQL, Aurora ### 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. Tags: GraphQL, Fastly, Aurora ## Experience ### Hygraph (Remote, 2021 – today) - Staff Engineer AI & Backend (2025 – today): MCP server, agent runtime on Temporal, vector search and the infrastructure underneath. - Staff Engineer Backend & Infrastructure (2024 – 2025): Content search with permissions, workflow authorization, autoscaling and keeping observability costs in check. - Engineering Lead · Core (2022 – 2024): Led the team behind the GraphQL API. Edge caching, Aurora, on-call and a lot of coaching. - Engineering Lead · Developer Experience (2021 – 2022): Reusable content components across data model, API and editor, while the team grew quickly. - Senior Backend Engineer (2021): Reworked schema generation so each project needs only one cached GraphQL schema. ### TheyDo (Amsterdam · Remote, 2024) - Staff Engineer (2024): Importing large amounts of customer research and pulling insights and journeys out of it with LLMs. ### Qvest Digital (Germany, 2012 – 2021) - IT Consultant & Systems Architect (2020 – 2021): Architecture group for the e-commerce platform of a large car manufacturer. - Product Owner & Systems Architect (2018 – 2020): Worked with the customer for two to three teams, translating priorities into technical work. - Developer → Systems Architect (2012 – 2018): Go and Java microservices for large online shops. Taught Go internally until people started using it. ## Talks - Building an AI Knowledge Base with MCP (2026) - Building an AI Agent with TypeScript and MCP, Hygraph livestream (2025): https://hygraph.com/events/livestream-build-an-ai-agent-with-typescript-and-mcp - Choosing a GraphQL Provider, GraphQL Conf (2022) - The state of Kafka and Go (2020) ## Contact - LinkedIn: https://www.linkedin.com/in/dino-omanovic/ - GitHub: https://github.com/domano