The Tech Caffeine #33: This Week in Tech
🤔 What is a Monorepo? and Why Should I Care About It?, 😑 The Boring Technology Checklist, 💡Using the Problem Reframing Method to Build Innovative Solutions
🤔 What is a Monorepo? and Why Should I Care About It?
A monorepo is a single repository containing multiple distinct projects, with well-defined relationships. Consider a repository with several projects in it. We definitely have “code colocation”, but if there are no well-defined relationships among them, we would not call it a monorepo.
For the sake of this discussion, let's say the opposite of monorepo is a "polyrepo". A polyrepo is the current standard way of developing applications: a repo for each team, application, or project. And it's common that each repo has a single build artifact and simple build pipeline.
The industry has moved to the polyrepo way of doing things for one big reason: team autonomy.
Those are all good things, so why should teams do anything differently? Because this autonomy is provided by isolation, and isolation harms collaboration
😑 The Boring Technology Checklist
Technologists love new technology—that new shiny thing. But, often, the promise of a new solution introduces new unforeseen problems creating unplanned challenges. Dan McKinley wrote, "Choose Boring Technology" seven years ago, which admonishes exclusively chasing new technology and advises adopting battle-tested and proven technology. Choosing proven hardened and well-trod paths in technology is “boring” because the complete problem space is known, and mitigations for any trade-offs are well understood.
Read this article to get a ready-made checklist to use while choosing technology for your next project
🍥 Humanity-Centered versus Human-Centered Design
Don Norman writes about humanity-centered design (not human-centered design) in his new book, Design for a Better World.
💡Using the Problem Reframing Method to Build Innovative Solutions
Companies have generally become very good at solving the wrong problems. What I mean by this is that most companies fail to uncover what their actual problems are — or where their real opportunities lie, and they excel at solving the problems they do uncover, simply because it taps into their existing knowledge, experience, and skills.
BlackBerry continued to improve its physical keyboards because it wanted to focus on business emails. Kodak didn’t recognize its own invention of digital photography as disruptive. Blockbuster turned down a deal with Netflix because it didn’t think customers wanted movies delivered.
➿ Building End-to-End Field Level Lineage for Modern Data Systems
"What happened to this dashboard?"
"Where did our column go?"
"Why is my data ... wrong?"
If you’ve been on the receiving end of these urgent messages, late night phone calls, or frantic emails from business stakeholders, you’re not alone. Data engineers are no strangers to the schema changes, null values, and distribution errors that plague even the healthiest data systems. In fact, as data pipelines become increasingly complex and teams adopt more distributed architectures, such data quality issues only multiply.
👉 How to lead your junior engineers to success
For engineering teams, hiring juniors is only half the battle. When we fail to prepare or be intentional about how we engage with juniors, we create a bad experience for our new starters. And we lose people in the process.
So, how can we fix this? Over the years, I’ve learned a lot about what works and what doesn’t when it comes to supporting early-career engineers. Here I’m sharing six guiding principles and actions you can take to help set your juniors up for success.
👉 New customer offer! Top courses from ₹ 525 when you first visit Udemy!