Cover art for podcast Around IT in 256 seconds

Around IT in 256 seconds

59 EpisodesProduced by Tomasz NurkiewiczWebsite

Podcast for developers, testers, SREs... and their managers. I explain complex and convoluted technologies in a clear way, avoiding buzzwords and hype. Never longer than 4 minutes and 16 seconds. Because software development does not require hours of lectures, dev advocates' slide decks and hand wav… read more

episodes iconAll Episodes

#58: Consumer-driven Contracts: TDD between services

November 22nd, 2021


Consumer-driven Contracts is an approach to testing integration between services. In a distributed system, many components talk to each other. …

#57: Kotlin: Much more than 'better Java'

November 16th, 2021


Kotlin is a programming language that runs mainly on Java Virtual Machine. This means it’s fully interoperable with Java and even other JVM …

#56: Test-driven development: It's not about testing

November 2nd, 2021


Test-driven development (TDD for short) means developing software by writing tests first. I hope you all write unit and integration tests. But do you write them before the actual production code? This approach to …

#55: Percentages, percentage points and basis points: understand your metrics

October 25th, 2021


You might find this topic weird, but understanding percentages is crucial not only in banking. What does it mean when disk space decreased by 10 percent? How to scientificly measure relative system load? And how to …

#54: Immutability: from data structures to data centers

October 19th, 2021


Immutability means that when something was once created, it can’t be changed. This concept is tremendously important across our whole industry. …

#53: CDN: Content Delivery Network: global scale caching

October 11th, 2021


CDN is a set of geographically distributed servers for fast content delivery. Without CDN all requests are routed to your own server, located somewhere in the world. For example, in San Francisco. If your visitor lives …

#52: How computers work: from electrons to Electron

October 4th, 2021


Today I’d like to explain how computers work. From the ground up, grossly simplifying. It all starts with an electric field. It’s a place where charged particles, like electrons, are attracted or repelled. The …

#51: Cloud computing: more than renting servers per minute

September 27th, 2021


Cloud computing is a broad term. In general, it refers to using hardware and software managed by someone else. Typically with very flexible pricing: we only pay for what we use and for the time we use it. We don’t build …

#50: Property-based testing: find bugs automatically by generating thousands of test cases

September 21st, 2021


Property-based testing is an approach to automatically test software against well-defined rules. We don’t specify desired output for a few inputs. …

#49: Functional programming: academic research or new hope for the industry?

September 13th, 2021


Functional programming means programming using functions. See, I need much less than 256 seconds for that! Unfortunately, this definition is as …

#48: Distributed tracing: find bottlenecks in complex systems

September 7th, 2021


Life used to be simple. In a traditional monolithic application, when a failure occurred, you could easily find the problem. When an exception …

#47: Terraform: managing infrastructure as code

July 5th, 2021


Terraform is fairly low-level software for managing your infrastructure. For instance, it’s used to create and provision cloud instances, networks …

#46: Kubernetes: Orchestrating large-scale deployments

June 29th, 2021


Kubernetes is a platform for managing various workloads inside containers. Before I jump into a definition, let’s describe the problems it tries to …

#45: Node.js: running JavaScript on the server (!)

June 21st, 2021

Node.js: running JavaScript on the server (!)", "episode_description": "

JavaScript language is primarily used inside your web browser. Your computer downloads a JavaScript file and executes it on your machine. But if …

#44: RESTful APIs: much more than JSON over HTTP

June 15th, 2021


REST is an architectural style of communication, based on HTTP. It was proposed in the year 2000 by Roy Fielding. In his dissertation he describes …

#43: Public-key cryptography: math invention that revolutionized the Internet

June 7th, 2021


Disclaimer: this podcast is not about cryptocurrencies. I despise them. Instead, we’ll talk about asymmetric encryption. One of the most wonderful …

#42: Flow control and backpressure: slowing down to remain stable

May 31st, 2021


Imagine two independent systems communicating with each other. One producing data and the other consuming it. There must be some place where data is buffered. Just in case the producer generated some data but the …

#41: Unicode: can you see these: Æ, 爱 and 🚀?

May 24th, 2021


Computers speak bits and bytes. Numbers in general. They don’t understand images, poems and JSON. When we say “hello”, it needs to be encoded to numbers. Conveniently, each character becomes one number. A number can …

#40: Docker: more than a process, less than a VM

