Software designers, not engineers: An interview from alternative universe
A fictional interview exploring an alternative universe where software creation is viewed as a design discipline, not engineering, and its cultural implications.
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.
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.
A guide to effective naming in code, covering principles for clarity, precision, and consistency to improve software design and maintainability.
The article outlines four core principles for building quality software: robustness, reliability, stability, and simplicity.
Explains how to categorize and manage stable vs. volatile dependencies in front-end architecture for better design.
Advocates for writing 'honest code' through practices like referential transparency and explicit dependencies to improve software understandability and maintainability.
The article critiques modern OS design, arguing that Windows, macOS, Android, and iOS now prioritize vendor interests over user needs, coining the term 'vendor-purpose OS'.
A simplified explanation of Object-Oriented Programming (OOP) concepts like classes, objects, abstraction, encapsulation, inheritance, and polymorphism using real-world analogies.
A guide to implementing enum-like behavior in PHP before PHP 8.1, using polymorphism for type safety and value-specific logic.
A developer questions the pursuit of 'clean code' after refactoring for DRYness makes the codebase harder to understand.
Explains the Open-Closed Principle (OCP) from SOLID, demonstrating its implementation in JavaScript/TypeScript with code examples.
Explains the Single Responsibility Principle (SRP) in JavaScript with code examples, part of a series on SOLID design principles.