Hi, I’m Jim!

I’m someone with many interests, I used to imagine myself to be a physicist but now I am a software engineer 💻.

I dabble a lot in Python 🐍, TypeScript and Rust 🦀. I do some C++ and Go.

Polymorphism, concurrency, design patterns, static/dynamic dispatches, lifetimes, type theory and many more are the terms that excite me. 😍

Beyond these, I read a lot on the sciences, politics and philosophy.

This blog focuses on the technicals of software engineering.

Why name the blog asyncmove?

In April 2023, I asked a question on Stackoverflow on the syntax of Rust’s

move || async move { //...
}

Today, I know that the first move is to move the free variables into the closure i.e. || async move {...} and the second move is to move the free variables into the unnamed type that implements the Future<Output = ...> trait. The closure and the async block has something in common, that they are both unnameable types. I find the Rust programming language really elegant, well-thought out and fun to code in, hence I name this blog to a syntax async move that is unique to Rust.