beonanotherplanet

KIM SEUNGHA
@be_onanotherplanet

JS/TS to Rust - My Personal Background

created on 2025-05-17, updated on 2025-05-19

Prologue

From “Pure JavaScript” to Rust Evangelist

I’m a self-taught (read: non-CS-major) developer who spent the first years of my career writing nothing but JavaScript. My original company even ran the entire stack—from browser UI to server logic to NoSQL—on plain JS. Back then, TypeScript was still an exotic tool whispered about by early-adopter colleagues overseas.

When TypeScript finally became mainstream, It did seem like it was a little bit weird. It felt as if the language had papered over JavaScript’s greatest strengths—its looseness and flexibility—without fully committing to the safety you’d expect from statically-typed languages. Any could sneak in with "any" in everytime in everywhere, so what was the point? Yet, after a few years in an all-TypeScript environment, I discovered I couldn’t comfortably go back to vanilla JS. Eventually, The ergonomics of solid autocompletion and error checking had won me over.

And then came Rust.

Learning Rust the “Hard” (But Better) Way

My next company wrote everything in Rust. But now that seasoned Rust engineers are scarce in real market, the CEO’s hiring philosophy was simple: find promising developers and train them from scratch. And with some luck, I was able to be one on these "promising developers". After succeeded to transfer, I spent my first entire month doing nothing except study—pair-programming directly with the founder, line-by-line code reviews, daily feedback loops. It was brutal, rewarding, and utterly eye-opening.

Ironically, my lack of C/C++ or Java baggage turned into an advantage a little. I had no prior mental model of manual memory management, so concepts such as ownership and borrowing sounded fresh rather than restrictive. Mentors told me I adapted faster precisely because I didn’t cling to old patterns.

Why Rust, in the AI-Powered “Vibe-Coding” Era

These days, many of us prototype with ChatGPT (or similar) open beside the editor. When I ask an LLM to generate TypeScript, I still have to scrutinize every line—any casts, missing null checks, vague generics, you name it. But with Rust, the compiler itself serves as an uncompromising referee. An AI can happily spit out code; if it compiles, chances are good it’s already memory-safe, thread-safe, and panic-free. That built-in correctness turns Rust into the ultimate “trust-but-verify” partner for the era of pair-programming with machines.

Epilogue

I’m a developer based in South Korea, and my goal is to create resources that make it easier for JavaScript and TypeScript developers here to dive into Rust. A podcast—and eventually a book—will be the main milestones on that journey. Along the way, I’ll organize my study notes and share them here in English as well, because I believe there are plenty of developers beyond Korea who, like me, know only JavaScript (or TypeScript) but are curious about Rust.

That’s a quick snapshot of who I am. I hope you’ll look forward to the posts I’ll be publishing on this blog. I’m excited to give this my best effort!