Hey, I'm Alex. I like to write about my ideas and whatever I'm learning about, including algorithms and data structures, bioinformatics, cryptocurrency, linguistics, and programming interviews (among other things).
I was born in Australia, but did my PhD in succinct data structures in Tokyo, and moved to San Francisco to work on self-driving cars at Cruise. Previously, I worked in bioinformatics at One Codex (another YC company), games at Infinite Interactive, and taught algorithms at Hyper Island. I am also interested in UX research, knowledge management and tools for thought, as well as fashion and photography.
This site is a repository for all the things I am interested in. If any of it is helpful or entertaining, please consider subscribing!
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.
Succinct de Bruijn Graphs
This post will give a brief explanation of a Succinct implementation for storing de Bruijn graphs, which is recent (and continuing) work I have been doing with Sadakane. Using our new structure, we have squeezed a graph for a human genome (which took around 300 GB of memory if using
FM-Indexes and Backwards Search
Last time (way back in June! I have got to start blogging consistently again) I discussed a gorgeous data structure called the Wavelet Tree. When a Wavelet Tree is stored using RRR sequences, it can answer rank and select operations in $\mathcal{O}(\log{A})$ time, where A is the
Wavelet Trees: an Introduction
Today I will talk about an elegant way of answering rank queries on sequences over larger alphabets – a structure called the Wavelet Tree. In my last post I introduced a data structure called RRR, which is used to quickly answer rank queries on binary sequences, and provide implicit compression. A
RRR: A Succinct Rank/Select Index for Bit Vectors
This blog post will give an overview of a static bitsequence data structure known as RRR, which answers arbitrary length rank queries in $\mathcal{O}(1)$ time, and provides implicit compression. As my blog is informal, I give an introduction to this structure from a birds eye view. If you
Iterative Tree Traversal
By memorizing a simple implementation of iterative tree traversal we simplify a large number of programming interview questions.
Advice for Programming 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
Generating Binary Permutations in Popcount Order
I’ve been keeping an eye on the search terms that land people at my site, and although I get the occasional “alex bowe: fact or fiction” and “alex bowe bad ass phd student” queries (the frequency strangely increased when I mentioned this on Twitter) I also get some queries
alexbowe.com Newsletter
Join the newsletter to receive the latest updates in your inbox.