How to Think Like an Engineer If You're Not an Engineer
Ten years of being married to a "Husbot" and why dating (and marrying) an engineer is a very good idea, actually.
//Warning: The first part of this is rather personal, and discusses my dating life, including allusions to sex. If you don’t enjoy reading that sort of thing, you might want to skip it.//
Ages ago, when I was dating and living in Washington, DC, I met a lot of interesting and brilliant-but-weird guys. That’s not totally surprising. In DC, like NY or SF (or probably anywhere with a wide diversity of transplants, immigrants, LGBTQ+ folks and highly-educated “knowledge workers”), the culture tends to skew weird & smart. For example, the latest ACS Census Data identified the DC Metro Area as having the 5th highest percentage of people with advanced degrees, and the 6th highest of men with advanced degrees.1 San Jose (which along with Santa Clara, Sunnyvale and Mountain View is ‘Silicon Valley’), ranks 4th in advanced degrees, and San Francisco 14th. Anecdotally, all of these places also rank high in weirdness. People are into some weird shit and hang in affinity groups you won’t see in say, middle America. For example, you’re much more likely to find a rationalist furry polycule group house in DC or SF than you ever will in say, Omaha or Topeka.
This combination of weird + highly educated tended to draw two different types of guys into my life— engineers (software, hardware, electrical, etc.) and lawyers. As a struggling but disillusioned lawyer myself, I found the latter group to be insufferable, egotistical jerks on average. Most had impressive jobs at big law firms or worked for the government in some legal capacity. Most also had a ton of ambition and zero work-life balance. This translated to lots of boring dates, where the guy would bloviate about his job, favorite sports team, or his connections/wealth/car, express very little (or no) interest in me, and generally be a dreadful bore. These sorts also tended to be abysmal, inattentive lovers.
But I also drew in a lot of engineers. Engineers also have eccentricities, of course, and I dated more than a few who were very much on the autism spectrum. Most had the typical sorts of hobbies you associate with engineers & like-minded nerds (puzzles, board & video games, anime, robotics, reading).2 But, unlike the lawyers, when these dates talked about their work, it tended to be far more interesting to me, and most were elated to dig into the meatier technical bits of their jobs, which is fun. Outside of occasionally being boring, most did not suffer from the other pitfalls I mentioned above.
While I was only in DC for 5 years, I dated a lot. While I never found ‘the one’ (or, as Dan Savage would say, the 0.73 that you round up to ‘the one’), in DC, I did nail down what I was looking for in ‘the one’. Namely, someone who is:
even-keeled and patient;
able to manage stressful situations well;
quieter and more introverted and attentive than me;
really interested in learning and breaking things down to understand how they work (this often includes understanding their fellow squishy meat bags);
able to think about things in a step-by-step, methodical fashion; and
a focused problem solver who enjoys difficult puzzles.
Now, patience is not exclusive to engineers, but I do find that the types of guys who go into critical-systems or high-impact engineering roles also happen to handle stress, difficult & complicated situations, and volatility well. They tend to break problems down rather than getting overwhelmed, and solve puzzles to completion. To use a video game analogy, they beat the final boss, complete the whole game, and frequently go for the bonus achievements.
I need a patient man because I am a rather impulsive, passionate, mildly obsessive, and difficult creature prone to occasional bouts of pessimism and fatalism. In other words, I rarely complete all the levels of the video game, and am more likely to throw my controller across the room after battling the boss and losing too many times.
As an aside, I met John Hodgman at a book signing once in DC, and he offered the best summary of my personality I have ever received. After reaching the front of the line and making some offhand typical Carey quip, he took one look at me and scribbled the following in my copy of The Areas of My Expertise:
Ask anyone who knows me, and they will nod vigorously.
Husbot Teaches Me How to Think Like an Engineer
DC was a difficult time and place, and I was happy to leave, but I will say I did learn a lot - about myself, life, adulting, and the type of person I should partner with. I left DC in mid-2011, and eventually made it to the Bay Area in California by March 2012. A few weeks later, I met my husband.3
Ever since I completed law school, I’ve thought of myself as an analytical thinker. As I tell anyone who aspires to become a lawyer, law school does not teach you the law; rather it teaches you how to break problems down into discrete parts, analyze those parts, develop an argument (with facts, reason, ‘precedent’, and wordplay), and present your solutions to the legal problem at hand in a persuasive way. In short, law school teaches you how to think like a lawyer.
But being married to an engineer (or at least, being married to David) has led me to realize that legal v. engineering analytical processes are very, very different. Let me explain with an example.
In 2013 or so, I had notions that I wanted to learn Python, largely so that I could write small scripts to do many of the menial tasks for work that I thought could be easily automated. I enrolled in an online Python course, and David was extremely supportive, and offered to help tutor me. In general, I understood the core ideas behind many programming concepts (functions, or if/then statements, or lists, for example), but struggled to understand how to apply that knowledge to anything I actually wanted to do.
At first, I figured I just had a garbage memory and couldn’t remember the magic incantation (syntax) required to make the computer go beep-boop in the way I wanted it to. David would patiently try to help me, but even his deep well of patience would sometimes run dry — or more likely, I perceived that it ran dry, as I grew ever more frustrated by consistently failing to get whatever Baby’s-First-computer thing he was trying to help me understand. These sorts of sessions usually ended pretty badly, and eventually I’d give up on Python and move on, going back to the things I was actually good at.
And then I’d forget, and decide I needed to learn Python (or R, or C, or whatever) again. Or, I’d ask him to ‘help’ me write a program. We repeated this dance a number of times over the years, and most of the time, the same outcome would occur. I still didn’t grok whatever the core concept was, and would leave frustrated. And then one day, things changed. I had a particular program I wanted to create and he’d offered to help. I described it to David as something along the lines of: “I want to write a program that does a <thing> to some <data I have over here> and spits out a <result> in this other <thing>.” He looked at me bewilderedly, and then a galaxy brain moment. He replied: “I am Husbot and Husbot does not compute.”
Hus…what?
I need to explain Husbot. Husbot is David if David were a computer. Husbot is “dumb” in the sense that he comes with no priors or understanding of my intent or ultimate goals. He is, in the parlance of computer science, a “stateless machine” - with no stored knowledge or reference to past interactions. To communicate with Husbot, I can’t just say "I want to write a program that does a <thing> ....” I need to explain, step-by-step how I want Husbot to behave and what I want him to do. I need to provide the exact instructions necessary at each point. Just like a computer. I could add more words to explain this, but you’ll get much more out of watching Josh Darnit’s brilliant YouTube clip where he asks his kids to write out instructions on how to make a PB&J sandwich. Darnit is Husbot in this example, and I am very much the son, especially at around the 4:18 mark. I feel you, kid.
What’s interesting about interacting with David-as-Husbot, is that it has forced me, like the kids in the video, to break things down to a level of detail that is likely very alien to most non-programmers/engineers. It’s a skill that routinely helps me to clarify my thoughts, explain difficult concepts to diverse groups, and even to obtain useful results out of ChatGPT. After all, if I can’t explain what I want to Husbot, there’s no way a really dumb system like a computer or an LLM is going to understand what I want. And most of the time even smarter systems (like clients and friends) won’t get me either.
Breaking things down also has other benefits - it allows you to evaluate what you’re trying to achieve at an instruction-by-instruction level. It allows you to ask “Does this thing make sense? Is this thing possible? Is it necessary?” For instance, to create that chart above, I had to work out the following:
Identify what data in the 2021 ACS survey I wanted (in this case, ‘Educational Attainment’ and ‘Metropolitan/Micropolitan Statistical Area’)
Save the data as a CSV (the volume was still too large to work with online).
Open the CSV in Excel.
Convert the rows to columns, and columns to rows (I wanted to filter based on percentages, and the layout provided by the initial data made this impossible).
Remove columns that weren’t relevant (e.g., details on high school graduates, deviation from mean details, female educational attainment, etc.).
Sort by largest to smallest under a specific column heading for men aged 25 years or older (which took some time to wrap my head around).
A whole bunch of steps to pretty things up (renaming columns, joining columns, color coding, etc.)
This took around an hour of thinking through and trial-and-erroring various different approaches and identifying the best tool to use to get the job done (FYI: It was not Power Pivot). For instance, a few of my initial attempts consisted of me trying to drill down just on a specific set of fields focused on male educational attainment. This proved nearly impossible because that field name is repeated both at the state and metropolitan area many, many times. Multiply that x 50 states and 50 metropolitan regions and … things get ugly quickly. It took me time to realize that the only way I’d achieve my goal is by swapping column and row fields. But thinking like an engineer and breaking things down helped me to figure out exactly where the failure point was.
I try to apply the engineering mindset to my daily life as often as I can, though like patience, it’s taken me awhile to level up these particular skills. Thankfully, I’ve got a patient, kind, and attentive supporter in my corner, always ready to help out and guide me towards getting to the next level (and maybe occasionally even helping me to beat the boss).
It’s with David’s support (both emotionally and financially) that I’ve been able to refocus my life towards writing. Without him, none of this would be possible, and I’m forever grateful and delighted that despite being 45-minutes late & nearly poisoning him on our first date, burdening him with ‘way too many cats’ (his words), goading him to move halfway across the world, and just being me, he still decided to stick around. <3
DC also ranks 5th in the nation for women with advanced degrees.
Though one guy was super into Lego, and he had an entire wall where he organized his Lego pieces into individual storage compartments, much like you would nails and screws.
NB: There’s a much longer meet-cute story I wanted to tell here, but this post is already getting long enough, so … content for another post.