Programmer’s log. Epoch time 1725840032. It’s barely September and already all the online ads and store displays are filled with pumpkins, pumpkins, everywhere. Way too premature, in my opinion! We’ve been hit by yet another heat wave this week so it still feels like deep summer to me. Hopefully the almighty engine of consumerist culture can even convince the weather to start behaving in a seasonally appropriate manner…
Happy Sunday! It’s been a minute — starting a new job and training for my (first and only) marathon took over my schedule from April to August. But now as I’ve gotten into the rhythm and returned back to a reasonable workout routine, I’m looking forward to writing more. I have also been working on a secret writing project which I will share more about soon 😊
And because I started a new job, I’ve been thinking a lot about the process of onboarding. Check out my latest post below!
✍️ From the blog
Reflections on engineering onboarding
Leveling up your new job game
Most companies have structured onboarding for new engineers and managers. At FAANG companies, the onboarding period has even more clearly outlined expectations. While the particular flavor of new hire programs may vary, the basic structure is the same: in the first few weeks, you familiarize the new folks with tooling, processes, and important people, while also completing any necessary legal compliance training and paperwork that’s required. There are usually very clear milestones for new hires to pass, whereupon you “graduate” from onboarding and start working on team or role-specific tasks.
After joining my fourth company in more than a decade of working in tech, I thought I was already an expert at ramping up quickly. I have now worked at every size and scale of software organization–from being the first mobile hire at a tiny startup, to being part of a team that grew from four to forty engineers at a hyper-scaling growth unicorn, to working at a post-IPO mega-corporation. Surely I couldn’t be surprised by onboarding expectations anymore?
But one thing not frequently discussed is the optional actions that can often pay significant long-term dividends. These actions are suggested but not required for new experienced hires. I found that these additional steps during onboarding allowed me to more quickly and effectively establish my technical chops at a large-scale organization.
Here is what I would do again during new job onboarding:
…
(Click here to read more)
While getting back into the habit of writing again, I procrastinated by finally adding the ability to display the full list of tags at the top of the blog. Previously readers could only see tags on each individual post, but now you can jump straight to the most interesting tags.
My website is configured as a Github pages site using Jekyll, a popular static site generator. It’s dead simple to deploy and free to host, which makes it a really great cheap and lightweight personal website setup.
However, Jekyll (and the Liquid templating syntax it uses) is not very well documented, so I occasionally run into headaches trying to set up some custom behavior that would take me seconds to implement in a more common web stack like React. This global tag list was one of those headache cases.
Tags are declared on individual posts so I needed to collect all the posts and deduplicate the tag names. Since Liquid was originally designed as an intentionally limited system for handling dynamic content, it doesn’t have a basic set
data structure and also has made odd choices about array initialization and concatenation. I ended up having to hack the tags together by appending unique tag names to a string and then transforming it into an array:
{% assign tags = '' %}
{% capture tag_posts %}
{% for post in site.posts %}
{% for tag in post.tags %}
{% unless tags contains tag %}
{% assign tags = tags | append: ',' | append: tag %}
{% endunless %}
{% endfor %}
{% endfor %}
{% assign tags = tags | remove_first: ',' | split: ',' %}
{% endcapture %}
Unpleasant to look at, but gets the job done.
📖 Links and books
Articles & writing I’ve enjoyed recently:
The secret in one million checkboxes (eieio.games)
Willingness to look stupid by Dan Luu
Fast crimes at Lambda School by Benjamin Sandofsky
Status games by Phil Booth
A forest from the moon by Claire Evans
Generative AI can definitely be a controversial topic in terms of it’s usage and impact, but I’m always on the look out for positive examples of gen AI applications. Here are some good ones: I’d love to see Eno, the first generative feature film, and this text-to-color picker is delightful.
I’m currently reading Witch Hat Atelier and The Art of Gathering by Priya Parker.
That’s all for now! See you later alligator 🐊