My IKEA clock, and software design
A software engineer draws parallels between the perfect, durable design of an IKEA clock and the principles of good software design.
A software engineer draws parallels between the perfect, durable design of an IKEA clock and the principles of good software design.
Explains how to use dependency injection with default parameters in JavaScript to create more flexible and robust functions.
A guide to writing unit tests for SwiftUI apps by decoupling layout from logic, enabling testable code without relying solely on UI previews.
Explores the benefits of an event-driven architecture over linear code when building a gamification system for a tech platform.
Argues that Java's pattern switches are a simpler, more modern alternative to the traditional Visitor design pattern for separating operations from object structures.
Argues for opinionated software design over excessive configurability, based on experience with an in-house framework.
Explains the concept of business logic in software development, using examples like a BMI calculator to distinguish it from other code.
Explores the complex decision-making process behind adding new features to the Java programming language, addressing common developer requests.
A fictional interview exploring an alternative universe where software creation is viewed as a design discipline, not engineering, and its cultural implications.
An analysis of the Go programming language's strengths, praising its simplicity, stability, and suitability for internet-scale software development.
Explains why boolean function parameters are often a code smell and suggests better design alternatives.
The article argues that successful tech alternatives succeed by simplifying and refining core ideas, not expanding on them, using examples like Alpine Linux, Go, and UTF-8.
A weekly roundup of iOS development insights, including career transition stories, CoreML braille recognition, testing templates, and software design advice.
A weekly roundup of iOS development insights, including career transition stories, CoreML braille recognition, testing templates, and software design advice.
Argues that encapsulation, not reusability, is the primary purpose of functions in programming, using a budget summary example.
First part of a guide on improving software design skills using .NET and C#, focusing on design principles over data structures.
Explores why software becomes complex over time, focusing on the additive nature of feature requests and the lack of a strong constituency for simplicity.
Explores the historical origins of Object-Oriented Programming, tracing its roots from Sketchpad and Simula to Alan Kay's definition.
A developer's first week at Recurse Center, focusing on pair programming, analyzing PHPUnit's codebase, and planning a web-based command prompt project.
Argues that professional programming tools should prioritize utility and power over ease of use, accepting a steeper learning curve for long-term productivity.