☀️ The Tech Caffeine #24: This Week in Tech
How to deal with tech debt at the scale of super app, How to mentor software engineers, Why does Cloudflare use lava lamps to help with encryption?
📱How to deal with tech debt at the scale of super app
At Flo, every team is product-oriented, even platform teams. Focusing on the product is very important, but it has to be in balance with our development speed, which can decrease over time, giving us less opportunity to experiment or deliver value.
In this article, we want to share how we decided to work with technical debt and how Evolutionary architecture and SRE help us balance innovation and quality in mobile development.
🧑🏻💻How to mentor software engineers
A friend and fellow staff+ engineer posted a question to a peer group Slack:
Anyone have suggestions on how best to mentor software engineers?
At the time, I said a few things about radical candor and actionable feedback, but the question stuck with me. I mentor people, but I’ve never thought formally about what it is or how I do it. Like a lot of soft skills, we’re rarely taught how to mentor – most of us are left to figure it out on our own.
🔌 The power of defaults - Are network effects overrated?
One of the most cited types of moats is the concept of network effects. Network effects occur when the value of a product or service is subject to the number of users. A positive network effect means that a product or service becomes more valuable to its users as more people use it.
🏮Why does Cloudflare use lava lamps to help with encryption?
To produce the unpredictable, chaotic data necessary for strong encryption, a computer must have a source of random data. The "real world" turns out to be a great source for randomness, because events in the physical world are unpredictable.
As one might expect, lava lamps are consistently random. The "lava" in a lava lamp never takes the same shape twice, and as a result, observing a group of lava lamps is a great source for random data.
👩🏻💻 Understanding UUIDs, ULIDs and String Representations
What UUIDs and ULIDs are under the hood, and how to encode and use them.
Database and data storage systems need identifiers for each piece of information they store. Using numbers as identifiers is one way to do it, but that has limitations — and we have alternatives in the form of UUIDs and ULIDs.
💌 Designing WhatsApp
Design an instant messenger platform such as WhatsApp or Signal which users can utilize to send messages to each other. An essential aspect of the application is that the chat messages won’t be permanently stored in the application.
FUN FACT: Some of the chat messengers such as FB Messenger store the chat messages unless the users explicitly delete them. However, instant messengers such as WhatsApp don’t save the messages permanently on their server.
📚 Recommended Read
I am reading Andrew Chen’s The Cold Start Problem: Using Network Effects to Scale Your Product.
If you ever wonder what is the difference between a successful and an unsuccessful business? The answer is The Network Effect. In this book, Andrew talks about the Network Effect in detail.