Skip to content
Go back
🔄 회고

March–April 2026 Retro: A Bad Partner, a Bad Mentor

by Tony Cho
16 min read 한국어 원문 보기

TL;DR

March and April 2026 in retro. The AX series brought a wave of traffic and a lot of coffee chats. But with the people closest to me — Ellie, my partner, and the junior I'd been mentoring — the same emotional pushiness and lack of patience came right along with me. I revisited the trace of 4.85M global downloads from a previous service, and set May's One Thing as: ship.

Opening

It’s been a full year since I left the company. Around this time last year, Ellie and I were spending easy days on the Amalfi Coast in southern Italy. Recently we celebrated the one-year anniversary of that trip together. These days, life is mostly working from home and going on walks — pretty monotonous compared to a year ago — but in a different way, I’m enjoying each day.

The reason we named our team Loopetto in the first place was the Italian -etto suffix. The reason we call our favorite 4–6pm walk our “Florence time” is the same. A month or so in Italy is still shaping the two of us in obvious ways.

Florence at night, seen from Fiesole Florence at night, seen from Fiesole

Writing

March was a heavy writing month. The AX series I posted between March and April quietly hit, and traffic on what had been a very quiet blog actually grew. The earlier posts — Code Review in the AI Era and 9 Survival Skills for the Agentic Engineering Era — got real responses and feedback from individual developers. The AX series, since it’s mostly about organizations, drew traffic from inside organizations instead. Over the last two weeks, a fair amount of traffic came from inside Samsung and Naver. I’m genuinely curious what people there are saying about my posts internally, but there’s no way to know.

RankPostMar–Apr cumulative UV
19 Survival Skills for the Agentic Engineering Era5,789
2Installing Claude Code Across Your Org Doesn’t Make It AX5,011
3The Moment You Spin Up an AX Team, You’ve Already Lost3,948
4Code Review in the AI Era: How Should We Do It?2,346
5How the World’s Largest AI Company Trains the Next Generation of Engineers: A Review of the Anthropic x CodePath Curriculum1,623

Top 5 posts by cumulative UV during the March–April window, among posts published in that window

Some readers will think you were only at a startup, what would you know — and fair enough. But the substance of organizations and people doesn’t really change with size. What makes running an organization hard is that the domain and the people are always different, and yet the symptoms turn out to be the same: leaders who don’t want to take responsibility (from where the employees stand) and employees who only blame others (from where the leaders stand). The symptoms are common, but the causes behind those symptoms are as varied as the orgs themselves, so the solutions have to be just as varied.

So even when I write “you have to do it like this!” in a post, that can’t actually be a solution. The substance of running an organization is heuristic — it has to be solved against the specific shape of each organization and each person. If somebody is out there selling snake oil that says “in the AI era, here is exactly how organizations should be run!”, you should be suspicious.

Honest confession: those posts started from a place of irritation. The LinkedIn posts framing “we rolled out Claude Code across the company” as AX. The threads claiming organizational AX is going great because of tool training. They kept making me angry. So I wrote. Those people are just sharing whatever they want to share on their own platform — I just couldn’t stomach it. The posts were born out of my own small-minded, ungenerous reaction to them. (I’d probably have done the exact same thing in their position.)

Almost everything I’ve published recently started from that kind of emotion, and if Ellie hadn’t been my final editor, the writing would have been too raw to ever see the light of day. As I wrote more, I built a revision workflow, and AI surfaced a lot of references and examples I never would have found on my own — but it also swallowed plenty of my rough, untouched sentences. The system compounds with each pass, so now even one or two runs through the workflow produces fairly clean prose. (Though when I bring it to Ellie, I still get torn apart.) Recently a founder I met named the anger in my writing very precisely — and named the value of substance I keep yelling about behind that anger. I’m grateful he saw it.

While everyone else was focused on methodology, the people who reached out about coffee chats or interviews were curious about the person behind the writing. Maybe they’re part of the reason I keep writing.

What to write next is the harder question. Traffic and LinkedIn likes are nice dopamine hits, but they don’t translate into anything especially meaningful for me — financially or personally — in any sustainable way. The post just landed at the right time. I don’t write to a series or a content plan; I write to whatever I’m feeling at the moment, and there are quite a few drafts I got three or four pages into and just threw away. I know I’ll fall short of what AX-curious readers are now expecting, but starting in May I’ll just keep writing, whatever it ends up being.

(If you genuinely want more AX writing from me, please reach out directly. I want to hear what you’re wrestling with. As just a person on the outside, without feedback from inside actual companies, there’s a real ceiling on how much further I can take the writing.)

Coffee Chats

Thanks to the blog and the SNS traffic, a few people offered to grab coffee, and over the last two weeks I had a wide range of online and offline coffee chats. One day I stacked three meetings in a row — from noon to 10pm with no real meal, just meetings. I also did an interview for a foreign search firm’s AX piece going up next week, and had coffee chats with founders of early-stage startups. As I wrote on Threads, they were genuinely interesting, meaningful meetings.

