Peter Angeli

Senior full-stack engineer · React, TypeScript, Node.js

Budapest, Hungary · Remote, CET · EU citizen


I’ve spent six years building the learning platform of one of Europe’s largest educational publishers, which around 60,000 teachers use every month. I work across the stack, with Next.js on the front end and Node.js and ts-rest on the back end. I also build LLM agents in production: I built the agents behind a pipeline that has turned 80+ print textbooks into interactive exercises. Outside work I build and run my own products end to end, from a Google Play app on my own Kubernetes cluster to MCP tooling for coding agents.

work@angeli.appGitHub (opens in a new tab)LinkedIn (opens in a new tab)Resume (PDF, opens in a new tab)

Experience

Senior Software Engineer · Through Danubius IT Solutions

Product team building the digital learning platform for primary schools in three European markets, used by around 60,000 teachers a month.

  • Full-stack platform: Work on both sides of the primary-education teacher and pupil platform, the Next.js front end and the Node.js and ts-rest back end with typed SQL on PostgreSQL. Led its ClickHouse integration, from technical discovery to the views behind a fast class overview dashboard.
  • Exercise engine: Built the second generation of the exercise engine from scratch, UX included, then rebuilt its exercise flow for the third generation.
  • AI pipeline: Built the agents at the core of an LLM pipeline that turns print textbooks into exercises: generation from page images, reviewer agents and answer keys. It has been used for 80+ books.
  • Evals: Checked agent output with reviewer passes, visual diffs against the source pages and before/after runs on content subsets. Used them to pick Sonnet after Opus invented new types and Haiku lost context.
  • Monitoring: Built the shared frontend monitoring module (Elastic RUM) that 20+ internal apps use, and wrote its guide. Added guards so the apps stopped reporting expected API responses as errors.
  • Product call: Usage data showed an exercise component planned for a rebuild was barely used. Migrated its content into a widely used component and dropped the rebuild.
  • Team: Started and lead our knowledge sharing on AI coding agents. Mentor a junior engineer. Take a weekly first-line support shift. Wrote the content schema docs other teams build against.
  • React
  • TypeScript
  • Next.js
  • Node.js
  • ts-rest/Zod
  • PostgreSQL
  • ClickHouse
  • LLM agents
  • Elastic RUM

Senior Software Engineer

Budapest software consultancy. Most of my time goes to Infinitas Learning. Besides that, I deliver client projects end to end.

  • Language-school LMS: Designed and built an LMS for a Swiss language school as the only engineer, from the UI design to the backend: courses, interactive exercises, tests with teacher review and a live shared whiteboard. Its AI assistant edits lesson content through schema-validated tool calls.
  • Requirements and demos: Sat in every client interview, worked out the requirements with their mostly non-technical team and demoed each version. Also ran pre-sales demos for a UK prospect.
  • TypeScript
  • Next.js
  • React
  • LLM tool calling
  • Real-time
  • UI design

Projects

AI PDF-to-courseware pipeline

LLM agents that turn print textbooks into interactive exercises

Co-built for a European EdTech publisher. My part is the agents. They generate schema-validated exercises from page images, then reviewer agents check them over several passes against the source page. The pipeline also writes the answer keys. I compared models per step and picked Sonnet, after Opus invented new content types and Haiku lost context. It has been used for 80+ books.

  • TypeScript
  • Fastify
  • PostgreSQL
  • pgvector
  • LLM agents
  • Zod

Exercise rendering engine

Interactive exercise engine for digital textbooks

The npm library that renders a European EdTech publisher’s digital textbooks and drives the exercise flow pupils work through. I built its second generation from scratch, UX included, then rebuilt its exercise flow for the third. Accessibility and visual-regression checks run before every release.

  • React
  • TypeScript
  • Zustand
  • Storybook

enbrain

Local-first search for AI coding agents

An MCP server I built alone. It started as local code search over a repository: ONNX embeddings, tree-sitter chunking and sqlite-vec. Version 0.5 moved to the GitHub history around a codebase, meaning issues, pull requests, review comments and commits, embedded locally through Ollama.

  • MCP
  • TypeScript
  • sqlite-vec
  • ONNX
  • Ollama

BAC Battle (opens in a new tab)

Consumer mobile app on Google Play, built and shipped solo

Social mobile app with maps and a home-screen widget, on Google Play. React Native client on my own Node.js and MongoDB API, on a Kubernetes cluster I run myself: deployments, pods, rollouts and debugging.

  • React Native
  • Node.js
  • MongoDB
  • Kubernetes

gyoztes.com (opens in a new tab)

Sports prediction dashboard

Driven by Polymarket odds. Bilingual, with an SEO page per match and generated OG images, server-rendered on Cloudflare Workers. I built and ran it alone, and wrote its FAQ pages from Search Console and PostHog data.

  • React
  • TypeScript
  • Cloudflare Workers
  • PostHog

devtake.dev (opens in a new tab)

Tech-news site with a popularity-ranked feed

A time-decayed popularity ranking over prerendered articles, with edge view-counting on Cloudflare D1, engineered to run entirely on the free tier.

  • Astro
  • Cloudflare D1
  • TypeScript

Education

Contact

Say hi, pitch a project, or talk shop. Email is the fastest way to reach me:

I'm also open to select freelance work.

LinkedIn (opens in a new tab)GitHub (opens in a new tab)Resume (PDF, opens in a new tab)