The Managers' Guide #104

The 3 kinds of queues are:
- FIFO
- LIFO
- FAFO
Matthew Martin
The hidden time bomb in the tax code that's fueling mass tech layoffs
- 💸 A tax rule change — part of the 2017 Tax Cuts and Jobs Act — is the primary issue. Since 2022, companies can no longer immediately deduct their Research & Development (R&D) expenses. Instead, they must spread them out, or “amortize” them, over five years for domestic costs and 15 for foreign ones.
- 🧾 This accounting change — leads to a massive increase in a company’s taxable income on paper, resulting in a surprisingly large tax bill even if their actual revenue and spending haven't changed.
- 💻 The tech industry — is hit especially hard because its biggest expenses are often the salaries of software engineers and researchers, which are classified as R&D costs.
- ✂️ The connection to layoffs — is that these huge, unexpected tax burdens create immense financial pressure. The article suggests this is a major contributing factor to the recent waves of layoffs as companies scramble to cut costs to find the cash to pay their new tax bills.
- 🏛️ A key observation — is that this was an unintended consequence. There was broad bipartisan support to repeal this change before it took effect, but political gridlock prevented Congress from acting, leaving the industry to face the fallout.
How to Get Good at Debugging Your Mind
- 🧠 The core metaphor — is to view your mind as a computer program and your negative, unhelpful thoughts as “bugs.” This allows you to approach self-improvement with a systematic, problem-solving mindset rather than one of emotional overwhelm.
- 🔍 The first step is awareness — you have to learn to notice when a mental bug is running. This means catching yourself in the moment when a negative thought pattern or emotional reaction is triggered.
- 🤔 Isolate and question the bug — once you notice a negative thought, you must pinpoint the specific belief or assumption causing it. The article suggests you then challenge it directly by asking, “Is this thought actually true?” or “Is this a helpful way to see the situation?”
- ✍️ The final step is to “rewrite the code” — after questioning the buggy thought and seeing its flaws, you consciously replace it with a more rational, useful, or compassionate one. This is the mental “patch” that fixes the bug.
- 💪 An important learning — is that this is a practical skill that gets easier with practice. The goal isn't to eliminate all negative thoughts forever, but to become skilled at identifying and correcting them quickly, reducing their power over you.
How to give pushback to leadership
- 🤝 Start with alignment, not opposition — The most effective pushback begins by acknowledging and agreeing with the leader's ultimate goal. This frames the conversation as “How can we best achieve our shared objective?” instead of a confrontation.
- 💡 Identify the risk, then offer a solution — Don’t just point out a flaw; that comes across as complaining. Clearly state the problem or risk you foresee (“My concern is...”) and immediately follow up with a constructive alternative (“What if we tried...”).
- 📊 Lead with data, not drama — Ground your pushback in objective reality. Use data, evidence, or a clear, logical argument to explain the potential negative consequences of a plan. This shifts the focus from personal opinion to professional risk assessment.
- ✅ Know when to “disagree and commit” — A crucial learning is that your job is to make your case effectively, but not necessarily to win every argument. Once a final decision is made, a good team member commits to the chosen path and works to make it successful.
The Canva outage: another tale of saturation and resilience
- 🚦 The core issue was saturation — The outage wasn't caused by a simple failure, but by a cascading failure triggered by saturation. A slowdown in one part of the system caused a massive backup of requests, which then overwhelmed and brought down other interconnected services like a domino effect.
- 📉 A failure of graceful degradation — An interesting observation is that the system experienced a total, catastrophic failure. A more resilient system would have failed gracefully — for example, by shedding non-critical load (like disabling the creation of new designs) while keeping essential functions online (like viewing existing ones).
- 🎯 Saturation is the real enemy — The article argues that the initial trigger of an outage is less important than the system's inability to handle the resulting overload. The key takeaway is to focus on building systems that can withstand saturation, not just prevent initial faults.
- 🛠️ The solution is proactive resilience — The primary learning for engineers is the need to build in defenses against this kind of collapse. This includes implementing patterns like circuit breakers (to stop requests to failing services), rate limiting, and intelligent load shedding to protect the entire system from a localized problem.
Infrastructure Platform Teams
An infrastructure management team is not as effective as an infrastructure platform.
- 🧱 The traditional approach is a bottleneck — An “Infrastructure Team” that simply takes tickets and provisions resources for developers is an anti-pattern. It creates a silo, slows down development velocity, and frustrates both sides.
- 🛠️ The goal is enablement, not fulfillment — The modern solution is a “Platform Team.” Their purpose is not to do the work for developers, but to build a self-service internal platform that enables developers to manage their own infrastructure easily and safely.
- 🛍️ Treat the platform as a product — A key learning is that the platform team must operate like a product team. Their “customers” are the internal developers, and their “product” is the platform itself. This means they need product management, a roadmap, and a focus on user experience.
- 🛣️ Build the “paved road” — An interesting observation is the concept of the “paved road.” The platform team's job is to create a well-supported, easy path for the vast majority of use cases. This makes it the default, fastest choice for developers, reducing their cognitive load and letting them focus on shipping features.
That’s all for this week’s edition
I hope you liked it, and you’ve learned something — if you did, don’t forget to give a thumbs-up, add your thoughts as comments, and share this issue with your friends and network.
See you all next week 👋