Cover art for podcast Around IT in 256 seconds

Around IT in 256 seconds

96 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

#95: SQLite: the most ubiquitus database on the planet. And beyond!

January 23rd, 2023


SQLite is by far the most common SQL database ever deployed. Are you lsitening to this on iPhone or Android device? It runs SQLite. Or maybe through a web browser? Chrome, Safari, Firefox, Opera and Android Browser all …

#94: Scala: language with academic background and huge industry adoption

January 16th, 2023


Scala is a programming language running on the Java Virtual Machine. It’s statically typed, and you can use it both as functional and object-oriented language. Even at the same time. The functional side of Scala …

#93: K-means clustering: machine learning algorithm to easily split observations into multiple buckets

January 11th, 2023


K-means clustering is an algorithm for partitioning data into multiple, non-overlapping buckets. For example, if you have a bunch of points in …

#92: Clojure: a languages that will change the way you think about programming

November 28th, 2022


Clojure is a dynamically, strongly typed programming language. It’s a dialect of Lisp running on the Java Virtual Machine. Lisp is 6 decades old and …

#91: Asynchronous communication: loose coupling in distributed systems

November 21st, 2022


There are two main ways to communicate between components in your distributed system: synchronous and asynchronous. Synchronous communication is like making a phone call. The system on the other side must be present and …

#90: Mastodon: next-generation, open source social network

November 15th, 2022


After many dramatic events around Twitter lately, many people, including myself, began experimenting with Mastodon. Superficially it’s an open-source clone of the former that anyone can deploy and host. However, once …

#89: RabbitMQ: A proven message broker for asynchronous communication

October 12th, 2022


RabbitMQ is a message broker, allowing asynchronous communication in distrubuted systems. The key advantages of RabbitMQ include: 15 years of open source history, battle proven Erlang implementation and support …

#88: SLI, SLO and SLA: a number, a threshold and a legal document respectively

October 3rd, 2022


Many people, when asked about SLA, simply shout 99%. The correct answer to that question is probably a long, boring PDF, written by lawyers. Yes, SLA is a legal obligation. Not a metric or a number. You probably meant …

#87: Artificial neural networks: imitating human brain to solve problems like humans

September 27th, 2022


An artificial neural network is a computer algorithm somewhat inspired by our brains. Superficially, our brain is a network of neurons connected with …

#86: Proof of stake: how to cut global energy usage by 0.2%

September 19th, 2022

p>A few weeks ago Ethereum blockchain moved from proof-of-work to a proof-of-stake algorithm. This step alone reduced global energy consumption by 0.2%. It’s as much as an energy usage of Austria. At this point, …

#85: Genetic algorithm: natural selection helps to solve coding problems

September 13th, 2022


A genetic algorithm is a heuristic approach to solving complex computational problems. This includes various optimizations, especially around …

#84: Non-fungible token (NFT): digital, decentralized art market

August 29th, 2022


Non-fungible tokens, NFTs for short, are financial instruments implemented on top of the blockchain. They can be bought and sold, just like …

#83: Real-time bidding: how online tracking helps serving ads

August 23rd, 2022


We all know this feeling. You search for a hotel in Paris and you keep getting ads for hotels and flights for weeks to come. Or something even scarier. You visit a blog post highlighting the first symptoms of …

#82: MongoDB: the most popular NoSQL database

August 16th, 2022


MongoDB is a NoSQL database. Precisey speaking, it’s a document-oriented database. It stores arbitrarily complex key-value objects. For example, in a single Car object you can store as much information as you want. Not …

#81: Quarkus: supersonic, subatomic Java (guest: Holly Cummins)

August 5th, 2022


Quarkus is supersonic, subatomic Java. What does that mean? It means it’s Java, but really, really small. And really, really fast. Quarkus is a runtime framework which gives you access to programming models you’re …

#80: Ethereum: a distributed virtual machine for exchanging money and bored apes

July 4th, 2022


Ethereum is a network of computers with no central trusted authority. They achieve consensus by running computation-intensive algorithm, known as proof-of-work. The agreed state is added to an append only ledger, known …

#79: QUIC: what makes HTTP/3 faster

June 30th, 2022


QUIC can be thought of as the third fundamental protocol of the Internet. Next to UDP and TCP/IP. Let’s talk a little bit about these two. They both …

#78: Stuxnet: computer virus that you can admire

