You are not hired to "just" ship features
Admissions for my System Design June 2024 cohort are open, if you are a senior engineer looking to build a rock-solid intuition to design any and every system, check out my no-fluff course on System Design Masterclass.
My other no-fluff courses that you will find amusing are.
You are not hired to “just” ship features
You are not hired to just ship features, but rather ship features that matter. All great engineers I know understand the worth of their work and the business impact it brings; this way they prioritize the tasks that matter.
Do not be a transactional engineer - given a work, get it done without thinking too much about it. Operate like you own it, almost like the CEO, ensuring things are put to completion on time and with maximum impact. A few things I highly recommend you do are
When you get some work, step back and see the bigger picture. Elevate from being just a coding machine.
By the way,
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.
?? Video I posted this week
This week I posted How JioCinema live streams IPL to 20 million concurrent devices
"Live streaming is all about CDN" and if you are one of then who think that is the case, then watch my latest podcast to understand the infra setup, the scaling techniques, and the challenges it takes to live stream a cricket match to 20 million concurrent users without hiccups.
I spoke with Prachi Sharma, a Sr. Engineering Director at JioCinema leading the Backend Platform pod to understand the nuances of live streaming at scale and some fun wartime stories. Fun fact, it was Prachi's 6th IPL ??
?? Paper I read this week
This week I spent reading DecLog: Decentralized Logging in Non-Volatile Memory for Time Series Database Systems
Databases use WAL to maintain consistency and durability of transactions, but it can become a bottleneck when we have a massive IO ?
This happens because every entry in WAL has a log sequence number that needs to be generated in a single thread to ensure ordering and correctness, hence this is not suitable for multi-threaded CPUs.
Because LSN generation lies in the critical path of transactions, high contention for WAL affects the throughput. What if we could log multiple transactions concurrently? This is where decentralized logging comes in ...
To understand this better, I read a paper titled DecLog which leverages NVMs (persistent RAM) to make concurrent logging possible. I skimmed the paper already and hence shooting this out as a recommendation.
You can download this and other papers I recommend from my papershelf.
How long should the functions be?
"Functions in your code should be no longer than five lines" is the stupidest practice I have seen many codebases follow. This just fills the codebase with a ton of tiny functions that do nothing important but call other abstract functions surrounded by some trivial logic.
Such a codebase is a nightmare to understand and make changes to. Just imagine taking 79 clicks to just navigate and reach the place of interest, a sheer waste of time and effort. After a few taps, you will even forget where did you begin and how did you end up here.
As a general rule of thumb, optimize the code for anyone to understand, extend, and modify today. Keep your functions large enough to be doing something substantial, but short enough to be reused at other places.
Remember, functions were introduced to programming languages to increase the reuse of business "logic".
?? 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 |
10 个月Es reflexiva, inquietante y real el planteamiento en todo campo y disciplina para muchas personas en cómo es que visualizan la forma, primero que sean realmente clara de las características, no las secundarias, sino las que importan y, estas se deberán priorizar para luego hacer un planteamiento que se alinee con las tareas que importan para el sistema, método, técnica o proceso y este opere con un agregado de valor; asumiendo el rol y compromiso como si fuera el due?o, propietario, usuario, cliente y también el alinearlo en la óptica?como el director ejecutivo, pero asegurándose de que las los planteamiento, y definiciones de las características completen en el tiempo justo con un máximo impacto; esto toma mucho más trabajo, análisis, investigación y desarrollo pero se obtienen resultados efectivos.