Reflections on My Tech Career – Part 2

This is second and final part of the story of how my career as a software developer unfolded (part 1 is here). In this half I work at four different companies in the Seattle area, make my mark, and then retire.

Cavedog/Humongous Entertainment – 1997 to 2002

In 1997 my wife and I got annoyed with being so far from family (we were in Wisconsin, they were mostly in British Columbia) and we wanted to move to the west coast. This time I did a proper job search, talking to at least four companies in Vancouver and greater Seattle. I mostly interview pretty well and that is an important skill. A good job hunt requires a well written resume that reflects some actual achievements, the ability to interview well, and ideally some contacts. This time, as with ASDG and as with every future job, contacts were a critical part of getting the job. Continue reading

Posted in Investigative Reporting, Quadratic, Xbox 360, xperf | Tagged , | 18 Comments

Reflections on My Tech Career – Part 1

I’ve been lucky enough to have had a successful career as a software developer. Spanning six companies and thirty-seven years I’ve had the opportunity to work on ETW tutorial articles have been read over five million times.

I was recently explaining to a friend how I got my start in this industry and I decided that I should write it down, if only to clarify in my mind how it all happened. I don’t necessarily recommend my career path, but there may be other people out there for whom it is the right way to go. Or, more likely, perhaps there will be a few ideas in here that could inspire somebody’s career path or help them avoid mistakes. Continue reading

Posted in Programming | Tagged | 8 Comments

Finding a VS Code Memory Leak

In 2021 I found a huge memory leak in VS code, totalling around 64 GB when I first saw it, but with no actual limit on how high it could go. I found this leak despite two obstacles that should have made the discovery impossible:

  1. The memory leak didn’t show up in Task Manager – there was no process whose memory consumption was increasing.
  2. I had never used VS Code. In fact, I have still never used it.

So how did this work? How did I find an invisible memory leak in a tool that I have never used?

Continue reading
Posted in Investigative Reporting, Rants | Tagged , | 17 Comments

Acronis True Image Costs Performance When Not Used

Over two years ago I installed Acronis True Image for Crucial in order to migrate my data to a new SSD I had just purchased. It worked. I then left True Image installed “just in case”, and what harm could that possibly cause.

Well, funny you should ask.

I recently noticed that whenever I plugged or unplugged my external monitor Explorer.exe would consume a lot of CPU time – dozens of seconds of it. It was enough CPU time to make my computer noticeably sluggish until things calmed down which could take 15+ seconds. “That’s odd” is how most of my investigative reporting starts so I grabbed an ETW trace and drilled in. It didn’t take long to find the culprit.

Aside: I have worked with Acronis to help them understand this issue and they have provided a mitigation and have said that they plan to address the problem in the next release of their software. See “Workarounds and fixes” for details.

Continue reading

Posted in xperf | Tagged | 17 Comments

Google Maps Doesn’t Know How Street Addresses Work

(or actually they do, but they don’t use this knowledge effectively)

Update, April 26, 2025: the address fix for W 6th Ave is live, mostly. Going forward I wish that Google Maps would make it harder to get bad data into maps, I wish they would respond to feedback faster, and I wish they would make their estimates for when changes go live more accurate (two weeks versus 24 hours).

I was driving around Vernon, BC a few weeks ago and I asked Google Maps for directions to 3207 30th Ave. It confidently told me where to go but luckily my passenger noticed that it was actually directing me to 3207 34th Ave, four blocks north. Well that’s odd.

A few days later my cousin asked me (as the ex-Google still-nerd member of the family) if I could help with a Google Maps issue. The problem was that the address 138 W 6th Ave in Vancouver was being mapped at a location 2.4 km (that’s 1.5 miles or 12 furlongs) away from the actual location.

Continue reading

Posted in Rants | Tagged | 14 Comments

What this blog is about

I’ve recently told a few people that I write, that I have a blog, and then I try to describe what I write about. I’m kinda proud of some of the stuff that I’ve covered here on randomascii over the years but I struggle when trying to summarize it to a non-technical audience. So here goes:

I’ve got a few human interest stories such as 2017 video here) and warm weather snowman, how to part two).

But what about the investigative reporting, the revealing of hidden stability or performance problems (usually in Windows) that I’m particularly proud of discovering? What about the bug fixes that have happened because of my work? How can I share (brag?) about those to my non-technical friends?

I decided to try writing one-paragraph summaries of some of the stories that I’m most proud of, that made an impact, and which can just possibly be understood by non-experts. Here goes.

Continue reading

Posted in Quadratic | Tagged | 1 Comment

Find me on bsky

I used to really enjoy the other microblogging site but it became too much of a democracy-destroying disinformation hell site so I haven’t been there in a long time.

I’ve moved to bsky – I’m https://bsky.app/profile/randomascii.bsky.social. Follow me there for ranting on base 2 versus base 10, transportation and housing, and tech failures. I also seem to post occasional vacation photos and astronomy blurbs, and anything else that seems amusing.

I hope to see some of you there, and I hope to see fewer of you on that other place.

Want thoughts on why leaving X/Twitter is a good idea? Bill Gates has some ideas, or you could just look at the number of organizations that are abandoning the site and think about whether they might have a point.

Posted in Uncategorized | 6 Comments

Life, death, and retirement

I haven’t been blogging much lately, and it turns out there is a very good reason.

My last technical blog post was October 1st of last year. After I hit publish on that one I went to get ready for bed and found my wife lying on the bathroom floor in excruciating pain.

I took her to the hospital. She was diagnosed with pancreatitis which is a truly horrible disease. Her hospital stay was an insane rollercoaster and she ultimately died nine weeks later.

So yeah. It’s been a shit year.

Continue reading

Posted in Uncategorized | Tagged | 73 Comments

Localization Failure: Temperature is Hard

The Guardian is one of my favorite news sources. I’m a subscriber (support news organizations!) and I read it daily. But it is not immune to errors, as this headline shows:

68 °F above average is a lot. For a tropical country it is not credible for temperatures to be that much warmer than average because the average is too high to give enough headroom. So what gives?

Continue reading

Posted in Rants | Tagged | 5 Comments

32 MiB Working Sets on a 64 GiB machine

Memory is a relatively scarce resource on many consumer computers, so a feature to limit how much memory a process uses seems like a good idea, and Microsoft did indeed implement such a feature. However:

  • They didn’t document this (!)
  • Their implementation doesn’t actually save memory
  • The implementation can have a prohibitively high CPU cost

This feature works by limiting the working set of a process – the amount of memory mapped into the address-space of the process – to 32 MiB. Before reading any further take a moment to guess what the maximum slowdown might be from this feature. That is, if a process repeatedly touched more than 32 MiB of memory – let’s say 64 MiB of memory – then how much longer could these memory operations take compared to if the working set was not limited? Take a moment and write down your guess. The answer is later in this post.

Continue reading

Posted in Performance, xperf | Tagged | 10 Comments