Here is what you should know about be:
- ๐ฅ๏ธ I have been working as a software engineer for 3 years in agile fast-growing companies
- ๐ฝ I am passionate about database internals and distributed systems
- ๐ I have an insatiable thirst for learning
- ๐คฏ I love solving complex problems
- ๐งโ๐คโ๐ง I genuinely care for others & love helping and teaching
- โฐ๏ธ I am an outdoor sports enthusiast
I have a blog where I share my learnings about software internals. You can check it out here: https://softwareunderthehood.com/
I love understanding how things work under the hood. I found that re-implementing the systems I am interested in from scratch really helps me deepen my understanding of those. Here are the ones I have built from scratch so far:
- PebbleDB: a persistent key-value store based on an LSM-tree. It mimics RocksDB.
- Pytcask: a key-value store based on a log-structured hash table. It mimics Bitcask.
- Metamorphostreams: an event-streaming platform. It mimics Kafka.
- Express-auth: a basic user/password authentication app I made to understand how authentication works.
- Custom-React-UI-library: a custom TypeScript library that allows to create interactive user interfaces for web applications. It mimics React.
- Custom-JS-testing-framework: a custom JavaScript testing framework that allows to create unit tests. It mimics Jest.
I also do some challenges, both because they are fun and because they help me learn more about a particular topic:
- Flyio-distributed-systems-challenges: My solutions to the set of distributed systems challenges developed by Fly.io.
- Advent-of-code: My solutions to the Advent of Code challenges.
- Nand2tetris: My solutions to the Nand2Tetris project.
- SICP exercises: My solutions to the exercises of the Structure and Interpretation of Computer Programs (SICP) book.
When I write code, I sometimes come across a behaviour that I did not expect. I report some of them in a bunch of playground repositories to document these specificities (mostly for my future self):
Before becoming a software engineer, I trained as a biologist and eventually spent 5 years doing fundamental research in academia using bioinformatics methods. I was particularly interested in evolutionary genomics (a complicated phrasing that basically means "how DNA evolves") and I did a PhD on this topic (you can find my thesis here and the source code in this repo).