When I got home and ate something late with Ellie, I don’t really remember what we ate. Strangely, I wasn’t tired — if anything, I was buzzing. I talk to Ellie every day, of course, but the texture of conversations with other people is just different, and that’s a good way to organize my own thinking. If I can keep this going, I’d like to keep the coffee-chat door open.

In a world where it sounds like AI is going to handle everything, what I confirmed is that there’s still real demand for hands-on experience with infrastructure that’s actually scaling, and for a partner you can trust. People keep starting with the keyword “tech lead,” but what they actually want is somebody at their level willing to share responsibility. That the great developers they already work with weren’t enough — that they reached out to me at all — was the first piece of evidence. The second was that we ended up syncing more on business perspective than on tech.

Cost-wise, hiring a CTO is heavy, so the proposal gets toned down to “tech lead” and offered carefully. Working with anyone is a real risk and a real opportunity cost — totally fair from where they stand. Optimizing dev cost with AI is an entirely reasonable choice, but if there’s some revenue and some fundamental product traction, hiring people is still a worthwhile investment. AI can write code, but AI can’t share the responsibility for a failed decision.

I don’t know what these long-term relationships will turn into, so I tried to talk through where I could help under the conditions I currently have. Some folks wanted an immediate follow-up, and I had to decline because of the product launch. The feeling wasn’t really regret — it was a clearer conviction that I need to focus on the project right now. Probably soon I’ll ship, soak in the bitter and salty taste of the market and the difficulty of growth, and then think about the next thing longer-term.

(Every single time, Jarvis — my OpenClaw agent — pulls out the One Thing strategy and scolds me to focus on what I should be doing right now. While I was deep in writing posts, the nagging was something else. These days I’m sitting quietly and shipping code.)

Project

The project I wanted to wrap up in March is still in flight. The big features are done; I’m in the last stretch now. I went back and archived the old reviews from the previous version of what I’m currently building, and it turned out the download count wasn’t 3 million but 4.85 million globally. I backed up all the store reviews into a separate archive site, and I noticed a lot of things I had missed before.

My first reaction was that I should have organized this earlier. I’m not under the illusion that I can re-create those numbers in a short time. But the trip gave me one more reason to keep pulling on the direction of the current project, and the previous service — which I had only remembered with regret — softened a little into something closer to affection. There were moments that felt like seeing some past version of us fighting hard, all over again.

I noticed something new while reading the reviews. Korean reviews are mostly requests. People don’t tend to leave a review unless they have a complaint, so reading the Korean ones makes my chest heavy — there’s a mountain of homework attached. Global users, on the other hand, leave actual experience reports and recommendations: who it’s good for, how to use it well, what worked for them. The old app and the new app are technically different products, but I believe the underlying user opportunity hasn’t disappeared, so these global reviews end up being a useful guide.

The previous service has been off the stores for years now, and I don’t believe the needs we validated back then are identical today. Legacy servers and DBs were fully wiped when we wound down the company, so this really is a zero-from-zero game, and I’m not assuming any of it will work right out of the gate. But, much later than we should have, Ellie and I are doing it the way we want this time, and slowly moving forward.

It’s not really dev anymore — it’s a mountain of small, annoying things. One of them got tangled up badly: the server-side update policy. I was lazy. I tossed a clean policy doc into Codex, assumed it would just sort itself out, and the test cases I wrote were almost all happy-path. The moment it hit the internal build, the policy unraveled and pulled a string of unexpected issues with it. I’m going back through the scenarios now. Mid-step, half-formed guidelines aren’t enough — what I actually need is clear test cases and a robust policy pipeline pushed into the system together. That’s where I got lazy. Lesson learned.

Ellie is redesigning the onboarding and paywall screens, using a lot of benchmarks she’s been pulling off X. Service sustainability comes down to paid conversion in the end, so the front-end of sales matters as much as the substance of the app. The previous service ran more on a free-platform monetization model with side revenue, so paywall design isn’t something Ellie and I have actually worked on together before — and we struggled a bit to align on direction at the start.

I’d like the next retrospective to come with at least some kind of result.

Part of the legacy service archive Part of the legacy service archive (downloads + review counts)

A Bad Partner, a Bad Mentor

Communicating With Ellie

Both Ellie and I are back in build-and-ship mode again, so there’s a coexisting urge in us to procrastinate and a tendency to disappear into our own work — she’s a designer, I’m a developer. The pressure to actually finish this and produce a result kept showing up as me pushing Ellie. Honestly, a lot of those moments didn’t need to happen. I was on edge, and that edge leaked out emotionally.

When that happens, the bad habits from my CTO/CEO manager days come back. Emotional pushing is, in the worst sense, addictive — it gives you the illusion that results come faster, the illusion that your point landed clearly.

