Software Development

Software engineering practices, design choices, and delivery habits that influence code quality, maintainability, debugging, testing, and change safety.

10 Coding Principles for Better Code Quality

Ten coding principles covering readability, coupling, testing, and maintainability.

Coding PracticesSoftware Quality

11 Steps from Junior to Senior Developer

Eleven career steps covering depth, ownership, communication, and judgement.

Career GrowthSoftware Engineering

Concurrency vs Parallelism

Concurrency for coordination and parallelism for simultaneous execution.

ConcurrencyParallelism

Linux Boot Process

Linux boot stages from firmware and bootloader to kernel, initramfs, and user space.

LinuxOperating Systems

Nine Types of API Testing

Nine API test types and the failure modes each one is meant to catch.

API TestingSoftware Testing

Imperative, Functional, and Object-Oriented Programming

Programming paradigms through state changes, pure functions, and objects.

Programming ParadigmsSoftware Design

Algorithms for System Design Interviews

Algorithms behind partitioning, ranking, scheduling, and distributed coordination.

AlgorithmsSystems Atlas

8 Programming Paradigms

Programming paradigms for state mutation, abstraction, data flow, and concurrent work.

Programming ParadigmsSoftware Development

Four Pillars of Object-Oriented Programming

Object-oriented programming pillars for modelling behaviour, state, and reuse.

OOPPrinciples

6 Load Balancing Algorithms

Load balancing algorithms for request distribution, affinity, and backend load awareness.

AlgorithmsLoad Balancing

Brief History of Programming Languages

Programming language evolution from machine code to modern abstractions.

HistoryProgramming Languages

10 Everyday Data Structures

Ten everyday data structures for lookup, ordering, traversal, and storage.

AlgorithmsData Structures

How C++, Java, and Python Work

C++, Java, and Python differ in where compilation, execution, and runtime work happen.

CompilersProgramming Languages

8 Standards for Software Developers

Core standards for transport, web APIs, data formats, identity, and security.

Software StandardsWeb Development

10 Software Engineering Books

Ten software engineering books on design, systems, debugging, and team practice.

BooksSoftware Development

Duplicate URL Control at Google Scale

Duplicate URL control with normalisation, fingerprints, and probabilistic deduplication.

Bloom FilterWeb Crawling

Big-Endian vs. Little-Endian

Big-endian and little-endian byte order in memory, files, and network protocols.

Computer ArchitectureData Representation

Blocking vs. Non-Blocking Queues

Blocking and non-blocking queue semantics for waiting, throughput, and contention.

ConcurrencyData Structures

Data Transmission Between Applications

Data transmission through serialisation, network transport, routing, and parsing.

Data TransferNetworking

6 Multithreading Design Patterns

Multithreading patterns for work queues, pooled workers, futures, and shared-state control.

ConcurrencyDesign Patterns

8 C++ Use Cases

C++ workloads where memory control, predictable latency, and hardware access matter.

C++Use Cases

Running C, C++, and Rust in the Browser

Browser execution of C, C++, and Rust through WebAssembly and host APIs.

PerformanceWebassembly

Java Collections Hierarchy

Java collections through interface contracts, ordering, and lookup costs.

Data StructuresJava

Programming Language Energy Efficiency

Programming language energy use through runtime cost, memory use, and workload.

Energy EfficiencyProgramming Languages

Full-Stack Development Roadmap

Full-stack development across browsers, servers, databases, and delivery pipelines.

Full Stack DevelopmentSoftware Development

Garbage Collection Fundamentals

Garbage collection through reachability tracing, generations, and pause trade-offs.

Garbage CollectionMemory Management

6 Common Server Types

Common server roles for HTTP delivery, mail, databases, files, applications, and proxies.

NetworkingServers