Employment record / chapter file
Veedoo
- 19,000+cases · 13 languages
- 98%speaker attribution
- 3 daysinvasion to live platform
- 3×promoted, mid to CTO
- CTOMid 2025 – Present
- Lead Full Stack Developer2022 – 2025
- Mid Full Stack Developer2019 – 2022
Veedoo is a European digital consultancy building multilingual platforms for the public sector, nonprofits, and EU-funded projects. I never applied — they found me through five years of freelance reputation and reached out in 2019. I joined as a mid-level developer and was promoted three times in six years: mid to lead in 2022, on the strength of the EUvsDisinfo work, and to CTO in 2025.
As CTO I own technical strategy across the whole portfolio: I made Coolify on Hetzner the default deployment platform for every Veedoo project, wrote the company's AI usage guide, put Claude Code and a CLAUDE.md in every repository, set up MCP servers per project, trained every developer on Cursor, and turned invoices and reporting over to n8n automations.
EUvsDisinfo
Veedoo's flagship project for the European External Action Service — a nine-year platform documenting Russian disinformation for millions of annual readers, with 19,000+ cases published in 13 languages. I owned the backend and CMS architecture of the Disinformation Management System, the secure editorial platform behind it.
The part I'm proudest of is the evidence pipeline. When an analyst flags a page, a Sanity webhook fires and the system does the rest with zero human intervention: Puppeteer captures full-page screenshots at multiple viewport sizes, archives the complete HTML with inline assets, and anchors an OpenTimestamps proof to the Bitcoin blockchain. Disinformation gets deleted; the evidence doesn't.
I also carried the platform through two major Sanity migrations — v1 to v2 in 2022, v2 to v3 in 2024 — rewriting every custom Studio plugin and GROQ query with zero content loss across all 19,000+ documents, and built the cross-language validation that keeps 13 language versions of every case in sync.
Because the project is EU-funded, every byte had to live on EU servers. That data-residency rule is where my whole self-hosting philosophy started.
- Node.js
- Sanity CMS
- OpenTimestamps
- Bitcoin anchoring
- Postgres
- Puppeteer
Evidence chain — archive, hash, anchor
× 13 languages — automatic on every one of 19,000+ cases
Lifeline Ukraine
Ukraine's national suicide-prevention hotline platform, at lifelineukraine.com — over 100,000 consultations since the service began. I built and maintained the platform from 2021: anonymous GDPR-compliant chat that stores no PII, a quick-exit button for people browsing in unsafe environments, WCAG 2.1 AA accessibility, and a free online suicide-awareness training course with progress tracking and completion certificates.
After the 2022 invasion, demand grew by orders of magnitude — including refugees abroad who could no longer dial the national number. Caching layers, query optimization, and monitoring kept a life-critical service at zero downtime, tested down to low-bandwidth rural connections.
- Next.js
- Node.js
- Postgres
- GDPR by design
Ukraine Shelter
Russia invaded on February 24, 2022. We registered ukraineshelter.com on the 25th and the platform was live on the 27th — built in three days, while I was relocating out of Kharkiv myself. It matched displaced Ukrainians with people offering rooms in their homes: structured host and guest flows, a matching algorithm, and map-based geographic search, engineered for high availability because downtime meant someone didn't find shelter. Volunteer-run for as long as the need lasted; its mission is now served.
- React
- Node.js
- Rapid deploy
ParliamentConnect
A platform that automatically discovers, transcribes, attributes, and publishes parliamentary speeches — live at parliamentconnect.com. I built the entire thing solo, starting with zero Python, ML, or CUDA experience.
The pipeline runs on RunPod serverless GPUs (NVIDIA RTX PRO 6000, 96GB VRAM) and turns a 2–8 hour parliamentary session into attributed clips in 30–45 minutes — work that takes human teams days. Six stages: pyannote.audio diarization (a 4-hour session segmented in 10–15 minutes), faster-whisper large-v3 multilingual transcription running 4× faster on CTranslate2, active-speaker detection with a custom lip-sync temporal model, RetinaFace face detection, and recognition against 128-dimension embeddings in pgvector — cosine similarity with three-tier thresholds: above 0.85 auto-attributes, 0.70–0.85 queues for review, below 0.70 skips. The result is 98% speaker-attribution accuracy.
Everything is event-driven — a Postgres trigger calls RunPod over pg_net, no polling anywhere — and clips land in the UI live over Supabase Realtime. Publishing goes through self-hosted Postiz: users connect X, Facebook, LinkedIn, and Instagram once and publish everywhere without ever seeing another tool.
- Python
- CUDA
- RunPod GPUs
- pgvector
- Face recognition
- Next.js
- MCP server
- Supabase
System schematic — six-stage GPU pipeline
The Next.js rescue
In 2020 a client's content site — 500+ blog posts on a client-rendered React SPA — was invisible to search engines and slow for readers. I migrated it to Next.js static generation with incremental regeneration: time-to-first-byte went from 2–3 seconds to under 100 milliseconds, and rankings recovered almost overnight. It became the template for how Veedoo ships content platforms.
OptiGen
An AI lead-generation system for a pharmaceutical client: it monitors FDA, EMA, and PMDA regulatory databases for new drug approvals, then builds decision-maker dossiers from public sources with GPT-4 and scores their relevance. Node.js, Puppeteer, and Cheerio do the gathering; PostgreSQL and a React dashboard hold the results; a human feedback loop tunes the scoring. The AI researches, the human writes the outreach — human-in-the-loop by design, not as a fallback.
Veedoo Community Platform
A full community and learning platform in the Skool mold: Next.js server components on self-hosted Supabase, multi-tenant isolation enforced with Postgres RLS, AI thread summarization and course-content generation gated by the OpenAI Moderation API, and creator payouts on Stripe Connect Standard — with an idempotent webhook lifecycle handling checkout, failed payments, and cancellations without double-provisioning anything.
Runday
A nine-year Veedoo platform powering free community 5K events — 18,000+ runners across 5,000+ events in multiple countries, with race timing and a mobile app. My 2024 contribution: a "chat with our DB" feature that lets non-technical organizers ask questions in plain language. GPT-4 writes the SQL, but inside a cage — SELECT-only whitelist, read-only replica, query timeouts, result-size limits, and PII redaction.
- Next.js 16
- Self-hosted Supabase
- Trigger.dev
- Text-to-SQL
Icons of Ukraine
A 2021 cultural project — PHP MVC backend with MySQL behind a React front end. It broadened my backend range beyond the Node.js ecosystem at exactly the moment the harder platform work needed it.
Go Help Now
A two-year humanitarian engagement serving thousands of users: volunteer matching, donation processing, and housing coordination, plus the branding, visual identity, and modular design system it shipped with.
Who was there.
Ian Bearder Owner, Veedoo Taoufiq had helped Veedoo deliver world-class software solutions for almost a decade.
Roman Antonenko Director, Veedoo Taoufiq is a talented developer who is passionate about programming.- Paul Nailand Lifeline Ukraine I've been impressed with the level of professionalism of the Veedoo team and management since we began working together almost 5 years ago.
- Alona Lashchenko Runday The company's dedication to excellence is reflected in every aspect of their work.
Chaimae Michich Colleague, Veedoo I've had the chance to see Taoufiq's work up close, and what stands out immediately is his rare combination of deep technical expertise and true ownership.
Adriana Mytsyk Designer, Veedoo I worked with Taoufiq in the same team, and it was a great experience.
Andrii Mazurenko Developer, reported to me I had the pleasure of working with Taoufiq — a skilled developer and excellent mentor.
Victoria Monastyrska Colleague, Veedoo It has been a pleasure working with Taoufiq.