Close Menu
geekfence.comgeekfence.com
    What's Hot

    Can your job be unbundled? If so it is under threat from AI – Computerworld

    March 27, 2026

    Here’s why some people choose cryonics to store their bodies and brains after death

    March 27, 2026

    Maine bans online sweepstakes casino platforms statewide

    March 27, 2026
    Facebook X (Twitter) Instagram
    • About Us
    • Contact Us
    Facebook Instagram
    geekfence.comgeekfence.com
    • Home
    • UK Tech News
    • AI
    • Big Data
    • Cyber Security
      • Cloud Computing
      • iOS Development
    • IoT
    • Mobile
    • Software
      • Software Development
      • Software Engineering
    • Technology
      • Green Technology
      • Nanotechnology
    • Telecom
    geekfence.comgeekfence.com
    Home»Technology»If You’ve Never Broken It, You Don’t Really Know It – O’Reilly
    Technology

    If You’ve Never Broken It, You Don’t Really Know It – O’Reilly

    AdminBy AdminDecember 23, 2025No Comments6 Mins Read4 Views
    Facebook Twitter Pinterest LinkedIn Telegram Tumblr Email
    If You’ve Never Broken It, You Don’t Really Know It – O’Reilly
    Share
    Facebook Twitter LinkedIn Pinterest Email



    If You’ve Never Broken It, You Don’t Really Know It – O’Reilly

    The following article originally appeared on Medium and is being republished here with the author’s permission.

    There’s a fake confidence you can carry around when you’re learning a new technology. You watch a few videos, skim some docs, get a toy example working, and tell yourself, “Yeah, I’ve got this.” I’ve done that. It never lasts. A difficult lesson often accompanies the only experience that matters.

    You learn through failure—falling flat on your face, looking at the mess, and figuring out why it broke. Anything that feels too easy? It probably was, and you didn’t exit the process with anything worth learning.

    Ask About Failure: Failure === Experience

    When I’m hiring someone who claims relational database expertise, I ask a “trick” question:

    Tell me about the worst database schema you ever created. What did it teach you to avoid?

    It’s not really a trick. Anyone who’s been knee‑deep in relational databases knows there’s no perfect schema. There are competing use cases that constantly pull against each other. You design for transaction workloads, but inevitably, someone tries to use it for reporting, then everyone wonders why queries crawl. Another developer on the team inadvertently optimizes the schema (usually years later) for the reporting use case only to make the transactional workload unworkable.

    The correct answer usually sounds like:

    We built for transactional throughput—one of the founders of the company thought MySQL was a database, which was our first mistake. The business then used it for reporting purposes. The system changed hands several times over the course of several years. Joins became gnarly, indices didn’t match the access patterns, and nightly jobs started interfering with user traffic. We had to split read replicas, eventually introduce a warehouse, and after 5–6 years, we ended up simplifying the transactions and moving them over to Cassandra.

    That’s a person who has lived the trade-offs. They’ve experienced a drawn-out existential failure related to running a database. While they might not know how to solve some of the silly logic questions that are increasingly popular in job interviews, this is the sort of experience that carries far more weight with me.

    The Schema That Nearly Broke Me

    I once shipped a transactional schema that looked fine on paper: normalized, neat, everything in its proper place.

    Then analytics showed up with “just a couple of quick dashboards.” Next thing you know, my pretty 3NF model, now connected to every elementary classroom in America, was being used like a million-row Excel spreadsheet to summarize an accounting report. For a few months, it was fine until it wasn’t, and the database had made a slow‑motion faceplant because it was spending 80% of its time updating an index. It wasn’t as if I could fix anything, because that would mean several days of downtime coupled with a rewrite for a project whose contract was almost up.

    And how were we trying to fix it? If you’ve been in this situation, you’ll understand that what I’m about to write is the sign that you have reached a new level of desperate failure. Instead of considering a rational approach to reform the schema or separating what had become a “web-scale” workload in 2007 from a NoSQL database, we were trying to figure out how to purchase faster hard drives with higher IOPS.

    I learned a lot of things:

    • I learned that upgrading hardware (buying a faster machine or dropping a million dollars on hard drives) will only delay your crisis. The real fix is unavoidable—massive horizontal scaling is incompatible with relational databases.
    • I learned the meaning of “query plan from hell.” We band‑aided it with materialized views and read replicas. Then we did what we should’ve done from day one: set up an actual reporting path.
    • If you are having to optimize for a query plan every week? Your database is sending you an important signal, which you should translate to, “It’s time to start looking for an alternative.”

    Lesson burned in: Design for the use case you actually have, not the one you hope to have—and assume the use case will change.

    What Does This Have to Do with Cursor and Copilot?

    I’m seeing a lot of people writing on LinkedIn and other sites about how amazing vibe coding is. These celebratory posts reveal more about the people posting them than they realize, as they rarely acknowledge the reality of the process—it’s not all fun and games. While it is astonishing how much progress one can make in a day or a week, those of us who are actually using these tools to write code are the first to tell you that we’re learning a lot of difficult lessons.

    It’s not “easy.” There’s nothing “vibey” about the process, and if you are doing it right, you are starting to use curse words in your prompts. For example, some of my prompts in response to a Cursor Agent yesterday were: “You have got to be kidding me, I have a rule that stated that I never wanted you to do that, and you just ignored it?”

    Whenever I see people get excited about the latest, greatest fad thing that’s changing the world, I’m also the first to notice that maybe they aren’t using it all. If they were, they’d understand that it’s not as “easy” as they are reporting.

    The failure muscle you build with databases is the same one you need with AI coding tools. You can’t tiptoe in. You have to push until something breaks. Then you figure out how to approach a new technology as a professional.

    • Ask an agent to refactor one file—great.
    • Ask it to coordinate changes across 20 files, rethink error handling, and keep tests passing—now we’re learning.
    • Watch where it stumbles, and learn to frame the work so it can succeed next time.
    • Spend an entire weekend on a “wild goose chase” because your agentic coder decided to ignore your Cursor rules completely. ← This is expensive, but it’s how you learn.

    The trick isn’t avoiding failure. It’s failing in a controlled, reversible way.

    The Meta Lesson

    If you’ve never broken it, you don’t really know it. This is true for coding, budgeting, managing, cooking, and skiing. If you haven’t failed, you don’t know it. And most of the people talking about “vibe coding” haven’t.

    The people I trust most as engineers can tell me why something failed and how they adjusted their approach as a result. That’s the entire game with AI coding tools. The faster you can run the loop—try → break → inspect → refine—the better you get.



    Source link

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email

    Related Posts

    Maine bans online sweepstakes casino platforms statewide

    March 27, 2026

    The Download: a battery company pivots to AI, and a new AI tool seeks to transform math

    March 26, 2026

    Elon Musk pauses changes to X’s creator revenue-sharing program after backlash

    March 25, 2026

    I Only Listened to AI Music for a Week. It Was Terrible, but Not for the Reason You Think

    March 24, 2026

    Beyond Code Review – O’Reilly

    March 22, 2026

    AI Wheelchair Technology Moves Closer to Reality

    March 21, 2026
    Top Posts

    Understanding U-Net Architecture in Deep Learning

    November 25, 202527 Views

    Hard-braking events as indicators of road segment crash risk

    January 14, 202624 Views

    Redefining AI efficiency with extreme compression

    March 25, 202617 Views
    Don't Miss

    Can your job be unbundled? If so it is under threat from AI – Computerworld

    March 27, 2026

    There have been plenty of warnings about job losses due to AI, particularly in the…

    Here’s why some people choose cryonics to store their bodies and brains after death

    March 27, 2026

    Maine bans online sweepstakes casino platforms statewide

    March 27, 2026

    Customize your AWS Management Console experience with visual settings including account color, region and service visibility

    March 27, 2026
    Stay In Touch
    • Facebook
    • Instagram
    About Us

    At GeekFence, we are a team of tech-enthusiasts, industry watchers and content creators who believe that technology isn’t just about gadgets—it’s about how innovation transforms our lives, work and society. We’ve come together to build a place where readers, thinkers and industry insiders can converge to explore what’s next in tech.

    Our Picks

    Can your job be unbundled? If so it is under threat from AI – Computerworld

    March 27, 2026

    Here’s why some people choose cryonics to store their bodies and brains after death

    March 27, 2026

    Subscribe to Updates

    Please enable JavaScript in your browser to complete this form.
    Loading
    • About Us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • Terms and Conditions
    © 2026 Geekfence.All Rigt Reserved.

    Type above and press Enter to search. Press Esc to cancel.