RSSAmplifier

Blog

Kostas Bariotis' Blog

Staff Software Engineer @PBLWorks , co-organizer of @devitconf & @skgnodejs , host of Devastation Podcast .

kostasbariotis.comRSS feed ↗81 posts

Latest posts

Why you should not use process.exit()

I've been working with different teams and projects during the past few years and a common theme I've been seeing is the use of Node.js…

Setting up a GraphQL server with TypeScript

This article will go through setting up the basic structure of a GraphQL server with TypeScript. I will use apollo's Koa server package that…

Here's to another great year

It's actually been quite some time since my last new years' resolution. Quite a few things changed since with the most important being that…

Gatsby with Docker multi-stage builds

I'm probably late to the game, but I have just discovered Docker's new (well..) feature, the multi-stage builds. At first, it came handy for…

Guide to package-lock.json

This article first appeared on LogRocket's blog. In this article, we'll look at , why it's important, and how it's best used along with NPM…

Dependency injection in Node.js

This article is about how to achieve dependency injection in Node.js using awilix, a Dependency Injection Container I have been personally…

NODE_ENV: So easy to miss your step

I broke our main API last week. I merged a PR of mine I had been working for a while. It got two approvals from two co-workers, green test…

Aggregated log management

I have been building aggregated logging mechanisms in all my projects and I always thought of it as an industry standard practice. Lately I…

Don't just "docker-compose up"

Chances are that you are working on a containerized stack. Whether you built it yourself or joined a company and found one there, you are…

Disagree and commit

More than a few times, a recruiter or a company's representative that I am interviewing with will ask me a particular question (among others…

Progressive JavaScript Linting

Linting and auto-formatting are a well known process among JavaScript developers, although due to the lack of a standard tool, lots of folks…

Async/await - A thorough example

With the eighth (8) version of Node.js becoming an LTS, I think that this is a good time to consider switching to it and enjoy the awesome…

Serverless Demystified

This post will be an attempt for me to start talking about the, all heard about it, serverless thing. I have been working with a serverless…

The Micro-functions architecture

I have been working with a serverless architecture for the past one year. We have gone full serverless on the project we are currently…

Modern static site generation

In this post, I will talk about static site generators. How they have evolved and why I switched from a Ghost powered site to Gatsby.js, a…

How I failed landing a remote position

I started looking for a remote position, telecommuting in other words, as a software engineer last November. It took me 3 months to apply to…

Environment based application configuration using Webpack

I am using webpack a lot. A common pattern I am constantly using is how to manage the application specific configuration between different…

Writing a custom CSS framework

Writing CSS is hard! Especially cross browser testing, this is like the least fun game ever. But still, it's a big deal in our day to day…

GitYeller.com is my latest weekend project

It all started when Adonis told me that he was looking to contribute to some open source projects. He had a list of projects that he…

removeEventListener and this

Have you ever tried to call on a previously attached element and couldn't remove it? Did you maybe try to pass a function to that is bound…

Deploying Node.js Applications on DigitalOcean using Ansible

I was in the need to be able to automatically create a machine on DigitalOcean for my personal projects, provision it and then upload an app…

Sending and receiving emails when on GitHub Pages

If you, like me, like to host simple little sites of yours on GitHub Pages, I am sure you have already reached the moment when you wanted to…

Database Migrations with Nodejs

A database is a vital part of every complex application. Databases change very often and contain data that can even disintegrate our whole…

Live the dream

Sometimes we feel like still chasing the dream. Like it is still far away. Think again. What were you dreaming of last year? Five years ago…

The Keys to Scaling Yourself as a Technology Leader

Admin Pisoni shares lots of great insights he learned after all these years into managing and growing teams. This article says it all…

Isolated Unit Tests with Sinonjs

Units in Unit Testing is the smallest unit of code. But how small? Small enough to be tested. For that matter, Unit Tests need to be…

Go canonical import paths & Github forks

I started playing with Golang(or just Go) this week for the first time. Go is a compiled, statically typed language and I thought it would…

MongoDB Aggregation: $lookup for JOINs

As of MongoDB 3.2, a new feature has been added that introduces a left outer join for the first time. is part of the MongoDB aggregation…

Automated GUI Testing Solutions

I gave a talk entitled TDD with Node.js in the latest SKGNode.js meetup. I explained the concept of TDD and described my tools of choice for…

28 things I’d do differently next time around

Loved that article. So many insights. We all could gain a lot from each other's experiences. I truly believe that and that's why I started…

Beyond sunset

Ah man, what a year! 2015 has to be my best. Last year I failed to write my resolution. But since that year went so good, I thought not to…

Queue-Centric Workflow

We started adopting a Queue-Centric workflow recently at Goodvidio, although it's still too early to talk whether it served us well and what…

The Configuration Service

While we were moving towards the Microservices path at Goodvidio, we were in the need of keeping in a central place the configuration of our…

User Stories as in User Stories

User stories are a part of every agile driven process that teams usually follow. Often, even a developer can be called to write a story…

I don't know what I'm doing

"... and once you understand that, once you truly believe that, then you're free."

Node.js & Recursion

Recursion is one of the initial courses we take in every CS university, with the most used example being the Fibonacci sequence: This works…

Action, Inspiration, Motivation

I watch a lot of people on the Internet. Authors, film makers, music producers. I often wonder where do these guys get inspiration and…

The road to Client Side Javascript

Client Side JS frameworks have come a long way. Since the rise of Backbone.js back at 2010, the way we write Javascript and everything about…

Immutable Objects with Javascript

There is no way, by default, to ensure that your Javascript Object you passed into a function will stay as is nevertheless. And that creates…

Be prepared to scale your team

Fortunately, I have been lucky enough to work with a lot of dev teams. Good and bad. I've seen teams with a sickness so deeply in their DNA…

Mongoose objects and the IN operator

Today I lost a few hours trying to understand why a document that I was fetching through Mongoose, kept returning true against checking for…

Making a REST API discoverable

Making a discoverable API means thats some software would be able to traverse it, by only providing it's root endpoint. For example, my IDE…

It makes sense

You won’t rush an architect. You don’t want to see your house becoming dust at the next earthquake. You won’t rush your hairdresser. You…

Are you the best in the room?

First, become the best in the room. Then find a room where everyone is better than you. Repeat. I know this piece is like 20 words long but…

Consistent dependencies across teams

A common pitfall when comes to development teams is the inconsistent software and library versions across developers. The first time you…

The stories in my head

A few days ago I stumbled upon this wonderful story. I love those short stories. They are real, inspirational and educational stories. I've…

REST API Error Handling with Express.js

When you are writing an API, especially when is going to go public, you want the error responses to be as consistent as possible. You want…

References from my Javascript 101

A week ago Thanasis asked me to make a Javascript 101 for the SKG Node.js monthly meetup. The trap? I had to present it a week after. :/ At…

Hands on React.js

I haven't really gotten into React.js yet, even though I have heard about it about a year ago. It was this video, about react-native and how…

Common Concurrency Problems

A common problem to Computer Science is Concurrency. Most of the application we use today, use it in order to better utilise the hardware…