Mikhail Karan
Co-host of HTML All The Things · weekly since 2018, ~500 episodes
Head of Engineering & Lead Developer at Cyfrin · Milton, Ontario
Cyfrin's first engineering hire. I built the team, the platform, and most of the products on it.
Six products, one monorepo, a small remote team, and a lot of Svelte.
HTML All The Things
A podcast for developers navigating the modern web industry, with my co-host Matt Lawrence. Started in 2018 to find community and never stopped — web development, the AI-driven shifts, freelancing, and what building a career in this field actually takes.
- ~500 episodes
- 1M+ downloads
- weekly since 2018
- 117 articles on DEV
The short version
-
First engineer → Head of Engineering
Hire #1, no engineering org to inherit. Grew and led a remote, async-first team of nine across six concurrent products — hiring, on-call, delivery, and the hard conversations.
-
Six products, built or led every one
Competitive audits, education, unified SSO, an acquired vulnerability database, a jobs board, and an AI security agent — one Turborepo monorepo.
-
Designed to run itself
Tens of thousands of active users, roughly one bug fix a quarter. Non-engineers ship through self-serve pipelines instead of tickets.
-
AI in production, not in a deck
Cygent, first commit to paying customers in seven months: per-tenant sandboxed agents, blue-green orchestration, self-serve provisioning, and the evals to know it got better.
-
Security is the job, not a checklist
SOC 2 Type II owned solo. Ad-hoc white-hat reports turned into a standing pen-test program. Incident commander on every severe incident, retro every time.
-
~500 episodes and counting
Co-host of HTML All The Things since 2018 — weekly, on web development, AI, and building a career in this industry.
What I've built
Cygent
2025 → nowEngineering lead
An AI security engineer you hire like a team member. It joins Slack, Discord, Telegram, GitHub and Linear, builds context on your codebase, flags smart-contract foot-guns during development, and runs full audits.
- One isolated, sandboxed Docker environment per agent — own compute, own privileges, running 24/7
- Orchestrator for per-tenant lifecycle: provisioning, health checks, blue-green deploys, webhook routing
- Self-serve portal — Stripe checkout to a provisioned agent in seconds
- Agentic tool loop with engagement scoring, conversation state, and per-user memory
- Custom Postgres primitives — job queue, KV with TTL, vector search — instead of three more vendors
- Auto pen-test "battle system": red/blue team exploit testing in ephemeral sandboxes
- First commit to paying customers in ~7 months
Cyfrin Updraft
2023 → nowLed development
The leading web3 education platform — fully custom, not an off-the-shelf LMS. Tens of thousands of active users on essentially no marketing spend.
- Video player built bottom-to-top, delivery and analytics through Mux
- Course progression engine for mixed video and written lessons, plus a custom quiz system
- Proctored certification flow with payments — industry certs that generate direct revenue
- Video-level and platform-level sponsorships with their own analytics pipelines
- Self-serve course launching, so the education team ships without engineering
CodeHawks
2023 → nowBuilt from zero as first engineering hire
Cyfrin's first product bet and the reason I was hired: companies post codebases as contests, independent security researchers compete to find vulnerabilities for rewards.
- Contest dashboard from codebase analysis through findings submission
- From-scratch judging system for every finding — validity, severity, duplicates
- Rewards calculator computing payout splits across finding counts, severity, and duplicates
- Hired the first additional engineer within months, then moved into tech lead on the product
Solodit
2024Solo migration
An acquired React app — a searchable database of smart contract vulnerabilities pulled from audit reports across the industry. I rebuilt and migrated it single-handedly.
- Backend and frontend rebuilt from the ground up, React → SvelteKit
- Wired into the shared profiles/SSO system
- Per-firm scrapers ingesting vulnerability reports, plus a GitHub submission pipeline for firms
- Done pre-agentic-AI — hand-written, ChatGPT-era at best
Unified identity
2024Architected, managed the owning engineer
Four separate apps became one platform. A standalone profiles app as the SSO hub for the whole ecosystem — log in once, logged in everywhere.
- One account across education, competitive audits, vulnerability research, and jobs
- Dedicated profiles service and schema behind it
- Hired and managed the engineer who owned it
Jobs board
2025Led development
A hiring platform tied to Cyfrin profiles: companies buy and post jobs, candidates apply, an LLM pre-screens before handoff to the company ATS.
- Full purchasing workflow for companies posting jobs
- Integrations syncing companies’ own listings into the board
Nights and weekends
Elevator Operator
[playable]A browser game where you are the elevator. Passengers spawn with a destination and a patience meter — batch the pickups well or eat a strike when someone gives up waiting.
The simulation is a pure, deterministic, tick-based module with no DOM imports: tick(state, commands, dt) returns the next state and the events. Game logic stays unit-tested, the renderer stays swappable. Canvas 2D, seeded RNG, zero runtime dependencies.
Language Learner
[invite-only, in use]A voice tutor built for one person — a Russian speaker learning elementary English talks to an AI tutor out loud, and gets a written review afterwards.
OpenAI Realtime over WebRTC: audio goes browser to OpenAI, the server only signals. Sessions persist transcripts, a learner profile, and corrections that feed the next warm-up. Tests apply the real migrations to an in-process PGlite database, so they cannot drift from what deploys to Neon.
Drain
[prototype]A macOS menu bar app that tells you why the battery is draining. I lost 20% in an hour to a runaway node process and two editor extension hosts, and nothing surfaced it.
Samples power draw through IOPowerSources, per-process CPU and memory through proc_pidinfo, compressor pressure through host_statistics64. When the thresholds hold for a minute it fires one notification with Kill, Snooze and Ignore on it. The rest of the time it says nothing, which is the actual feature.
Leading, and the unglamorous parts
SOC 2 Type II, owned solo
Nobody hands a bot their repos and Slack without it, and Cyfrin had no compliance function, no HR, no IT. Stood the program up, drove the company to audit-ready in two months, then through the observation window and the audit. Certified with zero findings, alongside leading engineering.
Incident command
Led every severe-issue war room over three years: called it, coordinated the response, handled messaging, ran the retro. Hot-fixes inside the hour — a self-inflicted API stampede patched 33 minutes after the first user report. No root cause ever repeated.
A continuous pen-test program
Turned organic white-hat reports into a standing group attacking our platforms, paid per bug. Every new app got the same treatment. A grey-box assessment of the agent container isolation surfaced critical escape vectors — in dev, before any customer exposure.
DDoS mitigation that held
A high-traffic public platform in an adversarial space gets attacked. Mitigated with Vercel, then designed our own protection on top. The attacks kept coming and stopped landing.
Culture that shipped features
Internal hackathons as both morale reset and product pipeline — projects graduated into production platform features. Weekly show-and-tell to keep a distributed team connected.
Sales engineering
Cygent is a technical product sold to technical buyers, with no sales-engineering function to lean on. Ran demos and technical Q&A on ~30 calls — sandboxing, permissions, integrations, the questions that decide whether a security company gives you repo access — converting half to trials. Then built the demo flow so sales could run those calls without an engineer.
Engineering the go-to-market motion
The other half of that job is building the machine instead of sitting in every call. Shipped the self-serve funnel — Stripe checkout to a live, provisioned agent, no human in the loop — plus LLM pre-screening into customer ATSs, sponsorship pipelines, and course-launch tooling. Same pattern every time: find the manual step, automate it, instrument it.
What I work with
- core/
- TypeScriptJavaScriptNodeBunPython
- frontend/
- Svelte 5SvelteKitVueReactStorybookCSS
- backend/
- tRPCPrismaDrizzlePostgrespgvectorRESTwebhooks
- infra/
- VercelDockerTurborepopnpmCloudflareDatadogVitest
- ai/
- LLM orchestrationagent evalsMCPE2B sandboxesRAG
- leading/
- hiringremote/async teamson-call designincident commandSOC 2
Where I've been
- 2023 → now
Cyfrin — Head of Engineering & Lead Developer
First engineering hire → tech lead → Head of Engineering. Architecture and delivery across the whole product platform, still hands-on as lead developer.
- 2018 → now
HTML All The Things — Co-host
Weekly web development podcast with Matt Lawrence. Nearly 500 episodes on web dev, AI, freelancing, and careers in tech.
- 2022 – 2023
Molekule — Senior Frontend Developer
Contract, remote. Brought in to fix the e-commerce frontend and led the team doing it — less UI friction, more sales. The bottleneck then moved to the backend, so I moved with it. Nuxt and Vue on the front, Magento behind it.
- 2021 – 2022
Solarians — Project Lead Developer
Remote, on-call. Solana NFT project: designed the on-chain interaction systems, built the TypeScript endpoints for wallet connection, and shipped an app for customizing animated on-chain NFTs. Ran a team of developers and designers, and fronted dev updates to the community.
- 2018 – 2021
Contentlinq — Technical Lead
Contract, full-time. Designed the frontend systems and led four developers and a designer, building VueJS, Cordova, Flutter and PHP applications for corporations deploying into secure environments.
- before Cyfrin
Digital Dynasty Design — Co-founder
Started a web development agency out of college and ran it for the better part of a decade — client work, small business realities, the responsive-web era end to end.
- 2014 – 2017
McMaster University — B.Tech, Software Engineering Technology
Where the agency idea started.
Get in touch
- email mikhail.karan@gmail.com
- github mikhail-karan
- linkedin mikhail-karan-hatt
- podcast htmlallthethings.com
- dev.to mikehtmlallthethings
- x @htmleverything