Article Overview

Table of Contents
  1. Software Architecture
    1. Structure: Architectural Patterns
    2. Process: Information Flow
  2. Day-to-Day Coding
    1. Programming Principles
    2. Design Patterns
  3. Solopreneurship and Indie Development
  4. Behind the Scenes
    1. The Archive
    2. TableFlip
  5. General Things About Programming and Stuff

Software Architecture

I tend to think about two parts of the architecture that depend on each other: “structure” and “process”. The former is about statical snapshots and most patterns; the latter is about the design of information flow, control flow, and message passing.

Structure: Architectural Patterns

Process: Information Flow

Day-to-Day Coding

Learning to do things in Swift, the nice way:

Programming Principles

Design Patterns

I argue that design patterns are not software architecture. They are practical for your daily work, and to express the information exchange between a couple of objects in a succinct way. But they cannot inform you about the structure of your application, why and how to decouple modules, or what a module is in the first place. That’s higher-level thinking you need to do in a different kind of mind-set.

Solopreneurship and Indie Development

Behind the Scenes

The Archive

TableFlip

General Things About Programming and Stuff