Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
158326 stories
·
33 followers

Competence Debt: I Ran the Test on Myself

1 Share

Every time you ship something you could not have built yourself, you take on competence debt. Here is what I found when I checked my own balance.

Competence Debt: I Ran the Test on Myself borrowed-not-built

Competence debt is what you take on every time you ship something you could not have produced on your own. Not stolen, not cheated, just borrowed. The work is real, the result is fine, the customer is happy. But somewhere behind it is a skill you now depend on and do not actually own. I wrote about this idea last year, feeling reasonably pleased with myself. Then it occurred to me that I had never once run the test on my own work. So I did. I failed twice, and one of them stung.

A quick note. The client situations below are composites, blended and reshaped so that no individual, employer, or company is identifiable. The failures are mine and those are not composites at all.

The Test Is Embarrassingly Simple

One question. Take something you shipped in the last six months and ask: could I rebuild this from nothing, today, with the internet switched off and nobody to ask?

Not perfectly. Not fast. Just at all.

If yes, you own that skill. If no, you rented it, and you are still making payments whether or not you have noticed.

The bill never arrives while things are going well. That is not generosity. That is how debt works.

Where I Passed

I want to be fair to myself before I am unkind to myself, because otherwise nobody believes the unkind part.

I passed on the database work, and I passed comfortably. If you drop me into a slow system with nothing but a keyboard and a bad mood, I can still ask the four boring questions and find the door. That skill is genuinely mine. It cost me about fifteen years and a lot of nights I would rather not itemize.

I passed on writing, mostly. Plain sentences, cut the third adjective, read it out loud, delete whatever made me sound clever. Still mine.

So far so good. Then it got worse.

Where I Failed, Number One

Competence Debt: I Ran the Test on Myself i-cannot-rebuild-this

Some of the small scripts and automations that now quietly run parts of my week, I could not write again from scratch. I asked for them. I read them. They looked right. They ran. I filed them under done and moved on with my life.

Last month one of them stopped working. I opened it up and had the specific, unpleasant experience of reading my own tooling like a tourist reading a menu in a language he claims to speak. I could tell you roughly what each part was for. I could not tell you why it was built that way, which meant I could not tell whether the way it was built was the problem.

It took me two hours to fix a thing I had allegedly made in ten minutes. Compound interest, right on schedule.

Where I Failed, Number Two, and This One Stung

The second one is worse because it is not a script. It is a habit.

I have started asking for the explanation before I have made a real attempt at understanding the thing myself. Not always. But often enough that when I caught it, I sat back in my chair for a minute.

Here is why that one hurts. The struggle was never a tax on learning. The struggle was the learning. That confused twenty minutes where you have the problem in your hands and no idea what to do with it, that is not wasted time before the lesson. That is the lesson, and I have been skipping straight past it to get the answer faster.

I did not lose a skill. I lost the appetite for the part that builds skills, which is considerably harder to get back.

Not All Debt Is the Same, and This Is the Part the Book Got Wrong

When I first wrote about competence debt I treated it as one thing to be avoided. That was too tidy, and life is not tidy. Some borrowing is completely sensible. Some of it will end you. The difference is not how much you borrowed. It is what you borrowed against.

The mortgage. You borrow on something you will never need to own personally and could not reasonably be expected to. I do not know how my car works. I have made peace with this. Nobody has ever called me at 2am about a transmission. Borrow all you like here, and sleep fine.

The car loan. Adjacent to your real work. You could learn it if you had to, and one day you might have to. Manageable, but keep an eye on the balance. Know roughly where the manual is.

The payday loan. You borrowed on the exact thing your job is about. This is the one that ruins people. The interest is invisible right up until the afternoon it is not, and then it takes everything at once.

My scripts were a car loan. Annoying, survivable, fixed in an afternoon. The habit of skipping the struggle is a payday loan against the only thing I actually sell, which is judgment, and I had been paying into it for months without opening a single statement.

The Friday Afternoon Test

Competence Debt: I Ran the Test on Myself four-oclock-friday

Here is the sharper version of the test, and the one I now use.

Do not ask whether you could rebuild it. Ask what happens on a Friday at four o’clock when the tool is confidently, elegantly, completely wrong, and everyone in the room is already thinking about the weekend.

Can you tell? Not eventually. Right then, in the room, before somebody says ship it.

If you can, that is not debt. That is a tool in the hands of someone who owns the skill underneath it, which is the whole point and always was.

If you cannot, you are not using a tool. You are trusting a stranger who has never once been wrong out loud.

What This Looks Like in a Real Room

Let me show you the version I keep meeting.

