Posted on 6 mins read
Ad-hocumentation

Good documentation is a developer’s best friend, and some products and tools have truly excellent docs because they pay people to maintain them. When you Google a library method and the first result is an official, up-to-date web page with a description, code sample, use cases, limitations, and type information—all written and maintained by an actual human being? That’s paradise, my friend. Much of the time we’re not so lucky. Even some of the most popular libraries have autogenerated or nonexistent docs, which means you need to rely on Stack Overflow posts, blogs, and three-page threads on GitHub—in other words, ad-hocumentation—to figure out what’s going on.

“Ugh, I just want this table to update when the data changes.”

“Did you check the documentation?”

“There isn’t any. Just a page that says ’lets you display tabular data in an appealing format’ and has a bunch of parameter names.”

“Well that’s useless. What are you doing now?”

“Reading the ad-hocumentation. A bunch of people on Stack Overflow are having the same problem. Hopefully there’s a workaround.”

Blurriant solution

It’s the end of a particularly long week. You’ve been trying to fix the same bug for four days now. All the standard debugging techniques have turned up nada. You’re starting to come unglued. At this point you’re trying things almost at random: commenting out some code over there, filling up a database table with nonsense over here, switching out open-source packages and messing with headers. Then, suddenly, unexpectedly, the bug is fixed. You hold your breath and commit everything. You’re a little fuzzy on what exactly fixed it; what’s important is that something you tried was a stroke of genius. It was a blurriant solution.

“Oh hey, the API is back up. What fixed it?”

“Er, a combination of things. I upgraded to .NET 5.0, set our DatabaseService lifetime to be scoped instead of singleton, changed this UPDATE to a MERGE, rearranged some of the auth token refresh code, and increased the size limit on the cache.”

“You don’t know what fixed it, do you?”

“Nope.”

“Blurriant solution, Sherlock. Have a good weekend.”

Interviewing crickets

Startups are infamous for posting jobs that require several years of experience in three or more technologies, but either pay an entry-level salary or don’t have a listed salary range at all. It’s hard to say what they think will happen. In a labor market as competitive as tech, I assume they’re just getting ignored. Chirp chirp.

“I saw there’s a new startup in the office building by your house. Are they hiring?”

“Ha, no. I mean yes, but they’re looking for senior .NET devs and only offering 80K.”

“Interviewing crickets, then.”

“Yep.”

Ol’ ball and blockchain

Adding “blockchain” to an otherwise normal product announcement can land it on the front page of all the internet’s finest tabloids almost immediately. Unfortunately, this sometimes leads to actual changes in the product roadmap. When an executive who thinks NFT stands for “Newspaper Frontpage Term” speaks to the media about how the company is incorporating it into all their products, the oft-unexpected result is that the company is forced to incorporate it into all their products. That or admit they were lying. Finding a way to add NFTs to a parking lot management system will drag the product line into a mire of meaningless decisions and lost productivity for years to come, but that’s the ol’ ball and blockchain for you.

“I saw your company in the news, congratulations!”

“Thanks, but I wish it were for something else. Our marketing department just announced without warning that we’re doing NFTs.”

“Doesn’t your company sell, like, lizardskin socks?”

“Yep. And now I have to spend the next two years figuring out how to sell autogenerated NFTs, too.”

“Ugh. Have fun with the ol’ ball and blockchain.”

Prabsent

The worst kind of Zoom meeting is the kind where technically it’s a good idea for you to be there (in case your knowledge comes in handy) but the conversation is mostly between other people and doesn’t really affect your work. It doesn’t take long for you to lose focus. You start working on other stuff, you read the news, you do some pushups, you run to the kitchen for a snack…and all of the sudden you hear your name. Your heart skips a beat. You’ve been in the meeting, but you’ve also been totally not in the meeting and you have no idea what’s going on. You’ve been present and absent at the same time. Prabsent.

(45 minutes into a Zoom meeting with 10 people on it)

“Isaac, can you tell us from your perspective as a developer what the pros and cons of each of these solutions would be?”

“Uh, well, it’s hard to say without, I mean…” (deep sigh) “listen, I’m really sorry, I’ve been prabsent for like the last half hour. Could you summarize those solutions real quick?”

Squeak the lion

Sometimes a company buys a third-party tech solution to solve a problem, then discovers that it either doesn’t solve the problem (because the devs weren’t in on the evaluation process) or the problem didn’t really exist in the first place. Now they have an expensive contract on a piece of useless software and a damaged ego. To salvage the situation they may require their devs to use the software anyway, e.g. by squeaking the lion—using one of its secondary APIs to do something totally unnecessary.

“I see your team is using Azure now?”

“Nah, we’re just squeaking the lion. Ted bought an Azure web services contract because they told him it would store image blobs. We already have S3 for that, so instead we set up an Azure Function that sorts arrays and we call it instead of using Array.sort(). Takes a second to warm up, but at least the Azure subscription isn’t going to waste.”

Unpoop it

The stars are aligned: no meetings on the calendar, you’re happy and well-rested, and you feel super confident about your next task. The world disappears around you; it’s just you and the keyboard. You write the world’s most perfect feature, a beautiful act of pure creation. The PR is approved almost immediately. Then you get a call from your manager. He tells you never mind, priorities have changed. It doesn’t matter that the feature’s already finished. You’ll have to unpoop it.

“Hey, we’ve decided not to go forward with that feature. It isn’t high-value enough and we don’t like the tradeoffs.”

“Are you kidding me? I just finished it. I was on a roll today! I wrote 600 lines of code.”

“I’m afraid you’ll have to unpoop them. Sorry.”

Work from styrofoam

Imagine if there were a lot of bad things happening in the world lately, all at the same time. Some days, without any specific reason at all, you’d be way too stressed out to work. If you feel sheepish about asking for the day off without some kind of pretext (or your company doesn’t allow you to), you may end up working from styrofoam—showing up just so you can sit in your chair and accomplish nothing for several hours. You may as well make a styrofoam cast of your body, sit it in your Herman Miller Aeron chair in front of your triple-wide monitor, and leave it alone for eight hours. It’d be just as productive as you.

“Hey, did you make any progress on that login bug?”

“Not really. I’ve been working from styrofoam the last couple days.”

“Me too, to be honest. I can’t stop thinking about how the world is ending.”

“What a relief, I thought it was just me.”