online~/portfolio/teepan
☾ dark
teepan@dev:~/about$ whoami

Teepan.

> Senior Software Engineer · Backend · 8+ years · Node.js · TypeScript · PostgreSQL

Senior Software Engineer, backend-focused, with 8+ years of experience. I started on the front-end, moved to full-stack, and now spend most of my time on backend architecture.

Over 6 years at Radio France, I went from shipping full-stack features to designing and building the backend APIs and services (Node.js, TypeScript, PostgreSQL) behind products used by several million people. My focus: API design (REST and GraphQL), query optimization, caching, and production reliability.

Open to remote opportunities. French and English.

languages→ french · englishcurrently→ Radio France · 2020 - present
##

./by-the-numbers

metrics.md
8+
years of production code
20s → 200ms
PostgreSQL query after targeted indexes
~100 → batched
upstream calls per request, batched with Dataloader
15-30
students per class
##

./featured

case-study.md
FEATUREDRadio France · Senior Software Engineer
Sept 2020 - Present · 6 years
role senior software engineerscope backend APIs + servicesscale several million usersstack Node.js · TypeScript · PostgreSQL · GraphQL

Went from shipping full-stack features to designing and building the backend APIs and services (Node.js, TypeScript, PostgreSQL) behind products used by several million people. Focus: API design (REST and GraphQL), query optimization, caching, and production reliability.

  • Co-designed and built the BFF/app redesign: business logic moved out of the mobile app into the BFF (Node.js, Fastify, Apollo Server), which returns design-system-ready components. The app became a pure rendering layer.
  • Optimized the GraphQL API aggregating dozens of internal services: replaced ~100 individual calls per request with batched Dataloader queries, cutting request volume and cache footprint.
  • Replaced a Vary-header image caching strategy with a dedicated image service serving on-demand presets, eliminating per-device cache duplication.
  • Diagnosed a PostgreSQL query pattern causing full table scans (up to 20s); added targeted indexes, cutting response time to 200-500ms.
  • Led the root-cause analysis of a 7-hour production outage traced to unvalidated contributor input; introduced data validation safeguards.
  • Built full-stack features on radiofrance.fr (Svelte/SvelteKit) and internal back-office tools (React/Symfony); deployed services on Kubernetes end-to-end (ingress, workloads, Nginx, GitLab CI/CD, Grafana).
Node.jsTypeScriptFastifyApollo ServerGraphQLDataloaderRESTPostgreSQLSvelte/SvelteKitReactSymfonyKubernetesNginxGitLab CI/CDGrafana
##

./experience

01 entry
history.log
prior roles
GroupamaFront-End Developer
Sept 2018 - Aug 2020
Nanterre, France
  • Built and maintained insurance sales funnels (home, life/accident, auto) in Nuxt.js/Vue 3, serving several million visits/month.
  • Drove front-end performance improvements on groupama.fr: eliminated unnecessary re-renders, optimized CSS/JS footprint, wrote A/B testing scripts.
Nuxt.jsVue 3CSSJavaScript
##

./skills

filter →
TypeScript · languagesdaily
JavaScript · languagesdaily
Go · languagesfamiliar
SQL · languagesstrong
Node.js · backenddaily
Fastify · backenddaily
Express · backendstrong
Apollo Server · backenddaily
GraphQL · backenddaily
REST · backenddaily
Redis · backendstrong
RabbitMQ · backendstrong
React · frontenddaily
Next.js · frontendstrong
Svelte / SvelteKit · frontendstrong
Vue.js / Nuxt.js · frontendstrong
Tailwind · frontendstrong
PostgreSQL · databasesdaily
Drizzle ORM · databasesstrong
Query optimization · databasesdaily
Data modeling · databasesstrong
Docker · infrastructuredaily
Kubernetes · infrastructuredaily
GitLab CI/CD · infrastructurestrong
AWS · infrastructurefamiliar
Terraform · infrastructurefamiliar
Ansible · infrastructurefamiliar
Linux · infrastructurestrong
Grafana · monitoringstrong
Datadog · monitoringstrong
Sentry · monitoringstrong
Claude API · ai toolingdaily
Claude Code · ai toolingdaily
Code review · practicedaily
Technical mentoring · practicedaily
Async communication · practicedaily
##

./teaching

since 2022
Technical Instructor & Jury Member
Freelance · 2022 - Present
  • Freelance technical instructor at French engineering schools: TypeScript, Node.js, GraphQL, Web Performance, and Git workflows. Jury member for final-year thesis defenses.
##

./education

Master of Web and Mobile Engineering · RNCP32023
IIM Digital School
Nanterre, France
Bachelor of Web Development · RNCP32043
HETIC
Montreuil, France
teepan:~$ contact --reach-out

I help product teams ship without thinking about plumbing.

$ open to new opportunities · french · english

© teepan · 2026