# Tony Tang

> Head of Engineering · Paris, France. I lead teams that build and scale web products, and I'm taking my team AI-first.

Open to freelance (evenings & weekends).

- Email: tony@tonytang.dev
- tonytang.dev: https://tonytang.dev/
- LinkedIn: https://www.linkedin.com/in/tony-tang-671248b1/
- GitHub: https://github.com/tonytangdev
- YouTube: https://www.youtube.com/channel/UCaJEuCzLyx6nEDOg0_kvldw
- Learn Effect (course): https://learn-effect-ts.tonytang.dev
- CV: https://cv.tonytang.dev/ (PDF: https://cv.tonytang.dev/tony-tang-cv-en.pdf)

## Highlights

- Lead a team of 5 developers as Head of Engineering at Fonts Ninja.
- 5 years at Planity, France's leading beauty booking platform (40,000+ salons, around 10M appointments a month), the last 3 leading a team of 4 to 6 developers.
- Hired 2 senior developers, and mentored around 20 developers. Most of the developers I led at Planity were promoted.
- Led a zero-downtime migration that made Planity's salon dashboard much faster and fixed long-standing wrong totals.
- Taking my team AI-first: production errors are now triaged by AI, and developers and our Product Owner use AI to explore the codebase.

## About

I'm Tony, Head of Engineering at Fonts Ninja in Paris, with around 10 years of experience building web products. I lead a team of 5 developers: I choose our technologies, set our standards and make the final technical calls, and I have a direct say in the product direction. Before that, I spent 5 years at Planity, France's leading beauty booking platform, first as a developer and then leading a team of 4 to 6 developers. Today I focus on systems that handle large volumes of data, and on using AI to change how my team works. I have also mentored around 20 developers on Codementor.

## What I can help with

- **Build or rescue a web product:** Web apps, APIs and back-office tools, from the first version to production, built so your team can maintain them.
- **Backend and data pipelines:** Systems that collect and process large volumes of data reliably: web scrapers, queues and background jobs.
- **Make your team AI-first:** Set up AI tools and workflows so your developers ship faster without lowering quality.
- **Part-time tech leadership:** Technical decisions, code review, hiring and mentoring for teams without a senior lead.

## Experience

### Head of Engineering, Fonts Ninja

Feb 2026 – Present

Makes a browser extension that identifies the fonts on any website (900k users on Chrome), and Font Radar, a service that finds websites using fonts without a license so that type foundries get paid.

- Lead a team of 5 developers: I choose the technologies, set the standards and make the final call when the team disagrees on a solution.
- Have a direct say in the product direction, in a smaller company with broader responsibilities than my previous role.
- Hired 2 senior developers, one of whom now works with us remotely from Korea.
- Taking the team AI-first: AI now triages our production errors, and both the developers and our Product Owner use AI to explore the codebase.
- Leading the step-by-step modernisation of how we process data, planned to keep downtime to a minimum.

How it was done:

- Set the team's coding standards and enforce hexagonal architecture through code review; I step into every project to validate solutions when developers have doubts.
- Leading the migration from legacy database queues to BullMQ and Redpanda: easiest or most valuable parts first, every data flow mapped and each step planned.
- Automated AWS and Sentry error triage with AI, and set up AI codebase analysis.

Tech: NestJS, TypeScript, Next.js, MySQL, BullMQ, Redpanda, AWS SQS, AWS ECS, AWS S3, AWS Lambda, Cloudflare, Claude Code

### Backend Developer, Fonts Ninja

Apr 2025 – Feb 2026

- Joined as a backend developer on the systems behind both products.
- Worked on the Font Radar robots, which scan 30M new websites a day to find those most likely to be using fonts without a license.
- Built and maintained many automations and data-collection tools.

How it was done:

- Started migrating legacy database queues to BullMQ and Redpanda, so that many workers can run in parallel on an ever-growing database and their progress is easy to track.
- Built and maintained web scrapers.

Tech: NestJS, TypeScript, MySQL, BullMQ, Redpanda, AWS SQS, AWS ECS, AWS S3, AWS Lambda, Web Scraping

### Lead Developer, Planity

Feb 2022 – Feb 2025

France's leading beauty booking platform: 40,000+ salons and around 10M appointments a month, also in Belgium and Germany.

- Led a team that grew from 4 to 6 developers over 3 years, one of the teams created as Planity scaled its engineering.
- Mentored the developers I worked with: most of them were promoted, and some became Lead Developers themselves.
- Estimated project timelines, planned delivery and reviewed the team's work for readability, correctness and security.
- Led the zero-downtime move of the salon statistics dashboard to a new system: it became much faster, cheaper to run, and long-standing wrong totals were fixed.

How it was done:

