Becoming Your Best Self: Lessons from the Great Minds of History

Introduction # I have been listening to the amazing podcast How to Take Over the World by Ben Wilson in the past weeks and I wanted to note down some things that all the great people have in common. The following notes are all based on the podcast. The Power of Writing # Great mi … | Continue reading


@ecostack.dev | 1 month ago

Handling Proxy Issues with Firebase in Node.js

Introduction # Firebase is widely used for authentication, database management, and other server-side operations in Node.js applications. However, when operating behind a corporate proxy or firewall, you might encounter connection issues that hinder communication with Firebase se … | Continue reading


@ecostack.dev | 1 month ago

Optimizing NodeJS and Python Performance with Docker Compose and NGINX Load Balancing: Scaling with Replicas for Better CPU Efficiency

Introduction # This is the second article in a series on how to maximize CPU utilization for single-threaded languages like Node.js and Python. In the previous article, I explored using Docker Swarm, which provides built-in load balancing. You can find that article here . In this … | Continue reading


@ecostack.dev | 1 month ago

Load Balancing Docker Compose Replicas Using Nginx

Introduction # This is the second article in a series on how to maximize CPU utilization for single-threaded languages like Node.js and Python. In the previous article, I explored using Docker Swarm, which provides built-in load balancing. You can find that article here . In this … | Continue reading


@ecostack.dev | 1 month ago

Load Balancing Docker Compose Replicas Using Docker Swarm

Introduction # Imagine you are working with Docker Compose and you have deployed your Python or Node.js app with it. You might have noticed that these are usually single-threaded, and you need multiple instances of the same app to make use of the tons of CPU your server has. When … | Continue reading


@ecostack.dev | 2 months ago

Seamless Integration: Setting Up Lark Webhooks for Uptime Kuma Notifications

Introduction # In this article, we will guide you through setting up a Lark webhook to receive notifications from Uptime Kuma, a popular self-hosted monitoring tool. Using Lark for notifications ensures that your team stays informed in real-time about the status of your monitored … | Continue reading


@ecostack.dev | 2 months ago

Free Up Disk Space on Linux: Find Big Files Fast

If your Linux machine’s disk is full, you might be wondering which files or directories are consuming the most space. Here is a guide that will help you, in case you have some space left you can use ncdu or otherwise just use find. NCDU # If there is some space left on your Linux … | Continue reading


@ecostack.dev | 2 months ago

How to charge your EV in China

Introduction # Charging an electric vehicle (EV) in China can be quite different from other countries, especially if you’re new to the EV ecosystem or are traveling from abroad. With one of the world’s largest and fastest-growing EV markets, China offers a wide range of charging … | Continue reading


@ecostack.dev | 2 months ago

Plug In and Power Up: Your Guide to Charging EVs in China

Introduction # Charging an electric vehicle (EV) in China can be quite different from other countries, especially if you’re new to the EV ecosystem or are traveling from abroad. With one of the world’s largest and fastest-growing EV markets, China offers a wide range of charging … | Continue reading


@ecostack.dev | 2 months ago

Automated Docker Compose Deployment with GitHub Actions

Overview # This guide will show you how to set up an automatic deployment pipeline using GitHub Actions. This pipeline will connect to a target server via SSH, update the Docker image, and restart the Docker containers. Automatic deployment ensures that your applications are alwa … | Continue reading


@ecostack.dev | 4 months ago

Docker Logging Limitation

Introduction # Ever had the error No space left on device or Cannot create directory? It might be due to logs from your Docker daemon. Here is how you can limit the logs from Docker containers. Overview of Docker Logging # Docker logs are essential for debugging and monitoring co … | Continue reading


@ecostack.dev | 4 months ago

Nginx: Rewrite Path without normalizing URI in proxy_pass

This article provides a way to configure rewriting the path without normalizing the URI while using proxy_pass. | Continue reading


@ecostack.dev | 7 months ago

Optimizing Nginx Startup: How to Delay DNS Lookup in proxy_pass

Learn how to optimize Nginx startup by delaying DNS lookups for proxy_pass configurations until they are actually needed, thereby avoiding startup delays from unreachable domains. This article includes step-by-step configuration examples and DNS customization options. | Continue reading


@ecostack.dev | 7 months ago

Golang Error: missing Location in call to Time.In

Learn to fix the `missing Location in call to Time.In` error in Go, particularly for Docker containers on Alpine Linux. This guide offers solutions through code adjustments and Dockerfile configurations for seamless timezone handling. | Continue reading


@ecostack.dev | 8 months ago

Mastering OpenTelemetry with Uptrace: A Developer's Guide

Unlock the full potential of application monitoring with 'Mastering OpenTelemetry with Uptrace: A Developer's Guide'. This comprehensive article takes you on a deep dive into the world of OpenTelemetry and Uptrace, guiding you through the essentials of observability, tracing, met … | Continue reading


@ecostack.dev | 10 months ago

Setting Up Nginx with Self-Signed HTTPS in Docker Compose

In today’s digital age, securing web traffic with HTTPS is crucial for protecting data integrity and privacy. This guide demonstrates how to leverage Nginx, a powerful web server, within Docker Compose to create a secure and scalable environment. | Continue reading


