Skip to content

Newsletter Zero

My first newsletter, where I cover how I want to write more, how I finished my PhD, what I'm working on at Cruise, recent articles I've written, a programming interview course I'm working on, and previews for future posts.

Alex Bowe
Alex Bowe
4 min read

Sometime between 2013 and now you graciously provided me with your email address after reading an article on alexbowe.com (probably something about succinct data structures like Wavelet Trees and de Bruijn Graphs, Natural Language Processing, Python, or programming interviews).

Over time my writing crawled to a stop due to life (doing a PhD, moving countries, getting a job, chasing shiny things), but also my harsh inner critic. But Learning in Public has incredible network effects - why should I let any critic deny me that, let alone myself?

So I’ve decided to make a conscious effort to overcome that, and wanted to give you a heads up that I'll be using this mailing list more often (you can always unsubscribe here if my emails aren't relevant or interesting, although I hope they will be).

I’m still feeling out what I want to use this newsletter for, so today I'll start simple by giving a quick update on what I've been up to, give a couple of links to articles I’ve written recently, and a preview of what I'll be writing about soon.

Life Updates

In 2017 I quit my PhD and moved from Tokyo to San Francisco to work on routing and pickup-dropoff locations for self-driving cars at Cruise. It's been cool seeing the company grow from ~100 to ~3000 people, with a fully driverless ride-hail service operating with a small-ish group of beta testers (but improving and scaling very quickly).

In 2020 I succumbed to the crippling guilt of leaving my PhD, so decided to finish it by hiring a project manager to guide me, and someone to help with typesetting (LaTeX, am I right?). This accelerated my progress a lot and was a huge relief (if you are an ABD and want to do the same, let me know).

Recent Work

In 2021 I realized how much I missed writing, so decided to resurrect my blog and joined a writing club.

The first article I wrote was about how I recovered a lost passphrase to a Bitcoin wallet. It turns out that the edit distance of typos follows a Zipf distribution, so doing a breadth-first search from an initial guess can yield the correct passphrase in a practical amount of time (it took around 3 hours in my case):

How to Recover a Bitcoin Passphrase
How I recovered a Bitcoin passphrase by performing a Breadth-First search on typos of increasing Damerau-Levenshtein distances from an initial guess.

(Cryptocurrency is a divisive topic, but give it a chance even if it isn't your thing - the article is mainly about programming and natural language).

Then in January 2022 I wrote an article about a code snippet I use to simplify tree problems in programming interviews (with examples):

Iterative Tree Traversal
By memorizing a simple implementation of iterative tree traversal we simplify a large number of programming interview questions.

And currently I'm gearing up to run my first online course for preparing for programming interviews using the 80/20 rule and spaced repetition. More on this later, but if you're curious the landing page is here:

The Perpetually Prepared Programmer
Get the research-backed framework to permanently master programming interviews with 95% less effort.

What's Next?

As for what I'll write in the future, here are some of the things I have in mind:

  • How I got a Knuth Reward cheque (I found an error in the math describing decodable de Bruijn sequences in TAoCP vol 4A), and how a miscommunication about addresses almost led me to bang on Donald Knuth's door demanding he pay me my $2.56.
  • Variable Order de Bruijn Graphs (my favourite paper from my PhD - lots of nice diagrams and patterns).
  • Colour de Bruijn Graphs (the third paper from my PhD).
  • Fundamental data structure, algorithm, and compression tutorials (what is little-o complexity? What is 0th and kth order entropy? What is the BWT?).
  • More programming interview and career tips.
  • Tools for learning and thought (Obsidian, Spaced Repetition, Incremental Reading).
  • Stuff I've learned at Cruise (when I'm allowed to share it).
  • Maaayyybbee some cryptography and cryptocurrency stuff (I'm a big fan of Monero).
  • Summaries of articles/books I've read or things I'm learning, including what I learned from taking Maven's Course Accelerator to build the course I mentioned above.
  • Anything else I'm thinking about/ideas I want to bounce off you (I'm particularly interested in using AI to generate fashion designs at the moment, and making an open source composable fashion design library with a Figma/Replit-like interface).

But now I'd like to hear from you! Do any of the above topics sound interesting (and would you be interested in reading drafts of them)? What other topics or questions would you like me to write about? Just want to say hi? Just hit reply and I'll read it (and I'd love to chat!).

Cheers,

Alex

newslettercryptocurrencyprogramming interviewsideasfashionphdcareertools for thoughtlearning

Alex Bowe Twitter

Alex has a PhD in succinct data structures for bioinformatics, and currently works on self-driving cars. He's also interested in cryptocurrency, business, fashion, photography, teaching, and writing.


Related Articles

Members Public

Iterative Tree Traversal

By memorizing a simple implementation of iterative tree traversal we simplify a large number of programming interview questions.

An aerial view of a forest.
Members Public

How to Recover a Bitcoin Passphrase

How I recovered a Bitcoin passphrase by performing a Breadth-First search on typos of increasing Damerau-Levenshtein distances from an initial guess.

How to Recover a Bitcoin Passphrase
Members Public

Failing at Google Interviews

I’ve participated in about four sets of Google interviews (of about 3 interviews each) for various positions. I’m still not a Googler though, which I guess indicates that I’m not the best person to give this advice. However, I think it’s about time I put in