Skip to content

I build products, and the teams that build them.

I started in 2014 as a freelance full-stack developer in Kyiv, building web apps for startups from the first commit to production. Seven years of that taught me to own the whole thing, because there was nobody else to hand it to.

In 2022 I joined Squirro in Zurich and spent four years on its search, the one that runs inside European banking regulators. That is where I learned that an answer is only as good as the evidence you can show for it. Today I lead the Tacit Knowledge team, taking organisational memory from architecture to production.

Coding agents changed what one engineer can ship, and I have rebuilt how I work around them. I write about that here, and I test it on small open-source apps I build for my own household.

Read the blogLet’s talkDownload CV (PDF)

Oleh Vdovenko in profile, wearing glasses, against a dark background

The longer version

  1. 2014–21

    Freelance

    Seven years of owning the whole thing, because there was nobody else to hand it to.

    • Web apps for startups and small businesses, from the first commit to production.
    • Frontends in React, Next.js and Remix; APIs and services in Node.js and NestJS, with the auth, databases and integrations around them.
    • Server rendering, route-based data loading and code splitting, chosen for what the product needed rather than for the stack.
  2. 2022–23

    Search

    Learned the search surface, then owned it.

    • Global search, typeahead, facets, advanced search, spellcheck and concept search.
    • Query chips turned a freeform text box into a structured, editable query. They are still the shape of Squirro search today.
    • The first React rewrites inside a Backbone.js app, and MUI theming driven by each customer’s brand.
  3. 2024–25

    Migration and modernisation

    Rewrote the foundation under a live product.

    • Backbone to React, one piece of the platform shell at a time, with the end-to-end tests repaired at every step.
    • A Playwright suite the team could trust, TypeScript strict mode across the frontend, and a sustained accessibility pass.
    • A next-generation client started from zero, on typed SDKs generated per service from OpenAPI.
  4. 2026

    Across the company

    The year the work widened from one surface to whatever the company needed built.

    • Removed runtime eval from widget, dashboard and template loading, the last blocker on a strict Content Security Policy, without breaking customer widgets.
    • An internal product taken end to end, from the integrations and compliance rules to the approvals and audit trail around them.
    • An AI product for contract analysis, where making the test data realistic did more for accuracy than a bigger model would have.
  5. 2026 on

    Tacit Knowledge

    Leading the team that turns what an organisation knows, but never wrote down, into memory it can use.

    • Capture what people learn while they work, so a decision made once does not have to be rediscovered by the next team.
    • Make every memory traceable: where it came from, who decided it, and whether it still holds.
    • Build it for regulated companies, where each person sees only what they are allowed to and anything remembered about a person can be corrected or erased.

What I work with

Languages
TypeScript · JavaScript · Python · SQL
Frontend
React · Next.js · shadcn/ui · MUI · Tailwind · Vite · lit-html
Testing
Playwright · Storybook · Chromatic · Vitest · pytest · coverage gates in CI
Backend
FastAPI · SQLAlchemy · Elasticsearch · OpenAPI-generated SDKs
Knowledge & graph
RDF / SPARQL · Apache Jena & Fuseki · ArcadeDB · Neo4j · PROV-O, SKOS
AI
Claude Code · MCP servers · agent tooling · semantic search and RAG · synthetic data
Infrastructure
Terraform · AWS · GitHub Actions · Ansible / AWX · Docker
Security
CSP hardening · eval elimination · CVE response · SOC 2 Type I support