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 copilot into the platform. Daily Claude Code & Cursor user.

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

Selected Work

A production AI SaaS and an open-source desktop tool — both shipped, 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 — summaries, action items, and a Q&A assistant grounded in the transcript with verifiable citations. Its Manifest V3 Chrome extension records Google Meet, Microsoft Teams, and Zoom without a bot joining the call. Engineering led solo within a two-person founding team.

  • Bot-free capture — tabCapture for browser meetings, desktopCapture for desktop clients, and a separate Slack Huddle bot where tab capture doesn't apply
  • Speaker-attributed transcription (Deepgram Nova-3) feeding summaries with topic chapters, RAG Q&A, AI Quick Actions, and conversation analytics
  • Dedicated Node.js LLM service orchestrating OpenAI models through the Responses API with strict structured outputs
  • .NET 8 API, Angular 17 client, Stripe billing, S3 storage, multi-environment Jenkins CI/CD, Playwright E2E
Read the case study
2 yrs
on the Manifest V3 Chrome extension — bot-free Meet/Teams/Zoom recording
6+
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 17 client
SPA · Stripe
.NET 8 API
PostgreSQL · S3
Node LLM service
OpenAI · structured outputs
Deepgram
RAG / KB
Hangfire
02Open-source desktop tool · multi-account Claude

SwitchboardGitHubDownload for Windows

Switchboard puts several Claude accounts in one window. It runs the real Claude desktop app once per profile — each with its own data directory and sign-in — and hosts every instance as a tab, or two side by side. Independent open-source project, not affiliated with Anthropic.

  • Windows: the guest becomes a frameless owned window kept over the shell's content area — reparenting it as a child looked tidier and silently ate every key press
  • macOS: there is no supported way to embed another process's window, so the active guest is pinned in place through the Accessibility API and re-pinned on every move and resize
  • Per-tab sign-in: owns the claude:// scheme on macOS; on Windows, where the MSIX package claims it, a WMI process-creation watch hands the link to the focused tab
Read the write-up
2 OSes
one TypeScript codebase — owned Win32 windows on Windows, Accessibility-API pinning on macOS
No C++
every native Win32 / macOS call goes through koffi FFI — nothing to compile
MIT
open source · v0.1.0 Windows installer on GitHub Releases
ElectronTypeScriptkoffi FFIWin32 APImacOS Accessibility APIclaude:// deep linksWMIelectron-buildernode:test
architectureswitchboard
Switchboard shell
Electron · tabs · split view
koffi FFI
Windows
owned window
macOS
Accessibility API
Claude desktop × N
--user-data-dir per profile
claude://
WMI watch
Hotkeys
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

Production AI on OpenAI models + Deepgram, behind a provider-agnostic LLM service. 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.

DeepgramOpenAIRAGvector storesstructured outputsanalytics

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–21, 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–21ReactNext.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 + projects
petro: Hi. I’m Petro’s AI assistant, grounded in his CV, projects, 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
Right away or within a few days — drop a line and we’ll sync this week.
github.com/Dominentlinkedin.com/in/petro-p-insight-draftbuilt 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.