• @joshchoo
  • Full Stack Engineer, StashAway
  • He/Him
  • Singapore
As a software engineer, I develop full-stack solutions for the web and mobile, primarily with TypeScript, React and Node.js.

Previously, I built custom embedded Android Operating Systems and kernels, focusing primarily on performance optimizations and power-efficient kernel task scheduling.
Read more

Full Stack Engineer

  • StashAway
  • Jul 2020 - Present


Aug 01, 2021
Aug 01, 2021
Wrote a Blog Post

One year as a software engineer

Post: https://joshchoo.com/writing/one-year-as-a-software-engineer
Sharing my story on how I pivoted it into tech and reflections on my first-year experience.
Jun 25, 2021
Jun 25, 2021
Wrote a Blog Post
Learned Rust

Lazy async operations in Rust

Post: https://joshchoo.com/writing/rust-lazy-async-operations

I learnt that Rust does not execute Futures (analogue to JavaScript Promises) until they are "awaited" (i.e. lazy behavior). On the other handle, JavaScript promises execute regardless of whether we "await" them. In my post, I explored how to simulate JavaScript's approach to Promise handling using tokio::spawn() in Rust.
Jun 24, 2021
Jun 24, 2021
Learned AWS
Designed a Backend System
Built a feature
+ 1

Learnt AWS by developing haveibeenbreached

A simple service to search for breached accounts: https://github.com/joshchoo/haveibeenbreached

I created a clone of haveibeenpwned providing APIs to query which breaches an email number has been involved in using the following stack:
  • AWS Lambda
  • AWS DynamoDB
  • AWS CloudFormation
  • Serverless Framework
  • Go

Key learning points for me include the following:
  • DynamoDB Single-Table Design
  • Setting IAM roles and permissions
  • Provisioning AWS resources with CloudFormation
  • How to configure and deploy with the Serverless Framework
May 30, 2021
May 30, 2021
Wrote a Blog Post

Effects of thread pool size on concurrency

Post: https://joshchoo.com/writing/thread-pool-concurrency

I wrote this blog post to quantify the constraints on concurrency that a multi-threaded server with a fixed thread pool size would encounter if every Nth request experienced a fixed delay. The post explores a synthetic experiment and is primarily an exercise in quantitative reasoning.
May 16, 2021
May 16, 2021
Learned Rust
Finished reading a book

Finished reading 99 Bottles of OOP by Sandi Metz

Follow along code examples in Rust: https://github.com/joshchoo/99-bottles

99 Bottles of OOP was one of my favorite hands-on books to strengthen my coding process. I enjoyed Sandi's style of guiding the reader through her thoughts, bringing up concerns the reader might have, discussing tradeoffs, deciding when and how to surgically refactor and create abstractions, and making value judgements.

I also took the opportunity to learn the Rust programming language by using it to follow Sandi's coding examples: https://github.com/joshchoo/99-bottles

Interestingly, I found that I internalized the book's concepts more deeply when I code along with a programming language I'm not yet familiar with. Probably because I had to slow down and think quite often.
Apr 29, 2021
Apr 29, 2021
Built a feature

Developed aosp-missing-blobs

A Rust command-line tool to generate a list of missing Android OS system libraries: https://github.com/joshchoo/aosp-missing-blobs/

Building Android Operating Systems can be complex and difficult 😕. Missing important system libraries can lead to runtime errors that are frustrating to debug. aosp-missing-blobs makes it easy to identify these missing system libraries by searching the existing system libraries, tracking their referenced dependencies, and presenting a list of the missing dependencies. Within a split second ⚡!
Get your own page like this