A team asks for a query. It comes back looking sharp. They run it. Rows come out. The rows look plausible. Somebody says looks good and everyone moves on, and honestly, why would they not.

Nobody read the execution plan, which is only the server’s own honest note about how it intends to go and get your data. Nobody noticed it had decided to read the whole table over and over, because on a test set that costs nothing and on Monday morning it costs the checkout page.

That team did not lack intelligence. They were sharp people having a normal day. They lacked one person who could look at a plausible answer and feel a small, specific itch. And that itch is not a personality trait. It is built, slowly, by having been fooled before.

The query ran, the numbers looked fine, and not one person in that room could read the plan. That is the whole essay in a single sentence.

Paying It Down Without Becoming Insufferable

I am not suggesting you refuse help and hand write everything like a monk. That is not discipline, that is theater, and it is also just slower.

Four things I actually do now.

Attempt before asking, but set a timer. Fifteen minutes. That is all. Long enough for the useful confusion, short enough that nothing gets dramatic. Then ask, and notice which parts of the answer surprise you. That surprise is the receipt for what you did not know.

The explain out loud rule. Before you ship it, explain it to someone with less experience than you, in your own words, without reading off the screen. You will discover the boundary of your understanding in about forty seconds. It is bracing.

Pick your payday loan and pay it first. You cannot fix everything. Name the one skill your career actually rests on and refuse to borrow against that one. Everything else can go on the card.

Keep the wrong list. One line every time the tool was confidently wrong: what it said, what was true, how you caught it. In a month you have a personal map of where it lies to you specifically, in your field. Nobody can write that for you, which is exactly what makes it worth having.

The Honest Ending

I am not paid up. I am maybe two months into the audit and the balance is still ugly, and I expect to fail this test again next year in some new and creative way.

But there is something genuinely useful about knowing the number. Debt you can see is a plan. Debt you cannot see is just a surprise waiting for the worst possible afternoon to introduce itself.

So run the test on yourself this week. Pick one thing you shipped, ask whether you could rebuild it, and be honest in the way you would want your surgeon to be honest.

Competence Debt is one of the thirty essays in my book AI: Nobody’s in There. But we’re still in here. The version in the book was tidier than this one, and I now think this one is truer. Every essay is free to read at pinaldave.com, and there is a paperback on Amazon if you would rather hold something real in your hands.

You are allowed to use every tool on the shelf. Just know which ones you are leaning on, and how hard, and what happens the day one of them is not there.

Competence debt never sends you a statement. It just quietly repossesses your judgment on the worst possible afternoon.

