Senior frontend engineer
I build things for the web.
I'm a frontend engineer from Greece, with 12+ years of experience. Currently, I work with React and AI agents.
I co-organise SKG JS, Thessaloniki’s JavaScript community meetups, bringing developers together to learn, share, and connect. I’ve also written about software engineering on Scalable Path, Medium, dev.to, and the Skroutz Engineering blog.
Experience
Work
Projects
Education
Community
Writing
Hotwire @ Skroutz: Lazy load data with minimum effort
Using Hotwire to lazy load data on a page without writing boilerplate code.
(opens in a new tab)Refactoring a React app to progressively load its data
Refactoring a React app to show a friendlier UI while its data is still loading.
(opens in a new tab)When to Use NoSQL vs SQL: The Ultimate Guide for Choosing a Database
How SQL and NoSQL databases differ, and when to choose each for a project.
(opens in a new tab)TypeScript or Flow: Which Is Better?
The pros and cons of Flow and TypeScript, to help choose a type checker for a JavaScript project.
(opens in a new tab)Including files created by Node.js into .Net project 🛠
Adding files generated by a Node.js script to a .NET project file automatically.
(opens in a new tab)Automating boilerplate code generation with Node.js and Handlebars
Generating the repetitive files every new form needs with a Node.js script and Handlebars templates.
(opens in a new tab)CSS cascade: Importance
How the CSS cascade decides which declaration wins when origins and !important collide.
(opens in a new tab)JS illustrated: Promises
An illustrated walkthrough of how JavaScript promises work.
(opens in a new tab)The RGB split effect with css and a bit of javascript
Recreating an RGB split text effect with CSS and a little JavaScript.
(opens in a new tab)Creating the typewriter effect with the use of async generators
Building a typewriter text effect with async generators.
(opens in a new tab)Using Redux in a legacy ASP.NET Web Forms project
Bringing Redux state management into a legacy ASP.NET Web Forms application.
(opens in a new tab)Waiting for visible element
Running code only once a specific element becomes visible on the page.
(opens in a new tab)JS illustrated: The event loop 🔁
An illustrated explanation of how the event loop lets single-threaded JavaScript run asynchronous code.
(opens in a new tab)Some of my favorite Javascript resources
A list of the JavaScript resources I keep coming back to.
(opens in a new tab)
Say hello
Email is the quickest way to reach me.