It wasn’t that long ago, people were talking about how search engine optimisation (SEO) was becoming less and less important. I worked on many products that heavily relied on SEO and was surrounded by people who were thought leaders in SEO. And they believed that the old days of hacking and hustling to get ahead in search rankings was soon to be over.

Their reasoning was based on two important pieces of information. Firstly, search engines and especially Google was becoming ever more intelligent which makes tricking it harder and harder. Secondly, the Internet was becoming a collection of a…

Should we refactor yet?

Photo by the author.

With the most recent version of v8, we now have several new JavaScript features available in all major browsers — one of which is String.prototype.replaceAll. It is used for replacing all occurrences of a given string or a regular expression with another string. It looks like this:

It is a very simple addition to String.prototype.replace. Being the micro-optimization geek that I am, I decided to take a look at how this new feature performs compared to its alternatives. …

Better components, with types

Photo by Ferenc Almasi on Unsplash

Recently, I had this pull request that triggered a short discussion with my teammates. Someone noticed that I used a different method to write types for the function components I wrote, whereas there were other methods used in the codebase.

In this bite-sized React article, I’ll show you the right way to do it.

Function Components From a Type-Oriented Perspective

Functions, in general, are programmatic tools that take some input, process it, and return some output. Function components essentially work the same way. They take properties and convert them into UI elements. You can see below a super-basic function component example from using plain JavaScript.

Which is the better hosting solution for Next.js-like apps in 2020?

Firebase vs Vercel Now
Firebase vs Vercel Now
Based on Photo by Radek Grzybowski on Unsplash

If you’ve recently tried to set up hosting for your web application, you might have noticed something. Hosting web applications in 2020 is both easier and harder than it was only a couple of years ago.

It’s easier because both the tooling and the hosting solutions have improved significantly. Tools like create-react-app, Next.js and, Gatsby have matured and there are tools introduced every day that help mitigate any shortcomings they have. Setting up hosting has also become much easier. Vercel (formerly known as Zeit) has gained a lot of support and popularity, while Firebase has continued its growth with the…

Mask the HTTP requests from your Node.js code

Photo by Carlos on Unsplash
Photo by Carlos on Unsplash
Photo by Carlos on Unsplash

Like every developer, I find myself writing many scripts, bots and cron jobs, that regularly hit certain servers. Occasionally, I need these scripts to appear to be in random remote locations. Sometimes I want to test how my new bot protection behaves, or view my website or application from abroad, or access a website that’s not accessible from the country I’m in (I used to live in Turkey), or simply mask who I am online. To achieve this seamlessly and reliably, I needed a trustworthy and anonymous VPN or proxy.

I set up my own VPN which was a pretty…

Sometimes, a good diagram is the best way to visualize a concept

Photo by Andrew Buchanan on Unsplash

If you’ve studied software engineering in a traditional way and had some experience in the industry, you might be wondering how I can use “fun” and “diagrams” in the same sentence. Give me a few minutes of your time and you’ll learn how.

Do We Really Need Diagrams?

It is easy to overlook diagrams when you’re working at a non-corporation. Diagrams are often used in corporate companies with many teams, departments, engineers, outsourced resources, and complicated legal obligations.

In such cases, they’re often used as bureaucratic tools rather than as a way to transfer knowledge. …

Photo by Patrick Brinksma on Unsplash

We front-end developers are used to dealing with buzzwords and the ever-increasing number of technologies to learn. For years, we’ve been bombarded with library after library — and each of these is combined with numerous frameworks with their contradicting approaches.

If you’ve been in the industry for more than a couple of years, odds are your skin has already started getting thicker from all the fancy words the industry is throwing at us. We hear about Docker, Kubernetes, containerization, and all the others. They all sound like pretty complicated concepts, but don’t feel intimated. …

Ozan Tunca

Senior Software Engineer @DeliveryHerocom, Music Producer @,

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