The goal is to produce minimal image to keep the size low and reduce attack surface. Also we want to make the docker build process fast by removing unnecessary steps and using practices outlined below to leverage internal build cache.

Besides pure Docker I’ll present docker-compose tool, which is a…


Below are my notes while learning Kubernetes, but I thought those might be useful to other people that are just starting or just need a quick dictionary for K8s concepts and resources. Enjoy!

Master Server Components

Those master components make so called control plane.

  • etcd — config store accessible to all cluster nodes


What is considered a good practice in Object-Oriented Programming (OOP) and Design Patterns, but is considered an anti-pattern in JavaScript (the functional programming (FP) flavor of JS at least)?

Here are the main points:

  • The good: factory pattern
  • The bad: constructor
  • The ugly: class Foo extends Bar

For classic OOP…


Dreyfus model of skill acquisition provides hints for building effective communication - no matter if you want to delegate a task, ask for help, or just convey an idea.

Imagine that you’re an experienced software developer calling ISP technical support, because router is broken. How would you feel when they ask you if it’s plugged-in, if lights are blinking, or if you tried turning it off and on again? …


Try Fish or ZSH — modern Bash alternatives that make shell more productive and cool. Do not waste time with Bash as I did.

When you’re thinking of shell on any Linux system you probably think Bash (Bourne Again Shell). On Windows too actually, as Git Bash is quite popular (despite it has got an ugly terminal emulator) and WSL (Windows Subsystem for Linux) uses Bash as well (by default). At least those have…


Singleton is really easy to write, but it’s not so simple, especially in multi-threading environments. Sure, JavaScript is single-threaded by design, but not all concurrency daemons are slayed.

Note: this is one of those posts leveraging Cunningham’s Law: the best way to get an answer is not to ask questions…


One of the best features of Node 8.6+ is the ability to use rest/spread operator for objects. It’s still an ESNEXT stage 3, but it’s so useful already. Take a look at the snippet:

const foo = { a:1, b:2, c: 3}
const bar = { d:4, b:9 }
const…


It is a review of JDD 2014 talk by Sławomir Sobótka originally published at Future Processing technical blog along with other talks reviews. The video recording (in Polish) is available on youtube.

This talk was presented in Polish, its original title is „Jak wciągnąć eksperta domenowego w wir modelowania —…


After years of doing DevOps now I’m in situation where there are several operation teams to work with.

System administrator job is hard. They have to make sure everything works smooth all the time. That includes the complex legacy system that nobody fully understands. Such work is often invisible and goes unappreciated.

Do The Dirty Work Yourself First

For the last few days I’ve put myself into shoes of such operation person trying to…


How we discovered big shift an auction platform has made at the DDD training.

At Domain Driven Design training we’ve been given an exercise to model domains of Allegro (more on what’s that later) and try to mark which ones belong to Core Domain. The modeling phase went quite smooth, but we’ve faced a problem when it came to choose Core Domain of the…

Adam Brodziak

Father. Husband. Solutions developer profesionally (software quite often). Arsenal supporter. Cyclist.

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