open for consulting & project work

Hey, I’m

Petro.

Senior Full-Stack Engineer · ships AI products end-to-end

10+ years shipping production software at VMware, TestGorilla, and Octopus Energy. Most recently on the AI research team at CData Virtuality shipping RAG, NL→SQL, and a Cursor-style SQL copilotinto the platform. Daily Claude Code & Cursor user.

Greece/remote-first·🇺🇸 US·🇨🇦 Canada·🇮🇱 Israel·🇪🇺 EU/UK
01

Selected Work

Two products I've shipped — both live in production, both still being built on.

01Production AI SaaS for meetings

Insight Draftapp.insightdraft.comChrome Web Store

Insight Draft turns meeting recordings into searchable team knowledge — instant summaries, action items, and a Q&A assistant grounded in the transcript with verifiable citations. The Chrome extension (Manifest V3, 2 years' work, published on the Chrome Web Store) records Google Meet, Microsoft Teams, and Zoom without bots joining the call — uses tabCapture for browser-based meetings and desktopCapture for desktop clients, plus manual recording. A separate Slack Huddle bot covers the case where tab capture doesn't apply. Speaker-attributed transcription via Deepgram (Nova-3 multilingual) feeds AI summaries with topic chapters, RAG-powered Q&A, AI Quick Actions for decisions, and conversation analytics (speaking time, interruptions, turn-taking). Engineered end-to-end (engineering led solo within a two-person founding team): .NET 8 backend, dedicated Node.js LLM service orchestrating multiple OpenAI models via the Responses API with strict structured outputs, Angular 17 client. Multi-environment Jenkins CI/CD, Stripe billing, S3 storage, Playwright E2E.

Read the case study
2 yrs
on the Manifest V3 Chrome extension — bot-free Meet/Teams/Zoom recording
12+
parallel LLM calls per meeting (summary, chapters, highlights, tags, behaviour mentions, classification)
Solo eng
extension · API · LLM service · UI · CI/CD · live in production
Chrome Extension MV3tabCapturedesktopCapture.NET 8Node.jsAngular 17OpenAI Responses APIDeepgramRAGPostgreSQLStripeHangfireAWS S3JenkinsPlaywright
architectureinsight-draft
Angular 21 client
SPA · Stripe
.NET 8 API
PostgreSQL · S3
Node LLM service
GPT-5-mini · Claude 3.5
Deepgram
RAG / KB
Hangfire
02EU Digital Identity Wallet SDK · eIDAS 2

Gramotagramota.eu

A multi-package SDK and SaaS layer for the EU Digital Identity Wallet. Implements OID4VP Final 1.0, OID4VCI Draft 15, DPoP, DCQL, and X.509 per-organisation certificate management. Tested against the European Commission reference infrastructure. Includes a hosted gateway, multi-tenant SaaS, an ASP.NET Core 10 + Duende IdentityServer auth server, and a marketing site with auto-generated TypeDoc API docs.

Read the case study
12+
published npm packages w/ provenance
eIDAS 2
compliant against EU reference infra
5 repos
gateway · SaaS · identity · demo · site
TypeScriptASP.NET Core 10Duende IdentityServerAngularAnalog.jsOID4VP/VCIPostgreSQL
architecturegramota
EU Wallet
Verifier app
OID4VP
Gramota Gateway
DPoP · DCQL
Multi-tenant SaaS
X.509 per org
ASP.NET Core 10 + Duende
auth.gramota.eu
02

AI Engineering

The AI part of the stack isn't a side project — it's where I spend most of my building time.

I ship AI products end-to-end — from foundation models through fine-tuned adapters and production RAG up to the Angular UI on top. I write Anthropic and OpenAI SDK code daily and I’m a daily Claude Code + Cursor user — this very portfolio was built that way.

01Models
  • Claude 4.x
  • GPT-5 / GPT-4o
  • Deepgram (ASR)
  • Whisper
  • ElevenLabs (TTS)
  • DeepSeek
  • Qwen3 (fine-tuned)
  • Llama
  • BGE-M3 embeddings
02Patterns
  • RAG (hybrid vector + FTS)
  • LLM fine-tuning + adapters
  • Natural-language → SQL
  • Multi-agent workflows
  • Tool use & function calling
  • Prompt caching
  • Streaming responses
  • Eval-driven development
03Tools
  • Claude Code (daily)
  • Cursor
  • Anthropic SDK
  • OpenAI SDK
  • LanceDB
  • Hugging Face
  • LangChain
  • llama.cpp / MLX

AI systems shipped

Insight Draft

production

Multi-provider production AI: GPT-5-mini + Claude 3.5 + Deepgram. RAG Q&A with citations, AI summaries with topic chapters, conversation analytics, AI quick actions, and real-time speaker-attributed captions. Custom prompt framework runs background via Hangfire jobs.

DeepgramOpenAIClaudeRAGvector storesanalytics

SQL AI Copilot · Data Virtuality Platform

production

Cursor-style AI assistant built into the Data Virtuality Platform itself. Steers SQL authoring, edits, and exploration over federated data via natural language. Solo authorship inside the AI research team.

SQL copilotOpenAIdata virtualizationsolo

Talk to your Data · CData Virtuality

showcased

Natural-language → governed SQL across federated data sources. Combines an LLM, a semantic vector DB, and the platform’s Virtual SQL engine. Co-built (team of 2) inside CData’s AI research team. Demoed at Gartner D&A Summit 2025.

NL→SQLRAGsemantic layerAI researchteam of 2
03

Where I’ve Built

Selected roles, ordered by relevance — not by date.

01· role

VMware

Senior Frontend Engineer · Workspace ONE
returned as senior

Returned to VMware as senior after starting as MTS Trainee out of Telerik Academy — shipped vRealize Automation health monitoring + auto-repair, presented to leadership.

  • Built a new Workspace ONE application from scratch — planning, design, CI/CD, deployment automation
  • Introduced NGRX state-management patterns adopted across the team
  • Led the AngularJS → Angular 8 migration of legacy features
20+technical interviews conducted for mid/senior Angular
Angular 8+NGRXClarityWebComponentsNXJestCodecept
02· role

Data Virtuality · now CData

Senior Engineer · AI Research Team
AI research team

Joined Data Virtuality, an enterprise data-virtualization platform with 200+ connectors used by BSH, Crédit Agricole, and NYU. Stayed through the April 2024 acquisition by CData and the rebrand to CData Virtuality. Worked inside the AI research team on the next generation of AI features for the platform.

  • Solo-built a Cursor-style SQL AI copilot inside the Data Virtuality Platform — natural-language SQL authoring, edits, and exploration over federated data sources
  • Co-built “Talk to your Data” with one other engineer — natural-language → governed SQL combining LLM + semantic vector DB + the platform’s Virtual SQL engine
  • Both features shipped in the Q3 2025 platform release; CData demoed the platform at Gartner D&A Summit 2025
Soloauthored the SQL AI copilot; co-built Talk to your Data with 1 other engineer
OpenAIRAGSemantic LayerVirtual SQLTypeScriptJava
03· role

TestGorilla

Senior Frontend Engineer

Psychometric assessment platform helping companies hire fairly. Owned features end-to-end across the micro-frontend boundary.

  • Designed and shipped micro-frontend architecture using Module Federation
  • Established NGRX Store + Component Store patterns across the app
  • Built internal AI tooling for meeting analysis using ChatGPT and Claude APIs
0.1%critical-error rate after systematic triage
Angular 17ReactModule FederationNGRXTypeScriptSentry
04· role

Walltopia

React Native + Full-Stack · interactive climbing walls

Walltopia builds the climbing walls used at most major gyms worldwide. The e-walls system turns a static wall into an interactive surface — every hold is a smart RGB LED diode.

  • Built the React Native (Expo) mobile app — route creation, multi-board picker, offline mutation queue
  • Designed the NestJS + Socket.IO backend for real-time multiplayer route activation
  • Wired BLE communication and a MODBUS RTU protocol bridge to the wall hardware
  • Authored a .NET 8 board simulator so the team could test 15×15 boards without physical hardware
Real-timeBLE + WebSockets, offline-first sync
React NativeExpoNestJSTypeORMPostgreSQLSocket.IOBLEMODBUS.NET 8
05· role

Octopus Energy Germany

Full-Stack Engineer · joined as 4hundred, stayed through the Octopus rebrand

Munich-based green-energy retailer — joined when it was 4hundred GmbH (founded 2017), stayed through the September 2019 acquisition by Octopus Energy and rebrand to Octopus Energy Germany.

  • Built billing, invoice generation, and customer change-tracking systems
  • Optimised hot API endpoints to handle 40,000+ users with substantially better latency
  • Worked across the Angular front end and the ASP.NET / Entity Framework back end
+150%API endpoint performance gain on 40K-user systems
Angular 8+C#ASP.NETEntity FrameworkAzureDockerPostgreSQLMSSQL
04

About

I’ve been a senior engineer for 10+ years— deepest on the frontend (Angular 8–18, TypeScript, RxJS, NGRX), always paired with the backend (C#/.NET and Node.js). At VMware I built Workspace ONE features from scratch; at TestGorilla I designed the micro-frontend architecture; at Octopus Energy Germany I shipped billing systems for 40,000+ users.

For the last few years I’ve focused on shipping AI products end-to-end. I’ve fine-tuned a Qwen3-4B legal model on Apple Silicon, built hybrid RAG over 116K court cases, orchestrated multi-model OpenAI calls through a dedicated Node service, and shipped Deepgram-powered speech-to-text pipelines for Insight Draft — including the Manifest V3 Chrome extension I’ve worked on for 2 years that captures Meet, Teams, and Zoom without bots joining the call. I write a lot of code with Claude Code and Cursor, and I think about evals and prompt caching the way I used to think about test coverage and bundle size.

Outside of AI I have deep work in identity— Duende IdentityServer, OAuth/OIDC, the EU’s OID4VP/VCI standards, and X.509 PKI — Stripe billing across multiple SaaS products, and fintech / regulatory work (billing systems for Octopus Energy DE serving 40K+ users).

I’ve led teams— mentoring mid and senior engineers, owning architectural decisions, and conducting 20+ technical interviews for senior Angular roles at VMware. I lead embedded in the work: through code, reviews, and patterns the team adopts — not from above. Open to clients primarily across 🇺🇸 US (NYC · SF · Boston), 🇨🇦 Canada (Toronto · Montreal · Vancouver), and 🇮🇱 Israel (Tel Aviv), and also 🇪🇺 EU / UK clients where the project fits. Tel Aviv shares my timezone; North-American East-Coast mornings overlap with my afternoons; Vancouver and SF via late-day sync calls. Invoiced in USD, CAD, or EUR via Stripe and Wise.

What I work with

Frontend
Angular 8–18ReactNext.jsTypeScriptRxJSSignalsNGRXModule FederationTailwindGraphQL
Backend
.NET / C#ASP.NETEntity FrameworkNode.jsNestJSExpress
AI / ML
Anthropic SDKOpenAI SDKRAGFine-tuningWhisperElevenLabsNL→SQLEvals
Identity & Payments
Duende IdentityServerOAuth 2.0 / OIDCOID4VP / OID4VCIeIDAS 2StripeX.509 PKI
Cloud
AWS (S3, CloudWatch)Azure DevOpsDockerJenkinsCI/CD
Mobile
React NativeExpoBLE protocols
Browser Extensions
Manifest V3Service workersContent scripts (MAIN world)tabCapture / desktopCaptureexternally_connectableChrome Web Store
Data
PostgreSQLMSSQLRedis
Certifications
Scrum Alliance · Certified Scrum Master (Dec 2023)
Education
Technical University of Sofia · BSc Industrial EngineeringTelerik Academy · Software Engineering
05

Ask Petro

An AI assistant grounded in Petro's CV, projects, and writing. Recruiter, hiring manager, founder — ask anything.

ask-petro · v0.1grounded in CV + project docs
petro:Hi. I’m Petro’s AI assistant, grounded in his CV, project READMEs, and recent work. Ask me anything — I’ll answer with what I actually know and tell you when I don’t.

Powered by GPT-5-mini, grounded in Petro’s CV + projects. Rate-limited per IP.

06

What people say

From past managers and colleagues, in their own words.

I had the pleasure of working with Petromil for a year at TestGorilla, and I can say he is a talented and humble frontend developer. His skills in Angular and micro-frontend architecture are very good. He is a person you want on your team when you have complex projects and need someone who understands everything quickly.

But what makes Petromil special is his personality. He is not only great at writing code; he also brings humor and kindness to the team, making every day better. He is the type of person who can make a joke in a hard meeting, and suddenly everything feels less heavy, while still keeping everyone focused on the objective.

Petromil is passionate about continuously learning and evolving with agile methodologies and knows how to use them in real life. He is always looking for things that can help the team perform better — removing problems, sharing ideas, or just being there to support.

If you need someone excellent at what they do, who cares about the team, and who knows how to keep the work fun and productive, Petromil is your person. I recommend him a lot!

Facundo Calvento·Engineering and Delivery LeaderManaged Petromil directly at TestGorilla · Jan 2025

Petro is an exceptionally sharp and thoughtful professional. His ability to break down complex problems and get to the real root cause is genuinely impressive, and it proved critical at several key moments across the projects we worked on together. What really sets him apart is that he pairs this analytical strength with strong execution — he doesn’t just spot the right answer, he turns it into real progress. That combination makes him a rare, high-impact teammate, and someone I’d gladly work with again.

Francesco Lisandro·AI Founder · Software EngineerWorked with Petro on the same team · Feb 2026

Petro has been an exceptional team member and a true asset to our team. His ability to consistently deliver high-quality features, even when facing challenges, is a testament to his dedication and professionalism. Petro's resilience and determination have been key in driving project success and overcoming obstacles along the way. Working alongside him has been a privilege, and I am confident he will continue to excel in any endeavor he undertakes.

Andrés Milla·Senior Software EngineerWorked with Petromil on the same team at TestGorilla · Jan 2025
07

Get in touch

I take on consulting engagements and end-to-end project builds — most often around AI products, identity systems, and senior full-stack work.

Remote-first — primarily 🇺🇸 US (NYC · SF), 🇨🇦 Canada (Toronto · Montreal · Vancouver), and 🇮🇱 Israel (Tel Aviv), with 🇪🇺 EU / UK clients welcome where the project fits. Tel Aviv shares my timezone; East-Coast mornings overlap with my afternoons; Pacific via late-day sync. Invoiced in USD, CAD, or EUR via Stripe and Wise.

petromilpavlov@gmail.com
How I work
Embedded with your team — async-first, weekly written updates, scoped checkpoints. NDAs welcome.
Engagement length
Open-ended— single review sessions, scoped projects, multi-month builds, or long-running retainers / fractional roles. Whatever the work needs.
Time to start
Flexible— happy to find a start date that works for both of us.
github.com/Dominentbuilt with React, TypeScript & Tailwind · designed & coded by Petro

Privacy: this site uses Pulse, a self-hosted privacy-first analytics library — aggregate page views, Core Web Vitals, and a few interaction events only. No cookies. No IPs stored. No fingerprinting. Sessions are deduplicated via a server-side daily-rotating hash that becomes unlinkable after 24 hours. A non-personal random ID is stored in your browser’s localStorage to support multi-touch attribution — first-party only, never shared, easily cleared via your browser’s site-data settings. Contact-form submissions go to petromilpavlov@gmail.com via Resend and aren’t stored anywhere else. Email Petro to delete any data.