There’s no syllabus, explore what excites you
Being hands-on is the best way for you to learn. Practice interesting programming challenges like building your own BitTorrent client, Redis, DNS server, and even SQLite from scratch on CodeCrafters.
There’s no syllabus, explore what excites you
Throughout our life, we have been conditioned to find a syllabus and stick to it. Going out of the track is either discouraged or while doing it our peers and parents always said is a waste of time and effort. This continues even when you are working.
Whenever I talk about the internals of databases, or interesting algorithms, or an obscure domain from computer science, I always get the comment "Shut up! we don't need this at work."
We tend to focus on things we need at work or to crack some interviews and nothing beyond that. Even a slight detour seems like a waste of time. Unfortunately, this mindset is killing your curiosity and making you boring.
Be curious, tinker with things, and give yourself a chance to stumble upon the unexpected. The domain of computer science is vast and beautiful; there are so many things you will genuinely fall in love with.
Do not limit yourself to someone else's curation; explore what excites you.
?? Video I posted this week
This week I posted How nested loop, hash, and merge joins work.
Joins are essential for relational databases and they not only power transactional queries but are also used in analytical workloads. But how do databases join the two tables?
In this video, we go in-depth to understand the different algorithms that databases use when they join two tables. By the way, these algorithms are not just limited to databases, but even distributed computation frameworks like Apache Spark use them when they need to join the two datasets. So, let's jump in
?? Paper I read this week
This week I spent reading Amazon MemoryDB: A fast and durable memory-first cloud database
The paper describes the architecture of MemoryDB and how they leverage Redis and offer 11 9s of durability with in-memory performance ?? pretty impressive.
It spills the details about how they provide single-digit millisecond write and microsecond-scale read latencies, strong consistency, and high availability while being fully compatible with Redis.
领英推荐
You can download this and other papers I recommend from my papershelf.
100% test coverage does not mean your system is stable
I once saw a FAANG codebase with 100% test coverage but the system was still broken.
Many big companies obsess over unit tests and most of them chase the vanity metric of test coverage as an indicator of system stability. The obsession with hitting that 100% coverage mark leads to engineers wasting countless hours writing trivial test cases.
I am not saying, to not write tests at all. Tests are essential and you need to write the ones that matter, the tests that catch regressions, the tests that ensure the core functionality remains intact, and the tests that keep the system stable.
I prefer writing integration tests because they ensure that my system is stable from the outside and that the required user flows are working fine. I do write unit tests, but only for critical business logic and complex internal flows and edge cases.
Five pieces of code that I write unit and integration tests for are
So, when you write the next set of tests ask yourself, your lead, and your manager the tough question - "why?"
?? Interesting articles I read this week
I read a few engineering blogs almost every single day, and here are the three articles I would recommend you to read.
Thank you so much for reading this edition of the newsletter ?? If you found it interesting, you will also love my courses
Consultor | Empresarial y en el Emprendimiento | Planeación Estratégica y Direccionamiento | Estructuración Organizacional | Administración y Gestión | Productividad | Gestión Costos y Presupuestos | Planes de Negocio |
11 个月Interesante planteamiento el compartido en este artículo, romper y salir de los esquemas establecidos, pensar, analizar, construir y seguir rumbos que rompan el molde. Algo que para la mayoría de los tradicionalistas y estructurados pensadores no es el rumbo, pero cuando una persona seda la oportunidad de salir de el y cambiar de rumbo, construir sobre esquemas no tradicionales, ser creativo y plantear y definir nuevas alternativas, hace de su vida algo distinto y posiblemente enriquecedor, motivante, constructivo y de crecimiento en todos sus roles y escenarios. Por ello este planteamiento hace reflexionarse en seguir avanzando igual o, romper el rumbo e iniciar a construir el que sea propio y único, personal, individual que presente y visualice mi yo, solo mi yo y logre ser distinto.?
Remote Database performance and HA expert for Postgres & MySQL | I help your company scale to thousands of users ?? keep existing users ?? & protect their data ??? #Postgres #PostgreSQL #MariaDB #MySQL #DBA #Freelance
11 个月wow, no syllabus? explore what excites you. 100% test coverage ≠ system stability. #nofluff Arpit Bhayani
Backend Developer | Node JS Developer | TypeScript Developer
11 个月The title had me hooked ??
SRE | Devops | Automation & CI/CD Enthusiast | Driving Efficiency & Reliability for Distributed Systems
11 个月Thats exactly what i have been doing now a days. Cause i realised that just reading or solving a fixed set of problems or a particular topic, gets repetetive and boring fast. And most importantly thats making the “curious me” happy.