Docker vs. Podman

When Docker came onto the scene, it did not invent containers from scratch. The real magic was already implemented inside the Linux kernel in the form of two core technologies: cgroups and namespaces. cgroups allow managing and profiling system resources on a per-process basis (CPU, memory, and I/O). namespaces, on the other hand, customize the system view of a process, giving each one a virtual and exclusive view of the file system, network, memory space, process space, and more....

Mar 30, 2026 · 4 min · Milad Irannejad

Security For Developers

Recently during an interview, I was asked a question about how much I know about security. At first, I paused for a few seconds because honestly, I didn’t know how to answer the question. Eventually, I answered as a developer I am making sure I am doing this, doing that, and following these best practices! After my interview, I was telling myself that I should know about the security best practices for developers and engineers....

Aug 11, 2020 · 8 min · Milad Irannejad

What is an Ad Platform Made of?

Ad placement is a multi-objective optimization (MOO) problem. There are many factors needed to be taken into account and be optimized: Relevancy Advertiser Value User Value User Experiencce Retention Fairness Basket Size and more … The Marketing Funnel ___________________________ \ Awareness / \-----------------------/ \ Consideration / \-------------------/ \ Conversion / \ Loyalty / \ Advocacy / \___________/ Glossary Term Description Marketing The set of activities to attract people to products or services....

Jul 14, 2020 · 7 min · Milad Irannejad

Developing Go Services For Kubernetes with Telepresence and konfig

The Problem As a developer when you are working on a Kubernetes application on your local machine, if you want to test or debug something, you have the following options: A full environment running using docker-compose. A full environment running in a local Kubernetes cluster (Minikube or Docker-for-Desktop) Pushing instrumented code, building, testing, and deploying to a dev Kubernetes cluster through CI/CD pipeline. The problem with the first two options is the environment you get is not close by any means to your actual final environment (staging and production)....

Mar 4, 2020 · 4 min · Milad Irannejad

Dynamic Configuration Management and Secret Injection with konfig

TL;DR Dynamic configuration management and secret injection refer to updating an application with new configurations and secrets in a non-disruptive way. Kubernetes ConfigMaps and Secrets mounted as files into containers will be updated with new values automatically. konfig makes dynamic configuration management and secret injection very easy to implement and use for Go applications. The Problem Dynamic configuration management and secret injection refer to a situation that your application can update its configurations and secrets without needing a restart....

Mar 4, 2020 · 5 min · Milad Irannejad