- Migrated the dashboard from Firebase to Elasticsearch, replacing precomputed caches with query-time aggregations.
- Validated the approach with a proof of concept, then designed the migration: dual-writes, an idempotent and resumable backfill of millions of records with AWS Step Functions and Lambda, per-salon validation of every total, and a feature-flag cutover rehearsed in preprod.
- Spent most of my time reviewing pull requests rather than writing code.

Tech: Elasticsearch, Firebase, AWS Step Functions, AWS Lambda

### Fullstack Web Developer, Planity

Feb 2020 – Feb 2022

- Built features for the public booking app, on web and mobile, and for Planity Pro, the software salons use to run their business.
- Built a point-of-sale system for salons in Germany, and integrated online payments and Shopify.
- Designed large features, and planned releases so that customers still on older versions of the app kept working.

How it was done:

- Worked on the AWS backend (Lambda, S3, API Gateway, OpenSearch) and on real-time updates with Firebase and Firestore.
- Integrated Stripe and Shopify, and worked on database sharding.

Tech: React, React Native, Redux, XState, Firebase, Firestore, AWS Lambda, AWS S3, AWS API Gateway, AWS OpenSearch, Algolia, Stripe, Shopify

### Software Engineer, LCL (work-study)

Nov 2017 – Oct 2019

French retail bank.

- Added features to an internal banking application that many employees depended on every day.
- Worked with other teams to integrate new features into the existing system.
- Wrote automated tests to keep this business-critical application reliable.

How it was done:

- The application was built on an older version of Java.

Tech: Java

### Web Developer, FWA (work-study)

Aug 2016 – Oct 2017

- Maintained a complex business web application.
- Made database queries faster and took part in database migrations.

How it was done:

- The application was built with C# and ASP.NET on the company's in-house template system.

Tech: C#, ASP.NET, SQL, MySQL

## Education

- Expert in Computer Science and Information Systems (Master's level), Supinfo (2014 – 2019)
- AWS Certified Solutions Architect – Associate (SAA-C01, expired), Amazon Web Services (Oct 2018 – Nov 2020)

## Leadership skills

Engineering Management, Team Leadership, Hiring, Mentoring, Code Review, Delivery Planning, Technical Decision-Making, AI Adoption

## Technical details

### Technical skills

- Languages & frameworks: TypeScript, Node.js, NestJS, Next.js, React, React Native, Redux, XState
- Architecture: System Design, Hexagonal Architecture, Web Scraping
- Data & messaging: SQL, MySQL, NoSQL, Elasticsearch, BullMQ, Redpanda (Kafka), Firebase, Firestore, Algolia
- Cloud: AWS ECS, AWS SQS, AWS Lambda, AWS S3, AWS Step Functions, AWS DynamoDB, AWS API Gateway, AWS OpenSearch, Cloudflare
- AI: Claude Code, AI automation (LLMs)
- Payments & commerce: Stripe, Shopify

### Projects

#### Fonts Ninja Extension

Identifies any font on any website in one click, using Font DNA, an in-house algorithm that analyses the actual font file rather than the CSS. 900k users on Chrome (rated 4.4/5), also available on Firefox and Safari.

Tech: TypeScript, Browser extension
Link: https://chromewebstore.google.com/detail/fonts-ninja/eljapbgkmlngdpckoiiibecpemleclhh

#### Font Radar

License enforcement for type foundries. A set of robots and jobs scans over 30M new websites a day (from CTDomains), builds a database of 1B+ websites and 10M+ apps, and finds those using fonts without the appropriate license, so that foundries get paid for their work.

Tech: NestJS, TypeScript, MySQL, BullMQ, Redpanda, AWS SQS, AWS ECS, AWS Lambda, Web Scraping
Link: https://www.fontradar.com

#### Planity

France's leading beauty booking platform, with 15M users a month, also available in Belgium and Germany. I worked on both the web and mobile apps.

Tech: React, React Native, XState, Firebase, Firestore, AWS Lambda, AWS API Gateway, AWS DynamoDB, AWS S3, Algolia, Stripe
Link: https://planity.com

#### Planity Pro

Management software for salon professionals on web, tablet and phone: real-time calendar and appointment management, plus a point-of-sale system used in France, Belgium and Germany.

Tech: React, Redux, Redux Saga, Firebase, Firestore, AWS Lambda, AWS Step Functions, AWS DynamoDB, AWS OpenSearch, Algolia, Stripe
Link: https://pro.planity.com

#### Mentoring on Codementor

Mentored around 20 developers on Codementor, helping them with their React, Next.js, Node.js, TypeScript and MongoDB projects.

Tech: React, Next.js, Node.js, TypeScript, JavaScript, MongoDB, HTML, CSS
Link: https://www.codementor.io/@tonytangdev

Updated 2026-11-01.