But there’s a kind of edge that has its place. Sharpening a product, sharpening a plan, pulling work toward a clear goal — that requires sharpness. The problem is that work-mode sharpness was showing up word for word in conversations with Ellie. Schedule slips piled on top of each other, and without meaning to, I was pressuring her more often, and without meaning to, that pressure came out emotionally.

What I said most often was “what’s the goal?” When you’re each buried in your own work, even sharing the same room, you can’t see the inside of each other’s head unless you actually talk. We ended up having two or three emotional conversations before we sat down and put the goal in writing again, together. Looking back, the failure was on me — I hadn’t communicated it properly. Like every relationship: assume understanding, push it off, and eventually something blows up. Talk often, communicate often. I forget every single time.

Ellie was looking at the same goal I was. We just hadn’t put it into the same words. So at first there was silence, and then she started pushing back on my emotional venting. Action shows intent, but it can’t show all of it. That’s why we have language.

What I was actually feeling that day was anxiety, irritation, and exhaustion from poor sleep. What I said sounded like “let’s just finish the work faster,” but really, I was just handing my anxiety to Ellie.

Working with a partner is hard like that. But there’s nothing more exhilarating either.

Mentoring

I wrapped up a mentoring arrangement I’d been doing since November with a junior. I owe him an apology. The work getting busier was part of it, but the bigger reason was my own lack of patience.

I always thought of myself as a good teacher and a good coach. I wasn’t. The various environmental constraints I cited were really just excuses — I didn’t have enough patience, and I kept pushing him too hard. There were rough moments for both of us along the way.

Looking back, he was always actively absorbing my feedback and showed up wanting to learn, while I kept getting frustrated that he hadn’t fully metabolized what I’d told him. In the spots where I should have given him time to think and waited, I jumped in with the answer first — and that vicious cycle kept going. So yes: I wasn’t a good mentor.

The pace of change AI is bringing is so fast that I tried to dump every angle I was learning, watching, and absorbing onto him at once — declaring that he had to accept the change to grow well. But every kind of learning has its own pace. I was ignoring his pace and forcing mine on him.

When I first said let’s wind down the mentoring, he had a hard time with it for a while. I felt heavy about it too. But I wanted him to let go of the dependency on a mentor and find his own path, even if it meant taking the long way around. (Thankfully, we still talk lightly and regularly now about projects and other things.)

I tossed a lot at him in the name of helping. Looking back, most of it was just another name for my own anxiety.

Input Got Automated. Judgment Did Not.

Over the last two months, my input volume exploded. Thanks to Jarvis I expanded my YouTube cron channels, and once X opened up auto-translation, I’m collecting and reading far more international posts. About twenty summary feed items come in a day; I skim fast and only go deep on the ones that actually catch me. Once your input volume gets to that level, you ironically feel less FOMO. The best way to escape SNS-induced FOMO is, honestly, to stop making excuses and just radically increase your input.

The notes Jarvis automatically collected, summarized, and dropped into Obsidian over those two months crossed 1,200. Bucketed by category:

TypeNew notes (Mar–Apr)
YouTube digests629
Newsletters · tech columns175
English article translations · summaries149
AI · agent topics93
Concept notes · book notes65
Other (leadership, tools, market)110
Total1,221

Notes auto-collected and summarized by Jarvis, deduplicated by filename

But reading a lot and thinking a lot are different. I confirmed that ideas similar to what I’d written before in my own blog are being repeated overseas, and I also encountered a lot of new things I hadn’t seen before. Whatever portion of that became my own thinking made it into this quarter’s writing. The rest probably ended up as just storage. With AI agents now part of daily life, the sheer volume of text I read in a day has gone up enormously.

Retro and Looking to May

The Keep / Problem / Try for these two months.

Keep

Problem

I’m not going to spend a lot of words on Try. May’s One Thing is: ship. I’m taking Jarvis’s nagging at face value. Before I talk to Ellie, name my own state first — am I anxious, am I tired, am I irritated. Re-align our direction against a clearly written-down win condition. That’s it.

Closing

I look at the photos from Italy. The single insight I brought back from there a year ago was: stay in this present moment. Time is more expensive than money, and I refuse to waste it.

The reason I won’t miss our walk during Florence time is that the sunset and the mood of that exact moment belong only to that moment. They never come back. Work is the same. Nobody’s going to scold me if I push off what I’m doing right now, but I don’t want to manufacture more regret.

In May, I’ll be standing in front of a launch. Then in front of users. And, as always, in front of Ellie and myself.

Florence time still feels good. Only now, after the walk, there’s a product waiting to be built again.

Tony Cho profile image

About the author

Tony Cho

Indie Hacker, Product Engineer, and Writer

제품을 만들고 회고를 남기는 개발자. AI 코딩, 에이전트 워크플로우, 스타트업 제품 개발, 팀 빌딩과 리더십에 대해 쓴다.


Share this post on:

반응

If you've read this far, leave a note. Reactions, pushback, questions — all welcome.

댓글

댓글을 불러오는 중...


댓글 남기기

이메일은 공개되지 않습니다


Next Post
Books I Read in Q1 2026