Everything I googled in a week as a senior software engineer
Three years ago I wrote a post called Everything I googled in a week as a professional software engineer, and it clearly resonated with people, because it went pretty viral. It still gets most of the pageviews on this website.
Well, a lot has changed in three years: I got promoted and I'm now a senior engineer and lead the web engineering discipline at Monzo. But one thing hasn't changed: I still google a lot, every single day. Here's what I googled in a week, 2022 edition.
Obvious disclaimer: this is slightly edited as I've removed most of the non-work-related ones.
Some of these search terms might make you laugh and think "how did you not know that?". Well, there are several reasons you might not know something (choose all that apply):
- you've never used it before
- you've used it before but can't remember
- it's changed since the last time you used it
- you're tired
- you're distracted
- you're human
More than ever, we're constantly surrounded by new information. It's impossible to remember everything all of the time.
I hope this makes you feel a bit better if you ever feel bad that you have to google something "obvious".
Monday
slack channel bookmarks – trying to find some documentation on where to find channel bookmarks on mobile, as my friend couldn't find them.
carbonara – my manager made the very lofty claim in standup that his carbonara was the best, so I googled a picture to make a "carbonara king" emoji of him
directory tree cli - how to render a directory tree in a CLI
react-toastify - a useful notification library
anchor dataset - accessing data attributes in JS
mdn element dataset
waitfornextupdate - trying to remember if this testing-library function was just for hooks. (It is.)
The next few are a direct result of the fact that in JS you still can't automatically download a file in a cross-browser way without creating an anchor element. There's the downloads API, but Safari doesn't support it.
jest how to test detached elements – jest-dom
can only see what's in the DOM under test, so if an element is detached from the DOM, it's not going to be able to test it. But this didn't immediately occur to me.
document.createElement('a')
document.createElement('a')
detached
react-hook-form - we're trying to add this to some of our web properties, as they don't have any form management and react-hook-form
is a really nice abstraction.
spread types may only be created from object types - I kept getting this error and I couldn't work out why, and it turns out we had an old version of react-hook-form
installed in a different app (just monorepo things) which had different return types
react-hook-form "spread types may only be created from object types"
Tuesday
slack channel links in API
gilts – they were in the news and I didn't actually know what they were.
js accessing nested object key – I momentarily couldn't remember whether you could access nested object keys like myObj['key1.key2']
. (you can't, because the entire string is interpreted as one key)
intensifies emoji maker – I went with MakeEmoji which has a pleasing number of options
modal accessibility – I was having a discussion with someone about why modals aren't accessible. It turns out there is some nuance to it, and that they aren't necessarily completely inaccessible, but they require a fair bit of work to make them accessible.
modal window accessibility
I hope you can feel the frustration in the next few search queries, in which I struggle with Storybook and then find that my problem isn't actually documented. I knew that there was a world in which you can write JSDoc comments above a component, and have them show up in Storybook docs, because we did that at my previous job. The docs don't seem to mention this at all, and it wasn't working for some reason. It turns out that it doesn't work with default export components, for some reason, but this isn't documented anywhere.
storybook docs markdown comments
storybook story description
storybook docs
storybook comments
storybook comment
storybook JSdoc
Wednesday
mark hoppus – I mentioned that I was trying to get blink-182 tickets (I failed) and we were debating how old they are now.
lofi girl – during retro we put music on while people are writing their Retrium tickets, and I thought this was the appropriate vibe.
apollo query oncompleted
useLazyQuery – trying to figure out if this returns the return value, or void
. Turns out the latest version returns the return value, and the version we're on doesn't :(
sentry github
'RequestSessionStatus' is not exported from '@sentry/types' – this turned out to not be a problem with the Sentry lib, but actually a yarn.lock mismatch (just monorepo things).
Thursday
document.write – I knew this was deprecated, but I wanted to find something to back up my PR comment.
apollo server request size – Getting 412s from our apollo server and trying to figure out how to bump the max request size.
apollo-server-koa
apollo server request size site:stackoverflow.com - a useful tip for googling is that you can restrict searches to a particular site using the site:
param.
mdn element dataset
open new window and set inner html – trying to find a suitable replacement for document.write
for the person who requested it. We went for window.open()
and myWindow.document.documentElement.innerHTML = myHtml
.
mock clock golang – figuring out the best way to mock the time.Now()
function in Go. There are various ways of doing it across our codebase, I wasn't sure which one was the most up-to-date way, but I figured it out eventually.
graphql server request entity too large – still trying to fix the apollo server request limit
doggo ipsum – my favourite ipsum generator.
apollo server body parser config
apollo server body parser config koa
koa - I finally realised we need to set the body parser config on the server itself, not the apollo-server wrapper.
koa request size
britney spears albums – trying to find as many Britney track titles as possible to cram into a pun-filled gratitude post for my colleague who helped us out.
ronseal – I like to google pictures of Ronseal and put them in PR descriptions when the title describes exactly what the PR does (i.e. it does what it says on the tin). I think I got this habit from b3ta back in the day.
Friday
read a symbolic link – I'm so shit at symbolic links lolol
npm service status
apollo async oncompleted
window.history – looking for the arguments for history.push
.
I think the next few are particularly amusing given that I literally gave a conference talk on redux-saga
in 2018, but it's been so long since I touched any code containing sagas that I completely forgot how they work:
saga execute non-saga function
saga execute non-redux function
redux-saga effects
More ipsum generators, because my colleagues enjoyed doggo ipsum:
veggie ipsum – I love that I also googled this in the previous post as well, I promise it's a coincidence
ts-command-line-args - onto some CLI building now!
node.js interactive shell
node.js interactive shell select – I was looking for a CLI library that lets you select different options with the arrow keys. I found inquirer.js!
types/inquirer
ts-command-line-args
should you symlink from destination – I can never remember what order to do symlinks in
TS2464
next-images - checking that some of our plugins are still relevant.
nextjs document
react-hook-form radio buttons - sometimes you just need a good example. Turns out it was easier than I thought, and I just needed to forward a ref to our radio button component.
Looking back
You might say "well, you googled fewer things this week than you did that week in 2019!". For one thing, I have more meetings now than I did back then. I'm in a different team, working on different things.
It also depends from week to week what I'm working on; last week I spent a lot of time building data export in Go, and so my search history was full of frustrated queries like golang readseeker from buffer
and create a file from string golang
. (I still help out on backend tickets when it's needed.)
Some of the stuff I googled back then I can remember how to do without looking it up now, but some of it I definitely can't (e.g. I still can't get my brain to retain some more complex CSS grid things). For example, I'd 100% still have to google all of these from the last post:
whitespace regex
regex not letter
js date
grid minmax
There you have it – I still google loads of stuff. To finish, I'll leave you with what I said in the post from 2019:
What I'm trying to show with all this is that you can do something 100 times but still not remember how to do it off the top of your head. Never be ashamed of googling, even if it seems like the most basic thing you're looking up.