My stack

My technologies

My technology stack & experience in using technologies

Knowledge gets you started, but experience is what solves real problems. With over 10 years in web development, I know which tools fit which job, how they behave in production, and how to keep a codebase clean as a product grows.

My journey began with JavaScript, and it is still the core of everything I build — from React and Vue interfaces to cross-platform mobile apps in React Native. On the backend I work with PHP, Laravel and Zend, and I have built and maintained custom CMS platforms, business applications, API integrations and e-mail systems, as well as many WordPress websites.

Design is part of my workflow too — with Photoshop and Illustrator I create layouts, logos and UI, so I can take a product from the first sketch to a pixel-perfect, fast and accessible result. Working in both small and large teams on long-term projects taught me to approach every task logically, think like the end-user, and share knowledge with the people around me.

Tech in practice

The tools I use & how I apply them

Pick a technology to see where I've used it, what I like about it and how it fits into my everyday work.

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.

My projects

Do you want to see the projects I've worked on?

Find out how I applied these technologies to real projects — live websites, demos and design work.