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…

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…

Just going to Safeway, need anything?

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.” 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’ sports teams and demanding gender…

Stop, you’re making my ribs ache. You’re obviously one of those SJW people, you probably use “they” instead of “he” or “she,” and you believe, despite all the evidence to the contrary, that people strive to be unique instead of struggling to conform as hard as they can.

Anyway I wasn’t talking about the Japanese people. I was talking about their language. Japanese is ill-suited to expression of logical thought or scientific ideas, which is why pretty much every technician, engineer, and scientist in Japan speaks English, and conferences of all three are held in English.

The Japanese language is centered on deference, on status, e.g. “how low do I bow,” whereas this crap is of little importance in English. Whether talking to an ant or a president there is only “you.”

Seriously man get off the diversity kick and grow a brain.

So only nonwhite people use bad English? And you call me racist?

Christ you need help. Listen up.

There is a religious group in the USA called the Quakers; the live in a 19th century lifestyle without cars, electricity, or any of the conveniences we take for granted.

And they still use the deprecated pronoun thou, which is equivalent to du in German or tous in French, tu in Spanish, ты in Russian. Problem is, they don’t say “thou” in the nominative, they say “thee,” which is the direct object, what in other languages we call the accusative case.

It’s in the second person so it’s not “me” but in the first person it would be.

They’re using it wrong. And they’re white.

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…

Photo by Austin Distel on Unsplash

Take control of the interview

Interviews are Bidirectional

When we go for a job interview we tend to be deferential and obsequious. We’re there to get a job, for money, for our careers. We try to come across as constructive and bring no negativity to the discussion.

We don’t talk about previous jobs, nor mention that we quit because our managers were jerks and liars. We obediently do whatever the interviewer says; balance a beach ball on our noses, write code on a whiteboard.

And almost nobody realizes that the interview goes both ways; yes they are going to pay you money if they hire you, but on…

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