Jon Reid
banner
qualitycoding.org
Jon Reid
@qualitycoding.org
https://qualitycoding.org Author of iOS Unit Testing by Example https://iosunittestingbyexample.com. Technical coach, ex-Industrial Logic. Over 20 years of #TDD. Code with joy, drive down your cost of change. he/him
Pinned
👋 Greetings, Bluesky!

I've been a developer in the Apple ecosystem since Mac OS 7. Got test-infected. Wrote a book for iOS developers.

I'm an Exvangelical (not a typo), originally from Japan, love music (especially prog and fusion).
I'm canceling tomorrow's live-coding. Hey, grandkids take priority.
January 11, 2026 at 3:56 AM
Cleaning out a drawer, I found my old AppCode t-shirt.
It's been 3 years since the only JetBrains IDE for Apple development was killed. It still has no substitute.
AI tools can do some refactoring, but not:
- provably
- deterministically
- locally
- in a single keystroke that expresses my intention
January 9, 2026 at 1:37 AM
If something is hard to TDD, what does it say about the design? A bad example from Apple leads us to explore design sense, SRP, and Clean Architecture. https://qualitycoding.org/design-sense/
Can Improving Your Design Sense Help You TDD? | Quality Coding
If something is hard to TDD, how good is the design? A bad example from Apple leads us to explore design sense, SRP, and Clean Architecture.
qualitycoding.org
January 7, 2026 at 11:56 PM
Reposted by Jon Reid
I'm shaking things up in January.

1. Remote training bookings confirmed by Jan 31st are HALF PRICE. Save ££££ if you're planning training in the next few months.

2. All courses now have modules focused on applying code craft practices in AI-assisted wotshisface.

Details at codemanship.co.uk
January 6, 2026 at 11:49 AM
Reposted by Jon Reid
I'll be speaking on ADHD and Software Development at SeattleJS on Wednesday, Jan. 14th
Come join us for a great meetup!
www.meetup.com/seattlejs/ev...
January 6, 2026 at 3:53 PM
GenAI can be a helpful tool. …But are you really going to stop reviewing/understanding/critiquing your AI-generated code? Cautionary tale: “Ribbit ribbit! Artificial Intelligence programs used by Heber City police claim officer turned into a frog” www.fox13now.com/news/local-n...
Ribbit ribbit! Artificial Intelligence programs used by Heber City police claim officer turned into a frog
An artificial intelligence that writes police reports had some explaining to do after it claimed earlier this month that a Heber City officer had shape-shifted into a frog.
www.fox13now.com
January 4, 2026 at 4:18 AM
My household, overrun by the grandkids, is more agile/lean than your team. And that's mainly due to my wonderful wife. I observe:

- Frequent check-ins: "How are you doing? Is there anything I can do to make your life easier?"
- Frequent evaluation: "Is this working? How can it be better?"
January 2, 2026 at 7:20 PM
Reposted by Jon Reid
Even when it's not an industrial-strength "real-life" project situation, discussions of testing strategy are quickly transformed into discussions of interpersonal conflict and individual emotional turmoil.

And that's why you need an adviser like me: help navigating the hard parts. ;)
December 31, 2025 at 6:23 PM
We needed to move one mattress on top of another, temporarily.
Me: I got it.
Wife: You're going to need my help.
Me: No. I will use the power of Beelzebub.
Wife: Welp, I guess that's the end of Christmas, then?

But this is what I meant. I played this amazing track. www.youtube.com/watch?v=Nurs...
Beelzebub
YouTube video by Bill Bruford - Topic
www.youtube.com
December 26, 2025 at 11:18 PM
With help from Focus, I wish you a Merry Christmas and a Happy New Yeeeeeeeeeear!! www.youtube.com/watch?v=Lez_...
Merry christmas and happy new yeaar!!! FOCUS
YouTube video by genesis310788
www.youtube.com
December 26, 2025 at 5:35 PM
Reposted by Jon Reid
Wait time variance goes up as the size of PR increases.

The bigger the PR, the more uncertain when it's going to be merged.

What does that mean?