May 18th, 2021


When two processes run on the same machine, they are somewhat isolated. For example, they cannot read each other’s memory. However, they still share …

#39: DNS: one of the fundamental protocols of the Internet

May 11th, 2021


Domain name system (DNS for short) is one of the fundamental protocols of the Internet. In the Internet all communication is routed through IP …

#38: HTTP cookies: from saving shopping cart to online tracking

March 30th, 2021


Before we fully appreciate how important HTTP cookies are, let’s imagine the web without them. HTTP is inherently stateless. This means that the HTTP …

#37: Fallacies of distributed computing

March 22nd, 2021


Fallacies of distributed computing are a set of myths we believe, when designing complex systems. And what is a distributed system? Well, if your application is split into hundreds of microservices, it’s distributed. Or …

#36: Microservices architecture: principles and how to break them

March 16th, 2021


Microservices are contrasted to a monolith. Single, large application that implement the whole system. Typically hard to understand, develop, test …

#35: Reactive programming: from spreadsheets to modern web frameworks

March 2nd, 2021


To understand what reactive programming is, let’s contrast it to imperative programming. Imperative programs can be read top-to-bottom, with occasional jumps. Jumps are if statements, loops and procedure calls. Program …

#34: SQL joins

February 22nd, 2021


In relational databases, data is kept in relations, commonly known as tables. Simplifying, when data is normalized, it’s not duplicated. For example, when storing books and authors, you don’t keep an author’s name next …

#33: OAuth 2.0

February 16th, 2021


OAuth 2.0 is a standardized authorization protocol. In this episode, I’ll explain just one use case of it: the authorization code flow. It allows …

#32: (Cryptographic) hash function

February 8th, 2021


Sometimes you need to split arbitrary objects into a fixed number of groups. For example, storing a record into one out of many database nodes. Or …

#31: Redis

February 1st, 2021


Redis is quite a versatile NoSQL, key-value database. Or in-memory cache. Or pub/sub broker. With transactions, stored procedures and fast replication. It’s quite universal. Anyway, the main use-case for Redis is …

#30: Linear Regression

January 18th, 2021


Linear regression is one of the simplest machine learning algorithms. But also quite useful. It takes a bunch of existing, known observations and …

#29: Time synchronization

January 12th, 2021


Clocks are important to computers. Computers need to order events in a way understandable to humans. Every computer has a bunch of internal counters, like CPU ticks. But they only work within one machine. We need a way …

#28: Event sourcing

January 5th, 2021


Event sourcing is an alternative technique of storing business data. Rather than updating a single database record, every change is captured in an immutable, append-only log. We never overwrite existing data. Instead, …

#27: Proof-of-work algorithm in blockchain

December 29th, 2020


Let’s try to cheat the blockchain. If my wallet has exactly one bitcoin, I can’t spend it twice. Once it’s written into an immutable blockchain,

#26: Blockchain

December 22nd, 2020


Blockchain is a technology used for storing data without a central database. Data is organized in an ever-growing list of blocks with each block …

#25: High-frequency trading

December 14th, 2020


According to some estimates, even half of the trading volume in the American stock exchange is generated by computers. Specifically, computer …

#24: Service discovery

December 8th, 2020


In the old days an application consisted of a monolithic backend and a database. Once they were deployed their location never changed. So the only …

#23: Garbage collection

November 30th, 2020


Creating new objects, arrays or strings is so straightforward that we often forget what happens underneath. And I don’t mean trying to figure out what this refers to in JavaScript objects. I mean: memory management. On …

#22: Moore's Law

November 23rd, 2020


It's a common misconception that Moore's law is dead. That's because many believe it's about the speed of a CPU. But in reality Gordon Moore meant the number of transistors, not the clock frequency. And also, it's now …

#21: SSE and WebSockets

November 3rd, 2020


HTTP is historically request-response-driven. This means a server is idle as long as no-one asks it to do something. Typically fetching data or accepting some form. In reality, we’d often like to receive data from the …

#20: Chaos engineering

October 26th, 2020


We tend to focus on testing happy paths and expected edge cases. But how do you make sure that your system can survive minor infrastructure and network failures, as well as application bugs? Especially in microservice …

#19: GraalVM

October 19th, 2020


GraalVM is a set of tools that aim to improve the performance and interoperability of Java Virtual Machine. Taking advantage of GraalVM not only …

