To figure that out, I remember searching for articles on how to implement inverted indices. Once I had a list of candidate strategies and data structures, I used Wikipedia supplemented by some textbooks like Skiena's [2] and occasionally some (somewhat outdated) information from NIST [3]. I found Wikipedia quite detailed for all of the data structures for this problem, so it was pretty easy to compare the tradeoffs between different design choices here. I originally wanted to implement the inverted index as a hash table but decided to use a trie because it makes wildcard search easier to implement.
After I developed most of the backend, I looked for books on "information retrieval" in general. I found a history book (Bourne and Hahn 2003) on the development of these kind of search systems [4]. I read some portions of this book, and that helped confirm many of the design choices that I made. I actually was just doing what people traditionally did when they first built these systems in the 1960s and 1970s, albeit with more modern tools and much more information on hand.
The harder part of this project for me was writing the interpreter. I actually found YouTube videos on how to write recursive descent parsers to be the most helpful there, particular this one [5]. Textbooks were too theoretical and not concrete enough, though Crafting Interpreters was sometimes helpful [6].
[1] https://en.wikipedia.org/wiki/Inverted_index
[2] https://doi.org/10.1007/978-3-030-54256-6
[3] https://xlinux.nist.gov/dads/
[4] https://doi.org/10.7551/mitpress/3543.001.0001
There are "smarter" solutions like radix tries, hash tables, or even skip lists, but for any design choice, you also have to examine the tradeoffs. A goal of my project is to make the code simpler to understand and less of a black box, so a simpler data structure made sense, especially since other design choices would not have been all that much faster or use that much less memory for this application.
I guess the moral of the story is to just examine all your options during the design stage. Machine learning solutions are just that, another tool in the toolbox. If another simpler and often cheaper solution gets the job done without all of that fuss, you should consider using it, especially if it ends up being more reliable.
https://www.topcoder.com/thrive/articles/Dynamic%20Programmi...
- Language learning: I have a couple of languages that I want to focus on this 2026. Both for the enjoyment of learning and using said languages, and also because it will help me improve work-wise.
- OSS development: Programming was set aside these couple of years and I want to be active and help the community. Either by contributing to a project or an OS (9front is always on my mind).
- Be a good father and partner: this is one of my primary goals this 2026.
- More time for outdoor sports: As much as I like being indoors, playing with computers, I need to go outside and spend time in nature doing something that I enjoy (ie. running or surfing)
- Mindfulness and spirituality: Grown so much in the past couple of years and now is time for me to meditate on these topics.
- Last but not least, participate in the old-school internet: Be more active and talk to real people, read their blogs, donate to their endevours for a better internet, enjoy their art, etc.
May I ask which languages are you talking about here? and what methods you will follow?
* Learn complex analysis!
* Get a better workflow for writing my notes to myself (e.g., Obsidian) and for publishing my blog/website (have a marginally-functional Hugo instance right now). Small thing, but the kind of important-but-not-urgent thing that it's easy to put off!
NYT: US GDP Grew 4.3%, surging in 3rd Quarter 2025 - https://www.nytimes.com/2025/12/23/business/us-economy-consu...
WSJ: Consumers Power Strongest US Economic Growth in 2 years - https://www.wsj.com/economy/us-gdp-q3-2025-2026-6cbd079e
The Guardian: US economy grew strongly in third quarter - https://www.theguardian.com/business/2025/dec/23/us-economy-...
- Multiple interest rate cuts instead of 1
- News about prosecutions for insider trading on Polymarket.
- Bitcoin will touch a multi-year low. MSTR becomes insolvent.
- Google Gemini will overtake ChatGPT in DAU.
- Software will be more commoditized and the authors’ “taste” will become its primary differentiator.
- Fiserv will increase 50% or more in market cap (I said the same thing last year about PayPal, and I was wrong)
- Warren Buffett will pass away. (I hope I’m wrong) :-(
- Google will drop the price of Gemini Ultra to $125 a month or less, Anthropic and OpenAI will follow suit.
- Logitech will start making a dedicated vibe-coding microphone-whatever that means.