If you want higher predictability, you need smaller batches. Period.
December 26, 2025 at 1:29 PM
Reposted by Jon Reid
The open access version of Cultures of Programming is now available online. Just in time for the holiday break!

Read it here: www.cambridge.org/core/books/c...

If you prefer a real book, use PETRICK26 for a 20% discount (valid until January 31) at: www.cambridge.org/9781009492348
December 19, 2025 at 10:18 AM
Reposted by Jon Reid
Exciting news! We've confirmed @emilybache.bsky.social as a trainer for the training day at our event in June!

Have you made any plans for 2026 yet? Registration is now open for SoCraTes UK 2026!

Register: socratesuk.org/tickets.html
SoCraTes UK - Tickets
Join us for another year of SoCraTes UK happening on June 18th - 21st! The event is hosted at Milton Hill House, UK which is surrounded by 22 acres of landscaped grounds and forest, delivering…
socratesuk.org
December 19, 2025 at 10:55 AM
ApprovalTests in Swift makes it easy to write powerful parameterized tests. Verify a sequence of inputs, but transform the values through the function you want. https://qualitycoding.org/parameterized-tests-approvaltests-swift/
December 17, 2025 at 8:07 PM
Reposted by Jon Reid
Is Spec-Driven Development the end of Agile software development? www.sicpers.info/2025/12/is-s...
Is spec-driven development the end of Agile software development? | Structure and Interpretation of Computer Programmers
www.sicpers.info
December 12, 2025 at 9:51 PM
Reposted by Jon Reid
Indiana’s Senate has voted AGAINST the GOP gerrymander that’d have locked in a 9-0 map.

This keeps the 7-2 map in place, saving two Democratic seats heading into 2026.

The vote failed big, 19/31.

The MAJORITY of the GOP senators opposed it!
December 11, 2025 at 9:38 PM
You have a Swift optional value. How can you write an XCTest assertion to verify it, while getting the most from any assertion failures? The answer is: "It depends." https://qualitycoding.org/unit-test-optionals-swift/
How to Unit Test Optionals in XCTest | Quality Coding
You have a Swift optional value. How can you write an XCTest assertion to verify it, while getting the most from assertion failure messages?
qualitycoding.org
December 10, 2025 at 11:04 PM
Sorry, I have to cancel today's "TDD with SwiftUI" live stream. Family obligations (good ones).
Follow me on Twitch (qcoding) so you get my next go-live notification so you can join in next time as I continue exploring augmented coding using TDD.
December 7, 2025 at 4:02 PM
Reposted by Jon Reid
I tell this story periodically, but it seems like it's time again:

General Motors ran an automobile manufacturing plant in Fremont, California, that was one of the worst in the country. Accident rates and defects were astronomical. Absenteeism was through the roof.
1/12
December 4, 2025 at 5:53 PM
Amen
Somalis are made in the image of God.
December 4, 2025 at 2:54 AM
Swift enumerations: How to write XCTest assertions to verify them? How do we test their associated values? Can we avoid overspecified tests? https://qualitycoding.org/unit-test-enumerations-swift/
How to Unit Test Enumerations in XCTest | Quality Coding
Swift enumerations: How to write XCTest assertions to verify them? What about associated values? Can we avoid overspecified tests?
qualitycoding.org
December 3, 2025 at 11:15 PM
Reposted by Jon Reid
It's been going on for decades.

www.apmreports.org/episode/2019...
November 29, 2025 at 7:43 PM
Reposted by Jon Reid
"Disagree and commit" is disingenuous. This is a better idea. #Teams https://werd.io/disagree-and-lets-see/
November 30, 2025 at 1:24 AM
Reposted by Jon Reid
An issue we're seeing at all levels of university is that many students are simply refusing to do *anything*. They aren't reading the syllabus, aren't following assignment guidelines, aren't engaging with material, ignoring deadlines. And this might seem like old news, but it truly has ramped up.
November 28, 2025 at 10:15 PM
Reposted by Jon Reid
Remember that the “Red” (failing test) part of #TDD is the perfect time to make sure the failure message is useful, instead of the less than helpful “expected actual to not be null”.

#UnitTesting
November 28, 2025 at 5:41 PM