
Kai Li, a full-stack engineer, shares insights on remote collaboration across global teams and the transformative impact of AI on his development workflow. By utilizing AI tools like Cursor and Claude Code, he streamlines UI design and enhances productivity, enabling him to tackle projects independently. His new blog aims to document the genuine challenges and learning experiences of everyday developers, fostering a relatable community.
Cary Li
My name is Kai Li — though online I go by Cary. I'm a full-stack engineer based in mainland China, and I've been in the industry for a little over five years now.
I currently work on an outsourced team that serves State Street Bank in the US — mostly fund management system development and maintenance. The setup is fully remote: our BAs are in Ireland, the dev team is split between Hangzhou and Hefei, and we sync up every morning in a standup. There's also an India team and a US team in the mix, and every two weeks we all get on a call together for a cross-team code review. Honestly, this kind of distributed work has shaped how I operate more than any single job ever has. After years of coordinating across time zones, writing things down clearly because you can't just tap someone on the shoulder, and learning to trust people you've never actually met in person — async collaboration has just become second nature to me. I don't think I'd have it any other way at this point.
Lately I've been putting a lot of energy into AI application development. The way I see it, this is a rare window of opportunity. AI has made it possible for one person to attempt things that used to require a whole team. I've built a few small apps for myself — an English learning tool, a family task tracker — nothing groundbreaking, just things I actually wanted to use. Beyond that, I've been exploring how AI can improve the development process itself. I started with Cursor, and now I'm doing more thorough vibe coding with Claude Code. Each step has genuinely changed how I work. It's not subtle.
Which brings me to this blog.
Honestly, I've been meaning to start one since my first year as a programmer. Someone told me back then: every developer should have a blog. That thought sat in the back of my head for five years and I never did anything about it. Two things finally pushed me over the edge recently. First, I'm working toward going fully remote, and having a blog feels like a more genuine way to let people know who I am — beyond a resume. Second, I realized AI can now handle the UI work that always intimidated me. I do full-stack work, but building out a polished frontend from scratch on my own would eat up an enormous amount of time. With AI taking care of that layer, the last excuse disappeared. And yeah — while a lot of people are out there saying AI is going to put developers out of work, what I've actually experienced is that it just makes me capable of more than I was before.
So here we are. The blog is rough around the edges right now, but the first step is done.
Going forward, I want to share what I actually think about software development — not polished takes, just real ones. There are plenty of blogs from brilliant senior engineers whose writing is genuinely worth reading. But most developers aren't those people. Most of us are just regular folks figuring things out as we go. That's what I want to write about. If it ends up being useful to someone in a similar position, that's more than enough.
Thanks for being here.