Ubaidullah/ product engineer
  • Work
  • About
  • Now
  • Playground
  • Contact
AvailablePKT --:--:--
CV
Let's build something that ships.

I take on a few product engineering projects at a time. If you need someone who can own a feature from the data model to the last CSS fix, that's the part I'm good at.

Start a conversation
Sitemap
  • Work
  • About
  • Now
  • Playground
  • Writing
  • Contact
Elsewhere
  • GitHub
  • LinkedIn
  • Instagram
  • Email
© 2026 Ubaidullah · Built in Pakistan
All systems normalbuild 0ff61bdNext.js · React 19 · Vercel
All writing
September 28, 2026·5 min

I taught my client to code

He started by translating three strings. Two years later he ships whole features, and some months he commits more than I do. Why I'd do it again.

When I started working with the founder of Tututor, he couldn't read code. He knew teaching and he knew exactly what schools needed, but every change went through me, including the tiny ones. "This button should say *Compartir*, not *Share*." "This label is wrong." Lists of them, every week.

So one day I showed him how to do it himself. Open the file, find the string, change it, commit, push. That was it.

His first commit to the frontend translated three strings. His first to the backend changed three lines: which AI model the tools used. I still remember thinking that was a good sign. He wasn't just fixing copy, he was curious about how the thing worked.

It didn't happen in a straight line, and I didn't plan a curriculum. He'd ask how to do something slightly bigger than last time, and I'd show him.

- A week after his first commit, he made a new AI tool by copying an existing one: 7 files, about 1,200 lines. Most of it was the copy, but he had to understand what to change. - A few months later he was adding tools on the backend himself. - In early 2026 he built his first complete feature across the backend and the web app: the school dining system. - By mid-2026 he was building billing receipts, handling returned SEPA payments, and generating tax forms. - In September 2026 he shipped an absenteeism system of about 10,000 lines.

His median commit in the AI-tools repo went from 16 lines in 2024 to 487 in 2026. His messages went from "update" to proper conventional commits. He works with an AI coding assistant now, the same way I do. In July 2026 he made more commits to the backend than I did.

At some level, yes. I've taught the client to do part of what he pays me for, and I'm fine with that.

A client who understands his product makes better decisions. When he asks for a feature now, he already knows roughly what it touches, so the conversation starts in a better place. He can tell a hard problem from an easy one, so he trusts the estimates. And he doesn't need me for every word on every screen, which frees me for the work that actually needs me: the backend, the architecture, the rebuilds, the store releases.

There's a practical side too. The junior developers I led through 2025 have moved on, and the product didn't slow down, because the founder could take on the work they used to do. Today it's the two of us, and either of us can pick up anything in the stack.

I also think it's simply fair. He's building a company on this code. He should be able to read it.

Start with the smallest real change, one that matters to them. For him it was Spanish copy. Let them push it to production themselves, because that's the moment it stops being your code and starts being theirs too. Then answer whatever they ask next.

I'd do it again with any client who wants to learn. Most of them never ask. I think we should offer.

clientsteachingTututor