JavaScript
JavaScript is the language I think in.
I have been writing JavaScript for over 10 years. I started back in the ES5 and jQuery days, and grew with the language all the way to modern ES modules, async/await, destructuring, optional chaining and everything that makes today's JS clean and expressive. JS evolves fast, and there will always be something new to learn and discover — that is exactly what I like about it.
It is behind countless websites I have built — just like this one — and countless smaller projects: widgets, tools, landing pages, integrations and quick fixes that had to work perfectly on the first try. On the frontend it lives in React, Next.js, Vue and Nuxt; on mobile in React Native; and on the server in Node.js and Express. One language, every layer of the product.
Years of working with templates and legacy code taught me to understand every library I bring into a project — how it works under the hood, what it costs, and when plain JavaScript does the job better. Over the years I worked with many of them — Chart JS, Vis JS, Moment JS, i18next, Isotope, Slick slider — and each one showed me a different way to solve the same problem.
I care about the fundamentals: the event loop, closures, promises, working directly with the DOM and the browser APIs. Where a project benefits from it, I add TypeScript — this portfolio is written in it — because types catch mistakes before users ever see them.
My workflow is modern too: I build with Cursor and AI assistants like Claude as everyday tools — for exploring ideas, refactoring and reviewing code faster — while keeping the architecture, quality and final decisions firmly in my hands.