About me
Hi, I’m Vaibhav. I’ve been working as a software engineer for a little over four years now. I started by building geospatial software in the drone industry and later moved to a very early stage SaaS startup. Somewhere along the way, I became increasingly curious about what happens lower down the stack, especially inside databases.
What I am building
These days, I’m trying to understand that world by reimplementing parts of SQLite in Rust. The project is called toydb. So far, it can read SQLite’s record format, walk through table and index B trees, including both interior pages and leaf pages, follow overflow page chains, and run full table scans and a small set of SELECT queries, including simple equality lookups.
There are still plenty of gaps. The parser and query executor are fairly small, and I haven’t tackled WITHOUT ROWID tables yet. I found them a little weird at first. They are tables, but their rows are stored in an index B tree, and they can still have secondary indexes of their own. It is interesting, but also a rabbit hole I decided to save for another day.
What is next
Next, I want to build a proper SQL parser instead of continuing to stretch the small one I have now. I’m currently working through Crafting Interpreters to understand parsing and AST construction properly before bringing those ideas back into toydb.
Outside code
When I’m not staring at SQLite page layouts, I’m usually listening to Indian classical or Carnatic music. That’s basically my jam. I have also been running 6 km every morning because I’m trying to lose some weight. So far, that has been a pretty good motivation to keep going.
Open to work
I’m currently open to systems and database engineering roles where I can keep learning and work on problems closer to the internals. If you think I could be a good fit for your team, feel free to get in touch.