J O H N R A . M E Posts

I’ve just closed my laptop after a full day of meetings — roadmap reviews, architecture decisions, a particularly spirited debate over boundaries of our capabilities. The kind of day where you talk little about code and write even less of it. I’ve spent over twenty-five years in this industry. I started writing code when hard drives were measured in megabytes (my brother yelled at me for consuming couple of kilobytes of memory on his brand new Seagate hard drive on his 286), when “the web” meant blinking text on Netscape, and when the height of programmer ambition was getting your *.bas program…

AI Tutorial

Why TDD? Test-Driven Development flips the usual workflow on its head: instead of writing code and then testing it, you write a failing test first, then write just enough code to make it pass, then clean up. The result is a growing suite of tests that document exactly what the code must do — and a codebase that is only as complex as the tests demand. We will build a classic toy app — a Magic 8-Ball (Github)— from scratch using this discipline. The Red → Green → Refactor Cycle Every increment of TDD follows three phases: Phase Goal 🔴…

JavaScript ReactJS Tutorial

I recently purchased a CyberPower CST135XLU Uninterruptible Power Supply (UPS) for my linux server, Orbi Wifi Router, and Synology NAS. However, I only need my Orbi running on UPS in the event of a power outage; the others don’t need to be running. With my Fios on a dedicated UPS and Orbi on this new UPS, I will be able to stay on line while I wait for the power to be restored. This means I need to setup Network UPS Tools (NUT) so that I can gracefully shutdown my Synology NAS and linux server – giving my Orbi extended…

Tutorial

Understanding context is essential in becoming an effective software engineer. It is not sufficient to possess deep technical skills. Understanding the context (business domain) you operate in provides the necessary background to build the right solution. It elevates the skill programmer to a value-added software engineer. It allows software engineers to ensure solution fit the situation, background, and purpose, thereby enhancing clarity and reducing the likelihood of misunderstandings. Misunderstanding will only lead to defects. By being mindful of the contexts, software engineer can navigate complex landscapes and build stronger, more meaningful solution. In the realm of building the right solution,…

Uncategorized

Confirmation bias – the tendency to discredit non-confirmative evidence, or to seek out (actively or subconsciously) primarily confirming evidence – is part of all of us. We all suffer from it, every day. As technologist, we could do better. We should always re-evaluate all the facts and not fall into the traps of our dogma/orthodoxy – what we see or want to see. Rather than reviewing all the facts, we too often hold onto our beliefs. Ask a front-end developer which library/framework should be used for a given project, it’s rarely followed by a question on what the requirements are.…

Rants