Photo by Joshua Earle on Unsplash

I’ve been active on Medium for about 2 years now, having written various pieces on programming, JavaScript, CSS, React and a few other things. I remember when I published my first post here and almost immediately got an invite to join HackerNoon.

But, since then, many things have changed, namely the subtlety with which Medium dances around its paywall — or lack thereof.

I’ve been getting emails from publications and writers I follow about all the things happening behind the scenes: Medium pushing the paywall quite aggressively, publications and writers abandonding ship to set up shop elsewhere. …


Every programmer you’ll ever meet will have a slightly different opinion about what code editor is the best and what configuration is the most productive. Many of us have spent countless hours trying out different extensions for our code editor of choice, configuring settings, switching back and forth between code editors and trying to get the development environment just right for us.

I’ve been an Atom fan for a couple of years, but I switched to VS Code last year and it felt strangely good. I like the performance better, for one, but I also think that VS Code’s marketplace…


A few days back I started reading up on ES6 generators (or generator functions), a new feature that I wanted to learn and understand for quite a while now. In retrospect, it’s not that difficult a concept, but it might take some time getting used to how generators work. As I was reading this fantastic writeup by Arfat Salman (which I suggest reading before going any further), I had an idea/question:

Can we use ES6 generators to generate keys for element collections in React?

The answer is absolutely yes! But should we? Probably not, as it has been pointed out…


To most folks in the tech world, working in IT might sound like one of the dullest jobs on the planet. And that can be the case at times. However, as I’ve found out, working as an IT officer for the past 6 months, it’s also one of the most lucrative career paths if you’re still in college trying to make ends meet or just taking your first steps in the tech world. Let me tell you why.

Photo by Alex Kotliarskyi on Unsplash

1. IT jobs don’t have a strict definition

IT can mean a lot of things in different industries and workplaces. You might be getting yourself into database and systems administration…


While most programmers would argue that JSON is the preferred file format to persistently store JavaScript data, there is still value in using other formats to store data. CSV is one of those formats that have been around for a long time and are dead simple to use in most cases. However, while JavaScript provides native methods to serialize and deserialize JSON objects (JSON.stringify() and JSON.parse()), there is no such functionality built-in for CSV files, so in this article I will try to implement said functionality in ES6.

Convert an array to CSV

The first and arguably simplest piece of code we need to write…


In my previous article, I tried to explain why I think Hyperapp is a viable alternative to React or Vue and the reasons I found it easier to get started with it. Lots of people criticized that piece, as it was opinionated and didn’t give the other frameworks a proper chance to shine. So, in this article, I’m going to try to compare these three frameworks as objectively as possible, by providing some minimal examples to showcase their capabilities.

The infamous counter example

A counter is probably one of the most used examples in reactive programming and is dead simple to understand:

  • You need…


Frameworks like React, Vue and Angular seem to have been all the rage this past year and with good reason: they make it easier to create and maintain scalable web apps. Having worked with React and Vue in the past, mainly on side projects and during courses, I found them both to have quite a steep learning curve. However, out of necessity, I settled with React and Redux as my tools of choice, which I disliked the least out of the bunch.

Photo by 广博 郝 on Unsplash

As time went by, I realized I was constantly looking for help every step of the way when…


You might be one of the very best web developers this world has ever seen. Or you can be adequate enough to land a job and keep it. Whatever the case, preparing for an interview never did any harm.

If you are anything like me, you go from overwhelming excitement when you get called in for an interview to instant panic-and-search-all-the-interview-questions-mode a mere 2 minutes later. Looking for material to prepare for an interview can get tough, as you have to manage to look over tons of things you already know in very little time, while struggling to find what…


Click the image to go to the project’s repository.

The shift from desktop to web applications, along with the rapid growth of browser-based applications has made a lot of fresh developers pick JavaScript as their programming language of choice. While JavaScript has a library, module or framework for pretty much everything, it can easily create a situation where one gets overwhelmed by the sheer amount of information being thrown their way.

Apart from that, no developer can claim they have mastered a programming language and start creating something complex and beautiful without an understanding of the fundamentals. …


While the type="color" is not something most web developers need in their everyday designs, it is a bit of an input control that is all over the place and support for it is not yet stellar across major browsers and platforms.

Having a little bit of extra time, I decided to try my hand at a custom input component that can be used to input colors. …

Angelos Chalaris

Web developer who loves to code, creator of 30 seconds of code (https://30secondsofcode.org/) and the mini.css framework (http://minicss.org).

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store