#18: JIT - Just-in-time compilation

October 12th, 2020


Source code can then be executed in two ways. Language implementations in general either interpret or compile it. In order to run an interpreted program, you need one extra binary: an interpreter. Interpretation is …

#17: BPM: Business process modeling

October 6th, 2020


[...] All of this complexity is somewhat hidden with BPM framework. First of all the process is first drawn. Using a special notation known as BPMN. This is actually quite natural. You use arrows to show how insurance …

#16: Akka

September 22nd, 2020


Akka is a toolkit for building highly scalable, concurrent applications. It's written in Scala and based on the ideas from Erlang. Its approach to …

#15: Mutation testing

September 14th, 2020


Imagine I wrote a script that takes your codebase and removes a random line. Fairly simple. Or maybe some more subtle change, like replacing plus with minus operator? Or switching `x` and `y` parameters with each other? …

#14: Static, Dynamic, Strong and Weak Type Systems

August 31st, 2020


When choosing or learning a new programming language, type system should be your first question. How strict is that language when types don't really …

#13: Cassandra

August 18th, 2020


Cassandra is an open-source NoSQL database. It's heavily optimized for writes, but also has intriguing read capabilities. Cassandra has near-linear scalability. In terms of CAP theorem it favours availability over …

#12: Continuous integration, delivery and deployment

August 11th, 2020


Typically, more than one developer is working on the same codebase. How do they share their work? The simplest approach is a common Dropbox folder. …

#11: MapReduce

August 4th, 2020


MapReduce is a programming model for processing large amounts of data. It works best when you have a relatively simple program, but data is spread …

#10: HTTP protocol

July 27th, 2020


HTTP protocol is fundamental to the Internet. It's a simple request-response protocol where the request is initiated by the client, typically a web …

#9: Retrying failures

July 21st, 2020


I find it quite fascinating how many failures in complex systems could be avoided if we simply... tried again. So how so you retry effectively, so …

#8: Kafka's design

July 14th, 2020


Kafka is not a message broker. However, it can be used as such very effectively. Instead, I'd like to think about as a very peculiar database. A …

#7: Speed of light

July 6th, 2020


Speed of light is not as abstract to us, software engineers, as you might think. If you are deploying to the cloud or if you want to squeeze every …

#6: Little's law

June 30th, 2020


Little's law is an astounding equation that's dead simple, yet it can bring an amazing insight into what your distributed system is capable of.

Read more:


#4: Serverless

June 8th, 2020


Read more:


4th edition of the newsletter, apart from transcript, contains GraphQL scalability tricks, enjoy!

More resources:

* AWS Lambda:

#3: GraphQL

June 2nd, 2020


Read more:


More resources:

  • Official GraphQL website:

#2: Service Mesh

May 26th, 2020


Notable implementations of service mesh:

More details:
* What's a service mesh? And why do I need one? (

#1: Circuit Breaker

May 12th, 2020


Circuit breaker is a design pattern that prevents cascading failures in distributed systems. More details: and

#0: Meta

April 27th, 2020


I explain software development in no more than 4 minutes and 16 seconds.

Notifications of new episodes:

User voice: suggest topics:

Loading ...

Listen to Around IT in 256 seconds


A free podcast app for iPhone and Android

  • User-created playlists and collections
  • Download episodes while on WiFi to listen without using mobile data
  • Stream podcast episodes without waiting for a download
  • Queue episodes to create a personal continuous playlist
RadioPublic on iOS and Android
Or by RSS
RSS feed

Connect with listeners

Podcasters use the RadioPublic listener relationship platform to build lasting connections with fans

Yes, let's begin connecting
Browser window

Find new listeners

  • A dedicated website for your podcast
  • Web embed players designed to convert visitors to listeners in the RadioPublic apps for iPhone and Android
Clicking mouse cursor

Understand your audience

  • Capture listener activity with affinity scores
  • Measure your promotional campaigns and integrate with Google and Facebook analytics
Graph of increasing value

Engage your fanbase

  • Deliver timely Calls To Action, including email acquistion for your mailing list
  • Share exactly the right moment in an episode via text, email, and social media
Icon of cellphone with money

Make money

  • Tip and transfer funds directly to podcastsers
  • Earn money for qualified plays in the RadioPublic apps with Paid Listens