Latest Posts

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 ~150 job descriptions and none of them was a successful hire. Nevertheless, I now have a great job and I would like to share that experience with you. I have prepared a spreadsheet listing anonymous applications, whether they rejected me or I rejected them and till which level I got into. I will also share »

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 environments. I want to be able to set different API URLs, access codes, feature flags for every environment of my team's workflow. In this post, I will try to explain why we need application specific configuration and I am using it. Then I will show you two common techniques and why I chose the second one. It's »

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 life and you always feel good by the outcome. Personally, I am reusing whatever I can get off the internet and the open source community. Bootstrap is an example of this. Bootstrap is a fine set of reusable components you can just plug into your website. The thing is that it's quite big » 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 actively uses but he didn't want to always be checking their issues list for new issues that he could get his hands on. So we thought it would be cool if we had a way to watch a GitHub repository for issues of specific tags, e.g. "Need help", "Good first contribution", etc. I »

removeEventListener and this

Have you ever tried to call removeEventListener on a previously attached element and couldn't remove it? Did you maybe try to pass a function to addEventListener that is bound to another context? The context of the callback that we are passing to addEventListener is the same as the event.currentTarget when is being called. The problem is that when we bind the callback to another object, we can't remove it afterward. Lets see an example: let element = document.createElement('button') »