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.

Scroll

Experience

Work

Projects

Education

Community

Writing

  1. Skroutz Engineering

    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)
  2. Skroutz Engineering

    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)
  3. Scalable Path

    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)
  4. Scalable Path

    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)
  5. DEV.TO

    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)
  6. DEV.TO

    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)
  7. DEV.TO

    CSS cascade: Importance

    How the CSS cascade decides which declaration wins when origins and !important collide.

    (opens in a new tab)
  8. Medium

    JS illustrated: Promises

    An illustrated walkthrough of how JavaScript promises work.

    (opens in a new tab)
  9. DEV.TO

    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)
  10. DEV.TO

    Creating the typewriter effect with the use of async generators

    Building a typewriter text effect with async generators.

    (opens in a new tab)
  11. DEV.TO

    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)
  12. DEV.TO

    Waiting for visible element

    Running code only once a specific element becomes visible on the page.

    (opens in a new tab)
  13. Medium

    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)
  14. DEV.TO

    Some of my favorite Javascript resources

    A list of the JavaScript resources I keep coming back to.

    (opens in a new tab)

Say hello