@ecostack.dev | 11 months ago

gRPC vs RabbitMQ RPC: How Do They Compare for Microservices?

How do gRPC and RabbitMQ RPC compare for microservices? This article explores the differences between gRPC and RabbitMQ RPC, two leading frameworks in remote procedure calls (RPC) for microservices architecture. | Continue reading


@ecostack.dev | 1 year ago

Go: gRPC vs RabbitMQ RPC

A comparison between gRPC and RabbitMQ RPC | Continue reading


@ecostack.dev | 1 year ago

RabbitMQ Auto Reconnect Node.js

Auto reconnect to RabbitMQ in Node.js on error | Continue reading


@ecostack.dev | 1 year ago

Golang Integer to String

How to convert an integer to a string in Golang | Continue reading


@ecostack.dev | 1 year ago

Golang Integer to String

How to convert an integer to a string in Golang | Continue reading


@ecostack.dev | 1 year ago

Git pre-commit hook with Husky (NPM) + ESLint hook

Do you want to ensure that your project's codebase remains clean, maintainable, and bug-free? Look no further than Git pre-commit hooks with Husky. In this article, we'll guide you through the easy installation process and show you how to set up pre-commit hooks to enforce coding … | Continue reading


@ecostack.dev | 1 year ago

Connect to Bluetooth Low Energy devices using Golang

Using Golang and TinyGo's BLE library, learn how to connect to Bluetooth Low Energy devices. This introduction uses the AOJ-20A thermometer from Lepu but using other BLE enabled devices will work in a similar way. | Continue reading


@ecostack.dev | 1 year ago

WebAssembly: Go vs Rust vs AssemblyScript

Imagine you are working on the next big thing that runs in the browser, and it requires some heavy-duty code, which need to run fast and efficient. You remember that your friend Jack told you about WebAssembly (Wasm), which supposedly runs faster than JavaScript (JS), so you deci … | Continue reading


@ecostack.dev | 1 year ago

Go: Cross-Compilation including Cgo

How to cross-compile applications for other platforms with Go and Cgo | Continue reading


@ecostack.dev | 2 years ago

Things to Follow

General # https://www.0atman.com/ Finance # https://bam.kalzumeus.com Business # https://training.kalzumeus.com/newsletters/archive/consulting_1 https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ https://www.kalzumeus.com/archive/ AI # https://course.fast.ai/ | Continue reading


@ecostack.dev | 2 years ago

Blogs to Follow

General # https://www.0atman.com/ Finance # https://bam.kalzumeus.com Business # https://training.kalzumeus.com/newsletters/archive/consulting_1 https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ https://www.kalzumeus.com/archive/ | Continue reading


@ecostack.dev | 2 years ago

Golang Errors With Stacktrace

The error handling of Go is not up to snuff compared to other languages like Java for example. Errors are treated equally to other values, meaning, they have no special type. This means, they do not carry information of origin in them. Which means tracking down the error origin m … | Continue reading


@ecostack.dev | 2 years ago

Golang Generic Option Type

Introduction # You might have heard of the Option type, if not, let me introduce that concept shortly.An Option type is data structure which either has a value or no value contained in itself, it kind of acts as a box (Schrödinger’s cat 😉). Usually, the Option type is cr … | Continue reading


@ecostack.dev | 2 years ago

React Performance Profiling

You have built this amazing React application with lots of components and everything works smooth but somehow, it feels slugish at certain places. You got that nice lazy loading that the stakeholder wanted but it slows everything down over time.Now, how would you go ahead and imp … | Continue reading


@ecostack.dev | 2 years ago

Goroutine Variable Scope

Did you ever run your Go code, and you felt like something was off? Ever thought this might be related to the variable scope? Then you might be onto something! | Continue reading


@ecostack.dev | 2 years ago

Website Scraping - Part 2 - Parsing HTML with NodeJS and cheerio

Hello back again! If you missed out on how to create the selector for HTML data, please check out part one of the series! Otherwise, let… | Continue reading


@ecostack.dev | 4 years ago

Website Scraping - Part 1 - Fetching a website with NodeJS

You maybe might be in the same position, you want to gather some data of different objects (like financial data from different entities)… | Continue reading


@ecostack.dev | 4 years ago

Functional development concepts

A practical guide on how some functional development concepts work. | Continue reading


@ecostack.dev | 5 years ago

How to migrate from Sails.js to Express.js (or how to finally reach land)

I used to work on a pretty large project written in Sails.js. Now, after such a long time of development the project… | Continue reading


@ecostack.dev | 6 years ago

About

I currently work as a full-stack engineer at ByteDance/TikTok. Before that, I used to work as an employee or freelancer for a Fortune 500 company, Plek and JapieCars . All in all amounting to 10+ years of software development experience.During this time, I work mostly on web base … | Continue reading


@ecostack.dev | 2025 years ago

Office Hours

During my younger years, I would have liked to contact someone more experienced but shied away from doing so. I hereby pledge, if you are interested in talking about software, be it about ideas or technical issue, reach out to me via email or Twitter! | Continue reading


@ecostack.dev | 2025 years ago