Reference: Pinal Dave (https://blog.sqlauthority.com/), X

First appeared on Competence Debt: I Ran the Test on Myself

Read the whole story
alvinashcraft
just a second ago
reply
Pennsylvania, USA
Share this story
Delete

5 Instances When You Need To Tell (Not Show) In Your Writing

1 Share

Learn when to break the ‘show don’t tell’ rule. Discover five instances where telling can improve your writing and strengthen your story.

Writers know that showing is better than telling. They also know that a good story needs some telling.

Sometimes your characters need a break. They may need time to think, reflect, or retreat for a moment. Time moves forward, and many events in a character’s life are not important enough to show in detail. Sometimes it is better to simply tell your readers what happened.

Telling is sometimes called summary mode. It is one of the few times you get to tell the reader what happens, but it should be used sparingly. If overused, it can become boring because it distances readers from the viewpoint character’s goals and actions.

Try to keep telling to a few paragraphs, or, in rare cases, a short chapter. Too much telling can lead to author intrusion.

5 Instances When You Need To Tell (Not Show) In Your Writing

1. To connect scenes, introduce characters, or gloss over unnecessary conversations.

Sometimes you need to make your readers comfortable with a brief transition that shows them where they are in the story. You may also need to introduce a character without allowing their arrival to distract from the main plot. Characters might have travelled to another city, moved to a different room, or a short period of time may have passed.

Example: ‘Jeremy waited until five minutes past eight the next morning before he marched into The Michelangelo Towers. He had spent the night obsessing about his future. Kirsten’s demands echoed in his head and he could barely think straight. He walked to the check-in counter and asked the concierge to call Room 303.’

2. To report events or gloss over unimportant characters.

You can tell readers about events in your character’s life that are not important enough to show in the story.

For example, if your story is set in a school environment, you can briefly tell us how the characters spent their Christmas holidays. Don’t introduce a series of characters who have nothing to do with the main story. simply say: ‘After a quiet Christmas with their families, the students returned to school relaxed and ready for the new term.’

3. To show that time is passing.

Books can span days, years, or even decades. Readers do not need to experience every moment. Use telling to reveal that time has passed, seasons have changed, or people have aged so that you can move the story towards the next important part of the story.

Example: ‘Summer slipped into autumn. By the time Emma harvested the last tomatoes, the fence had weathered, the trees had turned gold, and she had almost forgotten the letter that changed everything.’

4. To focus on emotion when showing is impossible.

Sometimes a character is so isolated or immobile that telling is the best way to explore their emotions. Bear in mind, though, that this is an older style of writing. Madame Bovary would not be published today. Move your character back into the action of the story as soon as possible.

Example: ‘Daniel lay motionless in the hospital bed. For the first time in his life, he felt completely powerless. Every hour seemed longer than the last, and the silence gave him too much time to think about everything he had lost.’

5. To add backstory.

Sometimes a little telling is necessary. When there is no other way to introduce the past, you can add it, but reveal these details gradually. Keep backstory brief, and remember that you should not begin a novel or memoir with a long explanation of what happened before the story starts.

Example: ‘When Sarah was eight years old, her parents divorced. She moved to three different schools before she turned twelve. She never made close friends, and by the time she graduated, she trusted no one.’

The Last Word

‘Show don’t tell’ is an important writing principle, but it is not an unbreakable rule. Understanding when to tell allows writers to control pacing, provide important information, and create a stronger connection with readers. The best stories use both showing and telling, with each technique serving a clear purpose.

If you enjoyed this post, read:

  1. Show! Don’t tell. Avoid these 10 verbs when you write
  2. 3 Simple Ways To Show And Not Tell
  3. Show Don’t Tell: 5 Simple Techniques Every Writer Should Know


by Amanda Patterson
© Amanda Patterson

More posts from Amanda:

  1. What Is A Sequel In Story Structure? A Writer’s Guide
  2. What Is A Scene In Story Structure? A Writer’s Guide
  3. How To Write A Gripping Novel: 5 Essential Tips
  4. How Many Words Should A Novel Be? A Writer’s Guide To Word Counts
  5. What Is A Novel Outline? 5 Strong Reasons To Outline Your Novel Before You Start Writing
  6. What Is A Good Daily Word Count? Lessons From 39 Famous Authors
  7. 10 Life-Changing Benefits Of Reading More Books
  8. The Author’s Promise: The Two Things Every Writer Owes Their Reader
  9. Why Every Story Needs Consequences
  10. Scenes And Sequels: The Writer’s Guide To Stronger Story Structure

Top Tip: Sign up for our free daily writing links.

The post 5 Instances When You Need To Tell (Not Show) In Your Writing appeared first on Writers Write.

Read the whole story
alvinashcraft
19 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

Windows Package Manager 1.30.80-preview

1 Share

This is a preview build of WinGet for those interested in trying out upcoming features and fixes. While it has had some use and should be free of major issues, it may have bugs or usability problems. If you find any, please help us out by filing an issue.

New in v1.30

Nothing yet.

Bug Fixes

  • Updated NUnit to v4
  • Fixed a crash (0x8000ffff) when using --disable-interactivity with the Resume experimental feature enabled during install operations.

What's Changed

New Contributors

Full Changelog: v1.30.50-preview...v1.30.80-preview

Read the whole story
alvinashcraft
42 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

OpenAI’s Rogue AI Agent Hacked More Than Just Hugging Face

1 Share
In a new disclosure, OpenAI says its agent used exposed logins to gain access to at least four “publicly available services” in its unhinged quest to solve a test.
Read the whole story
alvinashcraft
8 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Michael Washington

1 Share

Michael Washington is an ASP.NET and C# programmer with experience in process improvement, billing systems, and student information systems. He is the founder of AiHelpWebsite.com and BlazorHelpWebsite.com.You can find Michael on the following sites:

Here are some links provided by Michael:

PLEASE SUBSCRIBE TO THE PODCAST

You can check out more episodes of Coffee and Open Source on https://www.coffeeandopensource.com

Coffee and Open Source is hosted by Isaac Levin





Download audio: https://anchor.fm/s/63982f70/podcast/play/123451021/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fstaging%2F2026-6-28%2F428792127-44100-2-b5a69e1d52fdf.mp3
Read the whole story
alvinashcraft
8 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Lima v2.2: Windows guests and TPM 2.0 emulation

1 Share

Following macOS and FreeBSD guests in v2.1, Lima v2.2 takes the next big step: Windows guest support. With this release, a single `limactl` workflow can now boot Linux, macOS, FreeBSD  and Windows virtual machines. Lima v2.2 also introduces emulated TPM (Trusted Platform Module) 2.0, a foundational building block for modern guest operating systems and for disk-encryption workflows.

What is Lima ?

Lima (Linux Machines) is a command-line tool to launch local virtual machines. Originally focused on running containers on a laptop and promoting containerd to Mac users, Lima joined the CNCF as a Sandbox project in September 2022 and was promoted to Incubating in October 2025. Today, Lima supports a wide variety of non-container workloads, non-macOS hosts, non-Linux guests and robust AI sandboxing.

If you are using Homebrew, Lima can be installed using:

brew install lima

For other installation methods, see https://lima-vm.io/docs/installation/.

Updates in v2.2

Windows guests (experimental)

Lima v2.2 introduces experimental support for Windows Server 2025 and Windows 11 guests. With v2.1 adding macOS and FreeBSD, Windows was the natural next step toward making Lima an OS-agnostic VM launcher.

To create and start a Windows Server 2025 guest:

limactl start template:windows-2025

Once the VM is up,

limactl shell windows-2025


A screenshost of the Windows System Info

Under the hood, Lima now knows how to:

  • Drive an unattended Windows installation from a generated  `autounattend.xml` answer file, packaged into an ISO that QEMU attaches alongside the install media. This handles disk partitioning, driver loading, and user creation without any manual clicks.
  • Download and mount the virtio-win driver ISO so that Windows can use virtio block, network, and other paravirtualized devices for good performance.
  • On first logon, a PowerShell script generates a random password (replacing the initial one from `autounattend.xml`), installs OpenSSH Server, opens the Windows Firewall for port 22, and injects the SSH public key into `C:\ProgramData\ssh\administrators_authorized_keys` so that `limactl shell` works out of the box.

Current limitations

  • Only the QEMU driver is supported. 
  • The Windows template requires `plain: true`. File mounts, port forwarding via the guest agent, and other Lima conveniences that rely on the Linux guest agent are not available yet.

What’s next for Windows guests

  • File sharing into the guest (likely via virtio-fs, or maybe SMB (Server Message Block)).
  • A Windows-side guest agent so that port forwarding, environment propagation, and provisioning scripts behave the same as on Linux guests.
  • Broader architecture and image coverage (Windows 11 ARM64, more languages beyond `en-us`, etc.)
  • Eventually, a native Windows Host Compute System (HCS) backend driver for users running Lima on Windows, which would give first-class vTPM.

TPM 2.0 emulation (experimental)

TPM (Trusted Platform Module) 2.0 is a dedicated microchip built into your computer’s motherboard designed to secure hardware using cryptographic keys. To make Windows 11 guests possible at all, Lima v2.2 also adds emulated TPM via swtpm (a software emulator that acts like a physical TPM) on the QEMU driver.

When `tpm: true`, Lima:

  • Spawns a `swtpm` process per instance, with its own state directory under the instance directory.
  • Communicates with `swtpm` over a Unix domain socket.
  • Picks the right QEMU TPM device as per the architecture Cleans up the `swtpm` process when the instance stops.

LFX Mentorship 2026

This year Lima participated in the LFX Mentorship 2026 Term 2 program (June – August 2026), and this term is currently under progress. The work is tracked under the umbrella issue #4907. We are thrilled to announce Mie Tokunaga (@mie313 on GitHub) as our selected mentee for this term. Huge thanks to her for driving the Windows guests development. Also many thanks to Arnav Sharma (@Shardz4 on GitHub) whose earlier proof of concept for `swtpm` integration #5079 laid the groundwork for the TPM feature.

The main goal of the mentorship program was to add Windows Guest support. Now that our mentee has successfully implemented this, their focus has shifted to ensuring a seamless Lima experience on Windows hosts. This includes automating Windows host configurations and eliminating dependencies so that Lima “just works” out of the box. A key deliverable is the complete removal of the `cygpath.exe` dependency, so that Lima on Windows no longer requires Cygwin, MSYS2, or Git for Windows to be installed. The secondary phase aims to explore and evaluate native virtualization support for Windows hosts. This includes researching the trade-offs between Hyper-V and the Host Compute System (HCS, used by WSL2).

Catch us at KubeCon + CloudNativeCon Japan 2026

Come say “Hi!” in Yokohama!


Conference Session: Project Lightning Talk: Lima in 5 Minutes: From Containers to AI Sandboxing
– Speaker: Ansuman Sahoo (BITS Pilani)
– When: Wednesday, July 29, 2026 | 12:33 PM JST
– Where: 3F | 313+314


Project Pavilion Kiosk:

– When: Thursday, July 30, 2026 | 10:45 – 13:00 JST 

– Where: Level 3 | 301-304 + Foyer | T-3


See also:

Read the whole story
alvinashcraft
8 hours ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories