Eyas's Blog

Occasional musings on software development, tech, the Middle East, and anything else.

My Journey Through Tech Volunteering: Anticipation, Passion, Burnout, and Looking Ahead

I had been working in New York City for just over a year when I sat down at one of my favorite cafes in my neighborhood to write a personal journal entry. I gave it the title "On the crossroads between goal-oriented and process-oriented" and I wrote down stream-of-consciousness reflections on my life, career, and how I wanted to do things differently. It was October 2015, and I had finished…

Read more →

Human Readable Test Data

One of the most transformative pieces of wisdom I've gotten in my career is Titus Winters 's ToTW #122 on test dataflow clarity. The Tip of the Week (ToTW) series offers advice focused on C++. Like Testing on the Toilet , which offers advice and best practices for software engineering at Google generally, it has become a fixture within the engineering culture, frequently cited in code reviews…

Read more →

In Search of Better Loading and Error-handling in Angular

For many, Reactive programming seems like a conceptually elegant approach that falls apart the moment you try to do any serious programming. When adding essential error handling, refreshable state, etc. into an application, many folks see their codebases move further from the promise of clean, elegant reactive transforms. It doesn't have to be this way. While I've argued before for cleaner display…

Read more →

Data-Oriented Architecture

There's a little-known pattern in software architecture that deserves more attention. Data-Oriented Architecture was first described by Rajive Joshi in a 2007 whitepaper at RTI , and again in 2017 by Christian Vorhemus and Erich Schikuta at the University of Vienna in this iiWAS paper . DOA is an inversion of the traditional dichotomy between a monolithic binary and data store (monolithic…

Read more →

Unexpected Lessons from 100% Test Coverage

The conventional wisdom of the software engineering community is that striving to 100% test coverage is a fool's errand. It won't necessarily help you catch all bugs, and it might lead you down questionable paths when writing your code. My recent attempts at 100% test coverage showed me the answer is much more subtle. At times I was tempted to make questionable code changes just for the sake of…

Read more →