Aetherio Logo
Frontend

Freelance JavaScript Developer in Lyon

The foundational language of the web. Deep mastery changes everything.

Why JavaScript mastery changes everything

JavaScript is the most used language in the world. It's also the most misunderstood. Most developers learn a framework — React, Vue, Angular — without understanding the language underneath. It works until it doesn't.

A this that changes context depending on how it's called. A Promise that silently swallows an error. A closure that captures a mutated variable. A forEach that ignores await. These aren't framework bugs. They're language bugs. And they cost hours when you don't understand why.

My strength: I don't work on top of JavaScript. I work with it. Every Vue composable, every NestJS service, every utility I write relies on deep understanding of the language — prototypes, event loop, closures, coercion, ES modules. That mastery is what makes my code reliable.

JavaScript in 2026: a transformed language

Today's JavaScript has nothing in common with what it was 5 years ago. The language evolves every year through the TC39 process, and recent additions are significant.

Native ES modules. No more CommonJS in 2026. Import/export is native in every browser and in Node.js. Tree-shaking works without configuration. Code is declarative and statically analyzable.

Mature async/await. Promise.allSettled(), Promise.any(), top-level await, AbortController for cancellation. Async handling is clean, readable and controllable. Callback pyramids are a memory.

Powerful browser APIs. IntersectionObserver, ResizeObserver, Intl, structuredClone, navigator.sendBeacon, Web Animations API. Many npm libraries can be replaced by native APIs that are lighter and faster.

Temporal & Iterator Helpers. New date and iterator manipulation APIs are arriving natively. No more depending on moment.js or lodash for operations the language now handles on its own.

JavaScript and TypeScript: complementary, not opposed

I write most of my code in TypeScript. But TypeScript compiles to JavaScript. Types disappear at runtime. What's left is JavaScript.

Understanding the prototype chain means understanding why instanceof fails across iframes. Understanding the event loop means understanding why await inside forEach doesn't do what you expect. Understanding coercion means understanding why [] == false is true.

TypeScript catches type errors. But logic errors, timing issues, concurrency problems, memory leaks — those require deep JavaScript understanding. Both are necessary.

My approach

ES2025+ by default. No polyfills when browser support is sufficient. I use modern language APIs and target recent browsers. Code is shorter, more readable and more performant.

Zero unnecessary dependencies. Before installing an npm package, I check if a native API does the job. structuredClone instead of lodash.cloneDeep. URLSearchParams instead of qs. Intl.DateTimeFormat instead of moment. Fewer dependencies, smaller attack surface, less debt.

Performance by default. Native lazy loading, requestAnimationFrame for animations, IntersectionObserver for deferred loading, list virtualization. Performance isn't a patch added at the end — it's a design constraint from the first commit.

Node.js in production. For backends, I use Node.js with NestJS. I know the event loop patterns — when to use setImmediate vs process.nextTick, how to avoid blocking the event loop, how to handle streams for large files without blowing up memory.

Valentin Muller - Développeur freelance Lyon

Your developer

I'm Valentin Muller, tech entrepreneur based in Lyon. I build my own products, I launch my own ventures, and I bring that same energy to yours.

My work is turning ideas into digital products that generate real value. Business apps, SaaS, MVPs: I own the technical strategy, architecture, and development. No templates, no shortcuts. Code built to last.

Learn more about my background

What I build with JavaScript

Interactive web applications

Rich interfaces, smooth animations, real-time interactions. JavaScript drives the user experience on the web. I build performant apps that never freeze.

Node.js APIs and services

HTTP servers, WebSocket, async workers. Node.js leverages the event loop to handle thousands of simultaneous connections without blocking.

Serverless & edge functions

Cloudflare Workers, AWS Lambda, Vercel Edge Functions. JavaScript runs everywhere. Lightweight functions deployed closest to the user, executed in milliseconds.

Scripts and automation

ETL, scraping, data migrations, scheduled tasks. Node.js replaces Python or Bash scripts with an npm ecosystem of 2 million packages.

Legacy codebase modernization

Refactoring jQuery or ES5 apps to modern JavaScript. Migration to ES modules, async/await, native browser APIs. File by file, without rewriting everything.

Integrations and SDKs

Stripe connectors, OAuth, third-party APIs, webhooks. JavaScript is the most supported language by service providers. Every SDK exists in JS.

The ecosystem I use

Vite

Ultra-fast bundler based on native ES modules.

Vitest

Fast test framework, ESM and TypeScript compatible.

Playwright

Reliable, fast multi-browser end-to-end testing.

date-fns

Functional, tree-shakeable date manipulation.

Sharp

High-performance image processing for Node.js.

They trusted me

Founders and business owners who had a project, a need, a deadline. Here's what they have to say.

"Disponibilité, réactivité et implication. Valentin est professionnel et pédagogue."

A

Alban B.

CEO Belho Xper

"Il allie une expertise technique pointue à une solide vision business."

C

Charley A.

Co-fondateur Avnear

"Nous avons travaillé ensemble sur la conception d'une automatisation IA pour un E-commerce. Le suivi a été régulier, clair et efficace. Les délais respectés et le résultat impressionnant."

C

Chihab A.

CEO E-commerce

"Valentin a su être à l'écoute de mes besoins et les retranscrires dans une application de gestion de clientèle. Les résultats ont été plus que satisfaisants et de haute qualité."

S

Sandrine V.

Gérante Sandrin's Nail

"Une entreprise qui sait s'adapter parfaitement au besoin client."

S

Stanislas M.

Commercial

"Le site est clair, rapide, et nous permet de mettre en avant nos services de manière professionnelle. Nette augmentation des demandes."

C

Christophe R.

PDG Ravi Groupe

Frequently asked questions

JavaScript is the only language that runs natively in every browser, on servers (Node.js), in edge computing and on mobile. 98% of websites use it. A developer who deeply masters JavaScript builds faster, debugs more effectively and makes better architectural decisions.

Both. TypeScript is a superset of JavaScript — it compiles to JavaScript. Deep JavaScript mastery is what makes TypeScript effective. For long-term projects with multiple developers, TypeScript is recommended. For scripts, quick prototypes or edge functions, pure JavaScript is sometimes the right call.

Yes. Node.js's event loop handles async I/O very efficiently. For APIs, real-time services and I/O-bound tasks, Node.js competes with Go or Java. CPU-intensive use cases are still better served by other languages.

ES2025+ systematically. Native ES modules, optional chaining, top-level await, structuredClone, Array.groupBy, the latest Temporal and Iterator Helpers APIs. Modern JavaScript has nothing in common with the jQuery of 10 years ago.

Yes. Progressive migration from callbacks to async/await, replacing var with const/let, switching to ES modules, removing unnecessary dependencies, adopting native browser APIs. File by file, without breaking production.

Node.js for production — mature ecosystem, massive community, maximum compatibility. Bun for tooling and scripts (faster than Node for execution). Deno for specific cases. The choice depends on context, not hype.

A project with JavaScript ?

Free first call, no commitment.

Discover my resources