June 20th, 2022


Stuxnet was probably one of the most sophisticated pieces of software ever built. I can easily imagine a Hollywood movie about it. A computer program …

#77: DDoS: take down a server, one request at a time

June 13th, 2022


Denial-of-service attack tries to take down a server by sending specially-crafted requests. The simplest form of this attack is just sending a lot of requests in a short period of time. But more sophisticated methods …

#76: 12th Factor App: portable and resilient services start here. Part 8-12/12

June 6th, 2022


In part 2 of the Twelve-Factor App, we’ll explore the second half of the principles. Be sure to listen to the previous episode as well. We still have only four minutes, so let’s go!

Read more:

#75: 12th Factor App: portable and resilient services start here. Part 1-7/12

May 31st, 2022


Twelve-Factor App is a set of design guidelines defined by Heroku. These guidelines are best suited for cloud-native, portable and resilient services. In this episode, I’ll explain the first seven principles. I have …

#74: SOAP: (not really) Simple Object Access Protocol

May 16th, 2022


SOAP, formerly known as Simple Object Access Protocol, is a messaging standard. SOAP is very broad and general. Technically, it can …

#73: Neo4j: all your data as a graph?

May 10th, 2022


Neo4j is a NoSQL database engine. What makes it different is the unusual data model. In Neo4j everything is modelled as a graph. A graph is a …

#72: React.js: library that won frontends?

May 6th, 2022


React.js is a JavaScript library for building dynamic user interfaces. React applications are built on top of reusable components. Components …

#71: Erlang: let it crash!

April 26th, 2022


Erlang is a programming language designed for highly scalable, fault-tolerant systems. Its primary use case used to be telecommunication. But these …

#70: CRDT: Conflict-free Replicated Data Type (guest: Martin Kleppmann)

April 12th, 2022


Hello everyone! My name is Martin Kleppmann. I’m a researcher at the University of Cambridge. And I would like to tell you briefly about …

#69: DevOps: not a job position, but culture and mindset

February 14th, 2022


DevOps is a movement to bridge the gap between developers and operations teams. Traditionally, these two groups were separate and rarely interacted with each other. Developers didn’t quite understand how software is …

#68: ACID transactions: don't corrupt your data

February 1st, 2022


Transactions in SQL databases are rock-solid. By reading and modifying data within a transaction we limit the risk of data corruption. Actually, …

#67: Version control systems: auditing source code, tracking bugs and experimenting

January 25th, 2022


Version control systems, like git, serve two purposes. First of all, they allow collaborating on the same code by multiple developers. Collaboration …

#66: Aspect-oriented programming: another level of code modularization

January 18th, 2022


DRY, or don’t repeat yourself is a common principle in pSpring AOP riddlerogramming. That’s why we invented functions and objects. But some sources of duplication are really hard to get rid of. Well, sometimes it’s even …

#65: Zero Downtime deployment: If it hurts, do it more often

January 10th, 2022


Remember the days when deploying a new version of your application required downtime? If your application is particularly important, you might have …

#64: TypeScript: will it entirely replace JavaScript?

January 3rd, 2022


TypeScript is a programming language, a superset of JavaScript. This means any valid JavaScript program is also valid TypeScript. But not vice-versa! TypeScript adds a ton of features, addressing the shortcomings of …

#63: Logging libraries: auditing and troubleshooting your application

December 27th, 2021


You can’t look at your application all the time. Instead, it should leave some sort of persistent trace. Such an audit log can be examined later on. …

#62: Object-relational mapping: hiding vs. introducing complexity

December 20th, 2021


Object-relational mapping, ORM for short, simplifies access to relational databases. Such frameworks help with developing applications without writing SQL. SQL was supposed to be easy to use for non-programmers. That’s …

#61: Spring framework: 2 decades of building Java applications

December 15th, 2021


Spring framework is probably the most popular and most successful application framework for Java. Writing a server or a web application before Spring …

#60: Haskell: purely functional and statically typed programming language

December 7th, 2021


Haskell is a purely-functional programming language. It is also statically and strongly typed. Haskell takes these characteristics to the extreme. For example, doing any input/output is considered impure from a …

#59: How compilers work: from source to execution

November 29th, 2021


A compiler is an application that turns text into an executable program. It’s quite extraordinary how much work these complex pieces of software are doing. Pretty much every compiler works by executing several phases. …

#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