interface Engineer {
name: "Thomas Legrand"
focus: "ml → product"
based: "Nice, France"
stack: [ Vue, Effect, TypeScript, AI ]
}I started in data science and moved to full-stack. These days I freelance, mostly on typed TypeScript products with AI somewhere in the loop.
At FREELANCEREPUBLIK I work on Jemmo, an AI talent-matching SaaS: plan-then-execute agentic pipelines, a remote MCP server that exposes search to AI assistants, and ATS sync and reconciliation logic written in Effect.
Outside client work I'm figuring out what agentic coding actually changes day to day (parallel agents, git worktrees, orchestration). And I've gone fairly deep on Effect.ts, far enough that it now ships in client code where correctness matters, not just in side projects.
| Project | What it is | Stack |
|---|---|---|
| Notara | Self-hosted, local-first note taking | Effect, React, Electron, SQLite, Bun |
| RAVE Template | Full-stack Rust + TypeScript starter that ships as one binary | Rust, Axum, Vite, SQLite |
| DishNow | Recipe manager built around how I actually cook | Nuxt, PocketBase, Mistral |
| allobobo | AI health triage assistant | Hono, Qdrant, Vercel AI SDK |
The rest: thomas.legrand.sh/projects
Notes on whatever I'm using at the time. Effect.ts, AI-assisted coding, self-hosting, the odd post-mortem.
- Effect.ts: The TypeScript Standard Library That Finally Clicked
- LLM Privacy Policies Compared: What Data Do Providers Keep?
- Dario Was Right: The New Reality of AI Coding
TypeScript, Effect, Vue/Nuxt, React, Rust, Python, Bun, Hono, PostgreSQL, SQLite, Docker, Coolify. Reasons for each at /uses.



