Python SDET Bootcamp
The Engineering Side of Quality. Moving beyond 'record and playback' to build resilient, high-scale test infrastructure. A newsletter for SDETs who write code
- Indexed issues, last 90 days
- 10
- Latest publication
- Aug 13, 2026
- Audience
- Checking…
- Earliest in this view
- Jul 18, 2026
Latest issues
Lesson 90: Portfolio Release — Publishing Your Framework to GitHub & LinkedIn (opens the original)
Read excerpt
The Junior Trap: “I’ll Just Push It”Picture this: you’ve spent weeks building something real. A framework with Page Objects, retry logic, CI/CD integration, and Playwright tests. You’re proud of it. You type:git add . git commit -m "final" git push And that’s it. You paste the GitHub link on LinkedIn with the caption: “Excited to share my latest project! Python SDET Bootcamp is a reader-supported p
Lesson 89: Final Execution & Debugging (opens the original)
Read excerpt
The Junior Trap: “Just Run It and Hope”Picture a junior QA engineer on their first CI/CD project. They’ve written 200 tests across three suites — Web, API, and Mobile. The night before the production release, they run everything manually on their laptop. Green. All green. They push to GitHub, the pipeline triggers, and 40 minutes later the build is red. Seventeen tests failed. But when they run those same tests locally? Green again.This is test flakiness, and it is the #1 reason QA teams lose cr
Lesson 88: README & Documentation (opens the original)
Read excerpt
The junior trapPicture a fresh grad joining your team. Their first task: add a test suite to a service, then write a README so the next person doesn’t have to ask them how to run it. Here’s what that README usually looks like:## Setup pip install -r requirements.txt pytest Four lines. It looks done. It is not done — it’s a guess dressed up as documentation.The problem isn’t that it’s short. The problem is that nothing checks whether those four lines are still true.</st
Lesson 87: Refactoring & Cleanup (opens the original)
Read excerpt
The Junior Trap: “It Works On My Machine”Imagine handing your car keys to a mechanic who says, “I don’t label my tools, I just remember where they are.” That’s fine — until they get sick, or until you hire a second mechanic. Your UQAP codebase is no different.A junior dev or transitioning manual tester usually writes code like this:# junior_trap.py def login(d, u, p): d.find_element("id", "user").send_keys(u) d.find_element("id", "pass").send_keys(p) d.find_element("id", "bt
Lesson 86: Slack/Teams Notifications — Build Alerts That Actually Work in Production (opens the original)
Read excerpt
The Junior Trap: Why This Seems Easy (and Isn’t)Imagine your build fails at 2 AM. Nobody knows. The team ships broken code to production. This is the exact problem Slack/Teams notifications solve — but only if you implement them correctly.Here’s how a junior dev typically writes this:# DON'T DO THIS import requests def test_login(): result = run_login_flow() if not result: requests.post( "https://hooks.slack.com/services/YOUR/WEBHOOK/HERE", json={"text":
Publishing over time
Last 90 days. Choose a month to open its work.
Recurring subjects
Named in the text we hold. One piece can cover several.
Audience
No verified audience measurement yet.
About this data
Counts cover the work we have indexed. Tone needs enough text and a confident classification. Excerpts and episode notes are not full articles or transcripts.
Identity or attribution wrong? Suggest a correction.