Dr. StrangeCode, or How I Learned To Stop Worrying and Love the Makefile

Reflecting upon the past, I recall a period when the mere utterance of ‘Makefile’ would inspire a chill, a sense of unease. I cleverly avoided it, favoring the modernism of other build tools, the simplicity of their abstractions, the comfort of not having to grapple with a seemingly ancient entity. However, the echo of ‘make’, persistent and enduring, refused to fade into obscurity. As the echoes grew louder, I found myself at a crossroads. [Read More]

The Quick and The Dead: AI Pressures Reshaping Teams and Architectures

It was once hyperbolically suggested that cities would be built around Segways, a claim that was absurd given the lack of an overarching, essential need for such a shift. When we pivot to the realm of software development, we encounter a compelling counter-narrative. Teams and system architectures are presently being overhauled to incorporate AI as a significant player in the developmental landscape. This transformation is not capricious, but rather a direct response to a dire need: a massive drive to cut development costs and create software that is more attuned to user needs. [Read More]

Introducing the Rivera Matrix

Introducing the Rivera Matrix
The coding world can be challenging, with developers constantly wrestling with a mounting to-do list and limited time. It’s often necessary to decide where to focus attention and resources. The Rivera Matrix, proposed by Henry Rivera, a Team Lead at Digital Turbine, provides a practical solution to this predicament. Drawing inspiration from the Eisenhower Matrix, the Rivera Matrix presents a unique perspective on coding, categorizing tasks based on their frequency of interaction with humans and computers: [Read More]

Language Sprawl Considered Harmful

It’s a common scenario in software development: a new project is starting up, and the team is faced with the decision of which languages and tools to use. While it might seem like a good idea to let every team choose their own technologies, the long-term costs of this approach can be significant. One of the main drawbacks of letting every team choose their own languages and tools is the lack of flexibility it creates within the organization. [Read More]

Lie 3: Software Is the Platform

Truth: hardware is the platform “Software does not run in a magic fairy aether powered by the fevered dreams of CS PhDs” – Mike Acton (2014 - CppCon) Instruction sets: Different hardware architectures have different instruction sets, which are the set of basic operations that the processor is capable of performing. For example, an x86 processor has a different instruction set than an ARM processor, so code that is written to run on an x86 processor may not be compatible with an ARM processor without modification. [Read More]

The 3 Big Lies Introduction

The Lies Code is more important than data. Code should be designed around a model of the world. Software is a platform. Data-Oriented Design (DOD) is a software development approach that focuses on optimizing data structures and algorithms for performance, rather than abstractions or code size. In a 2014 talk at CppCon, Mike Acton identified “three big lies” that can lead to suboptimal design decisions: the assumption that abstractions are free, the belief that memory is always slow, and the idea that smaller is always better. [Read More]