Dogma -- One of The Pitfalls of Engineering Leadership

In the tech industry our leaders are held in high regard and the successful ones have their stories told and are imitated by many. Due to their success, the style of leadership is not necessarily questioned; a dangerous pattern.

In this post I'll discuss one of the recently popular such styles of leadership: Dogmatic Leadership.

My Infrastructure

I have a fairly complicated setup for all of my personal infrastructure and I believe documenting it here may push me to make it better.

Machines:

  • Primary Server / Workstation
    • 12/24 Xeon with 64GB ram, single 1TB SSD
  • NAS
    • AMD FX6300 (6/6 @ 3.5GHz) with 8GB of ram, 4 2TB HDDs in a ZFS pool (RAIDZ)
  • Supermicro Router
    • Intel Atom D525 (2/4 @ 1.8GHz) 2GB ram, 32GB storage
  • Raspberry Pi 3 B+
  • Raspberry Pi 1 B
  • Several remotely hosted virtual private servers

Network

All network traffic is managed by the Supermicro router running PF Sense. PF Sense routes incoming traffic, segments internal networks, and is a convenient way for me to block some security cameras I have from accessing the web (I want them as a backup for insurance, don't really want 24/7 streams of my house sent to the web).

Hotfix Engineering

Software has sped up timelines of projects across virtually every industry. With that new power, many businesses see opportunities that weren't there in the past. However, with timelines sped up and a lower bar into engineering for software, some key elements of engineering are at times being ignored.

Boeing's 737 Max was designed to be an upgrade to the 737 with a new engine to compete with the new update to Airbus A320, entitled 'A320 neo'. A primary selling point of the A320 neo was to provide an upgraded plane without requiring additional training for the pilots. The 737 Max line, however, required structural changes to utilize the new engines; this would alter the performance of the plane and require additional training. Boeing's solution to this: An software augmentation system (the Maneuvering Characteristics Augmentation System, MCAS) to adjust the flight controls to feel like the original 737. If the 737 Max line handled similarly to the original, pilots were to be able to fly it with little extra training and Boeing would have a strong competitor to match the A320 neo. In producing this plane, Boeing would start down a path that would take nearly 350 lives.

The helloAudio Store

For this application a large portion of the state is what would be stored as a project file on local machines. In this application, that file can be stored in a database as JSON, which can be quickly parsed when it is retrieved from the server. During runtime, this state must be watched to update the DOM when necessary. As this project may become quite large and complex, it requires functionality for observing specific elements for changes.

To handle all of this functionality, I developed ts-quickstore; a state management library written in typescript which provides a centralized place for this state to be held and provides functionality for it to be observed. It is available on npm and I have published the source on my github. In this post I'll go over how I designed it, why, and touch on how it's used.

Taking Advantage of Modern CPU Advancements

This is a part of a series of posts that follow the development of a side project I've been working on called HelloAudio, an in-browser multitrack audio editor. The project is primarily for exploring thoughts I've had on technical implementations. As these pieces come to fruition I am writing about them here.

Taking Advantage of Modern CPU Advancements

Over the past several years processor clock speeds have not improved much. The Pentium 4 in 2004 had a base clock speed of 2.4Ghz compared to the Ryzen 2700X at 3.7GHz or the i9 at 3.6GHz both released in 2018, 14 years later. That's only 150% improvement over nearly a decade and a half. Obviously the important thing to note here is core count. With 8 cores now being standard that rate of improvement is still substantial. However, scaling with cores does not come as easily as scaling with processor speed.

The following are charts of the base clock, memory bandwidth, and core count of Intel processors of the past several years. As described above, the base clock and bandwidth have hardly moved, but there have been significant improvements in core counts.