Week 40, 2024 - Calendars

Week 40, 2024 - Calendars
Artificial over natural water near Baden bei Wien

Our Austrian bike trip was cut short by an unfortunate accident (we’re OK), but as a small silver lining, I managed to progress on multiple stuff above what I planned for this week. Apparently, even small breaks, stepping away from the usual day-to-day, can recharge my batteries.

The latest episode of The Retrospective is live (YouTube, Spotify). We’ve interviewed Péter Batiz, the co-author of my Getting Hired as an EM series about the current state of the tech hiring market. It was interesting to get the insights of a recruiter and we had a good chat.

This episode concludes the first season of our podcast! It was a great experience to go through these 11 episodes, including two interviews and a few live recordings. Season two will kick off next week with a few changes - search for “The Retrospective” in your favorite podcasting app to ensure you won’t miss it!

📋 What I learned this week

🌸 This week I learned about Bloom filters! Let me step back first. It started with what seems like a horrible example of negligence: a personal database leaked from a Hungarian recruiting agency not just with names, professional history, and contact data, but also internal comments that were sometimes rude, hurtful, and dehumanizing. (Apparently, their contractor checked in a Laravel-based CRM with database seed CSVs to a public Github repo.) This resulted in a volunteer Redditor creating a fully offline lookup tool allowing people to safely verify exposure.

Someone in a comment mentioned Bloom filters, an elegant optimization technique for lookups in large datasets when potential false positives can be accepted (and routed to a longer, precise lookup, if needed). The algorithm uses multiple independent hash functions, mapping their results to a bit array, and using that to look up values. This guarantees that there will be no false negatives (so we can be sure the lookup data is not in the dataset), and sometimes that's what matters. Also, this results in a small lookup table, which makes it parallel execution friendly, so can be scaled well. One notable usage is CDN optimization, from the Wikipedia page:

The servers of Akamai Technologies (…) use Bloom filters to prevent "one-hit-wonders" from being stored in its disk caches. One-hit-wonders are web objects requested by users just once, something that Akamai found applied to nearly three-quarters of their caching infrastructure. Using a Bloom filter to detect the second request for a web object and caching that object only on its second request prevents one-hit wonders from entering the disk cache, significantly reducing disk workload and increasing disk cache hit rates.

Smart!

📅 As my calendar is filling up with interviews, connections with old and new friends, and various family errands, it’s hard to get a quick high-level overview of my day. Since I’m using time blocks in my calendar for tasks I want to work on (and Focus Time is not available on my personal Google Calendar instance), I especially wanted an easy way to differentiate if an event is a time block or a meeting with someone (and if I’m having that meeting online or offline). I figured an automatic event coloring would serve this purpose well, and after some quick googling found out that I’m not the first one to realize that. Based on this, it was easy and fast to write my own solution that automatically colors events based on a few criteria. See before and after:

Feel free to take it and adapt it to your needs!

🎯 What I want to try next week

I mentioned earlier that I’m working on an article about Feedback Cycles. I managed to finish a bullet-point draft, and I’m hoping to publish the final article early next week.

Two realizations led me to carefully re-open the door of the homelabbing rabbit hole: first, my 2011 Mac Mini is struggling to host OMV and all the client VMs using the SMB shares that it provides at the same time; and second, I have a 2013 MacBook Air lying around that we don’t use anymore… The plan is to install Proxmox on it, move OMV and maybe Immich there, or find another balanced setup that avoids the fans spinning up on the Mini.

You might ask why don’t I just buy a recent mini PC that can host all these without breaking a sweat… sure, but where’s the fun in that?

🤔 Articles that made me think

Last Mile First

A smart tip about the importance of shipping software to production fast: working on the infrastructure and deployment first, even before any code is written, to ensure whatever is created can be shown to the world. One of the counterarguments against this approach that I often heard is that "we're not building anything yet, just experimenting to validate an idea". But to me, that's not a strong argument, because if you don't get external feedback, you're not validating your idea, you're just tinkering with it in a dark corner alone.

The article talks about greenfield projects, which, depending on the company, can be extremely rare. However, the philosophy of pushing your work live early and frequently still applies: Deploy frequently to production and use feature flags or something similar to control the release of new functionality that's being developed. You'll get much more useful feedback if your Product team and earliest Alpha testers are using the live product with experimental features turned on, compared to any sandboxed test environment – and you'll save yourself a world of pain not having to think about integration, scalability, and similar problems right before launch.

The Economics of Writing Technical Books

Gregor Hohpe’s amazingly transparent (and humorous) share about the financials of writing highly technical books. Numbers, royalty, comparisons, everything is in there. Back in 1999, I co-authored a successful web development book (in Hungarian), and we negotiated a 15% royalty from every sale if I remember well. It was a nice passive income for a surprisingly long time and seems like a good deal considering we didn’t have to do anything “just” write the book.

🗓️ Something cool: Cal.com

I test-drove a few booking systems that allow people to select timeslots to meet in my calendar. I needed some flexibility to allow buffers within calls, offer different lengths, and other customizations. After playing with Calendly and SavvyCal, I settled with Cal.com for now, as I found their free trier surprisingly solid and sufficient for my current needs, and the interface straightforward.

This was not an advertisement, I’m just happy to find a good product for free.

That’s it for today, now close your calendar until Monday,

Péter

Subscribe to my newsletter

I write about engineering leadership topics.
Sign up to receive new articles.
jamie@example.com
Subscribe