It’s been another couple weeks of hunkering down with Jess & family in St. Louis. It turns out the way I deal with social distancing is to buckle down and work really hard. When all this is over I may need to impose periodic “productivity quarantines” on myself to match this level of output.
I'll Trade Ya!
Hey there! Archived SIGAVDI letters are for newsletter subscribers only. All it costs to join (and unlock this post) is an email address! I'll write to you weekly-ish with a few interesting links, some updates, and some reflections on the intersection of software and life. And I'll respond to your replies! Whattya say?
- Martin Fowler: How to do effective video calls.
- Henrik Nyh on conversational implicature in testing. Aka how to write tests that don’t say too much.
- Jessica Kerr on why complication isn’t the enemy.
- Martin Fowler (and friends) again, with an excellent article on why business value needs to be treated as an architectural attribute.
- New freebie from the RubyTapas archives: Using strings to build up command lines for execution is error-prone and potentially insecure. Check out why Ruby’s
%Warray-literal syntax is the perfect tool for writing, composing, and executing external commands!
- I read through most of the OAuth2 spec recently, and decided to cement my understanding by explaining it to RubyTapas subscribers with a little story about a Horse named Reese.
- On my blog, I posted some dev journal entries about doing AWS Serverless Application Model development inside a docker dev container, and how to manage sensitive environment variables for Lambda functions.
- Jess & I streamed about implementing OAuth2 and FizzBuzz… in Dark!
- Chelsea Troy and I published the first few emails in our new series on working (and living) remotely. If you sign up here you’ll get all the emails, starting at the beginning.
Where to find me
- April 27-May 1: Rather than cancelling, GOTO Chicago has opted to go online and “redefine what it means to host a virtual conference”. Come join me, won’t you?
I still don’t have a “real job”, but I’m doing my best to take advantage of quarantine time with blog posts, videos, streams, and emails! If you feel like tossing a buck or two my way, I have a Patreon: https://www.patreon.com/avdigrimm
Now that I’ve been ranting about tech hiring here and on Twitter for a while, people send me their interview horror stories. And honestly it’s a bit heartbreaking.
I wish I could honestly say “that’s OK, you dodged a bullet by not taking a job there”. But I’m not convinced that bad interviewing necessarily indicates a bad culture. For a lot of organizations, interview culture is its own little island. Which is part of the problem.
I talked to someone at a company I once interviewed for, who said (paraphrased):
I tried to change the interview process here and eventually gave up. It was created by one of our founders a long time ago, and the only people who put any work into it are one or two who have strong opinions about it. Everyone else just ignores it.
The problem with bad interview processes is that they don’t produce much signal:
- Once you make it through the interview process, you generally put it behind you and don’t think about it again until you it’s time to get a new job.
- The team remains blissfully unaware of great candidates who get knocked out because of bad interview practices, because of interviewers having bad days, or because they don’t fit the mold of “people who think like the hiring process creator”.
- Inevitably, a few lucky and motivated candidates will filter through the process. Then they’ll be incorporated into the company’s real working culture, do great work, and everyone will say “ah, the process must be working!”.
And that’s really the crux of the problem: interviews attempt to evaluate a candidate in isolation, but that says almost nothing about how they will work in your team. We’ve built an industry obsessed with “hiring great people”, wholly oblivious to the fact that the “greatness” we glorify in successful teams is 80% a property of the team, not the individuals.
As Jess says in her seminal keynote on collective problem solving, you want to believe you can build a great team from great people. But the truth is it’s the other way around.
This morning I threw together a chicken curry in the slow cooker. In addition to potatoes, onion, chicken, and peas I decided to add some carrots. What if, after chopping the carrots, I had tossed half of them into the garbage?
Assuming the whole curry comes out well, the family won’t think “where are the missing carrots?”. They’ll just think “these carrots taste great!”. The process appears to work, even if it’s throwing out a random 50% of the perfectly good candidates.
- ✔ Work on $corporate_video_project. I put a ton of work into this.
- ❌ Spend a couple hours on one of my WIP courses. Oops
- ✔ Stream with Jess
- ✔ Write for The Wide Teams Almanac
- ✔ RubyTapas
- ✔ Learn a ton about building AWS Lambda apps with SAM
- ✔ Wrap my brain around FutureBuilders in Dart
- ✔ Co-host an episode of Greater Than Code.
- ✔ Go hiking
- GOTO talk prep – I asked for and received some leeway in selecting my topic in order to fit the revised format.
- Becoming revenue-positive.
- Fixing my house.
I am currently in the “20% that takes 80% of the time” for $client_video_project 😅
- Client Video Project: ~90% .
- Robust Ruby: 25%.
- MOOM: 91%
- The Rake Field Manual: 10%.
- AsyncJS Course: ~50%.
- Patreon improvements.
That’s it for this week. Remember, replying to SIGAVDI is a WHO-approved mode of socializing during quarantine!