About
I’m Yu Zhang. A standard professional introduction would go something like: “Autonomous driving algorithm engineer, years of experience in SLAM, written code, led teams, and some of my mapping and localization algorithms are actually running in trucks and passenger vehicles today.” But that kind of description belongs on LinkedIn. Here, I’d rather take a different approach and share more about who I am beyond the resume: tech notes accumulated over the years, reflections along the way, and all sorts of “off-topic” experiments.
As a kid I wanted to be a scientist—probably every child has had that dream at some point. In college I wanted to do something hands-on in engineering. Looked at architecture, glanced at civil engineering, and ended up in HVAC. Everyone said fluid dynamics and heat transfer were brutal, but I actually found them fascinating. I’d struggled with calculus and linear algebra before, but studying fluid dynamics somehow made those math concepts click. Later I went abroad for a master’s in mechanical engineering. A senior of mine suggested that since I was already overseas, I should take advantage of the flexibility and try a different path. So I not only switched fields but also picked up some computer science courses. That’s when I taught myself Java and got obsessed with design patterns—pored over several thick books on the subject, each one more elegant than the last. Little did I know that after graduation, it would be C++ all day every day. The deeper I went, the more bottomless it seemed. From not knowing what a pointer was, to casually modifying allocators—the longer I study it, the less I dare claim I understand C++. I even went and got a dual degree in engineering and technology innovation management, a program that teaches STEM students about innovation and business, weaving together economics, management, and other disciplines. Each course only scratched the surface back then, and I only scratched the surface of each course. But now when I run into real-world problems, I keep recalling those concepts, following the threads to learn more—and it suddenly hits me that this might be exactly what the program was designed to do.
Near graduation, I was thinking about joining a big tech company for frontend/backend or cloud work. I was reading about MapReduce at the time and thought it was pure genius—surely the future had arrived. Then I pivoted to Docker and distributed systems. But another senior told me: why write cookie-cutter code when you could come work on autonomous driving? So I started learning SLAM and robotics from scratch, basically “reincarnating as an algorithm engineer in the autonomous driving world.” Learning SLAM was very much learning on the job. Started with traditional geometry-based approaches, then picked up learning-based methods. Plenty of bumps along the road—some engineering problems I solved elegantly, others still make me cringe. Had days where I was heads-down coding and so absorbed I lost track of time, and days where it was back-to-back meetings, requirements, system design, and the rest of the time firefighting. For a while I focused on VIO and spent my free time working through marginalization equations—the math in SLAM is genuinely beautiful. Then SuperPoint came along, followed by NeRF and 3DGS, and SLAM started drifting toward AI. In practice though, traditional graph optimization is still the workhorse. Learning-based SLAM and 3DGS are slower to land in production than my original expectation. The biggest lesson from work is that old saying: it doesn’t matter if the cat is black or white, as long as it catches mice.
My other interests are all over the place. At work I’ve sawed aluminum bars and built AV test rigs. I’ve done 3D printing, tinkered with circuit boards, and set up my own NAS. The garage has a drill press and spray guns—though I have to admit the spray guns have mostly only been used for painting Gundam models. Heading into 2026, I’m debating whether to bring a 3D printer and CNC machine home and start a personal workshop. But then I worry they’ll turn into expensive toys gathering dust like the drill press. Then again, life is short, everything can be a toy, might as well buy now and enjoy. But then again, maybe wait for a sale. But then again, maybe I should play around with the AI video generation tools that are blowing up right now, experience being a one-person cyber-director first, and become a one-person workshop owner later.
From college to now, I’ve accumulated quite a pile of notes. Always wanted to build a website to organize them, but kept feeling it wasn’t important enough and would take too much time, so I put it off year after year. Until recently, “vibe coding” got good enough that a bit of tinkering actually produced a decent site. I still don’t know whether to thank AI or blame it: thank it for helping me finally build this little corner of the internet; blame it because who has the patience to read notes anymore when you can just ask AI. But overthinking gets you nowhere. The best time to plant a tree was ten years ago; the second best time is now. Whatever I learn from here on out, I’ll put it here. If it helps someone, great. If not, consider it training data for AI, also great.