Photo by Christina @ on Unsplash

We recognize them. Managers often don’t.

If you’ve never had this experience you have my envy. You’re on a development team and one of the developers does sloppy work and there is nothing you can do about it.

Time was when everyone in software from the first-day QA trainee to the executives had some experience at coding. That is long gone and now we have layers of methodology “masters” and managers who have never written a line, and who regard any and all complaints about others’ work as insubordinate and as personal conflicts, never considering the criticisms on their technical merits.

If I say that one…

Image from mendocycle

Help keep gigatons of plastic out of the environment

In the backpack that holds my gymnasium gear I carry a folded heavy-duty bag, a reusable grocery bag that I bought for the equivalent of about 35¢ at the grocery I sometimes frequent after I exercise. Most franchise grocery stores here in Vietnam sell these bags, but very few people use them.

Because they cost money.

Instead shoppers leave with a dozen or more plastic bags, many of them holding a single item. Most of these bags will end up in landfill and a lot of them will be throw into rivers, headed to the ocean, or even down storm…

I can only wonder why there is so much more agreement than disagreement with my article.

Misunderstanding, waste of time. But no rebuttal.

I'll console myself with the new synthesizer that my earnings from this one article have bought me. I bet you disagreed with Terrible Developer too; that bought me a new Moog.

Not holding my breath waiting for a substantive argument from you.

Photo by Mark Duffel on Unsplash

Stability is more important.

If the page load is a little slow, if the spinner spins a few seconds, people will forget it later when it speeds up later when a revision fixes the slowness. They will not forget crashes. Stable code is better than fast code, and don’t kid yourself that breaking the rules for speed doesn’t introduce instability.

It All Starts With Bad Interviews

Whether we are self-taught or come out of university with a computer science degree we all have our first contact with the industry in a whiteboard interview, where we will be told

  • by an untrained interviewer
  • to work in a ridiculously awkward session
  • standing…

Working backwards is just the beginning.

It’s actually elementary.

I do more upfront design than anyone I know; as a freelancer, I will turn down a client who wants me to work without a spec. At many companies, I’ve written the first design document in their history, and not all of them were startups.

And even with all this planning, it takes me less than a day into coding before I run into some consideration the design docs, mine or not, overlooked.

So writing the tests before the code, the foundation of TDD, guarantees that I will constantly be revisiting the tests to integrate the discoveries…

… and nobody is yielding ground


Long introductions are bad for reader retention.

So this is going to be rough, because anything that has aroused so much controversy needs some introducing.

I will state my own opinion upfront: returning from a function before its end is a bad practice.

Canonical Examples

A typical function or method performs a series of parameter checks or setup operations such as allocating a buffer, opening a file or network connection, each of which must be undone before exiting. These pseudocode examples are based on a C-like language, while much of the code shown here would be handled now by destructors and garbage…

If you feel the need to label 99.9+% of humanity as “cis” then you may have an axe to grind

I see it every day. Go to any social network and people are announcing that they just came out as “trans.” Their profiles include “they/them” as their referential pronouns of choice.

I read an article on here (not about gender issues) in which the writer referred to one of his professors at university and described him as “cismale.” So I checked his profile. Yup, “nonbinary.” The description is monstrously unnecessary; I can hardly think of any safer presumption than gender congruity.

As I write the Republican party is opening a new front in its failing culture wars, going after girls’…

Image from

Microsoft’s Interop Doesn’t Work

A Common Operation

You have a web site that delivers its payload to users as an Excel file. This is convenient and easy for users, they can use Excel or one of the substitutes like Google Sheets to import their data.

I am talking specifically about Excel files, but from the comments I have read the same issues described herein also happen with other Microsoft Office Interop packages.

So you read the documentation, install the Microsoft.Office.Interop.Excel NuGet package, create a class to write your data as a spreadsheet, being sure to add a using directive for the namespace. …

This is not software development. This is sports. Photo by Keith Johnston on Unsplash


Managers, developers, testers and writers


You will not see the word “team” much in this article. Software development is the work of collaborating individuals who work alone, when it is not the work of one person. Members of a team interact constantly; in software we meet to coordinate and then disperse and work alone. Any workplace that has developers in communication as they work is dysfunctional.

In the 32 years this writer has been paid to write code the industry has gone through many changes and frankly most of them, particularly in the last twenty years, have not been improvements. Wisdom has been lost, insights…

"It might not be as easy as you think"

—Prison guard to Mick Travis (Malcolm McDowell) as he leaves at the end of his sentence, O Lucky Man (Lindsey Anderson, 1973)

Beautiful writing, Steve, moving and heartfelt. You are without doubt a significant voice.

I am however reminded of Ukraine after the collapse of the Soviet Union, where 70 years of repression did nothing to stop the immediate resurgence of antisemitism, underground over three generations yet flourishing again.

And reminded also of the terrible steps back in the last four years where the liberation of America's beating Heart of Darkness…

Chris Fox

American Software Developer living in Vietnam. Classical musician (guitar, woodwinds), weightlifter, multilingual, misanthrope • XY

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store