1 of 13

The journey to Rust from a student

presented by Marcus Lee

2 of 13

A little about me...

  • Infrastructure Engineer @ Balaena Quant�
  • A recent SWE graduate from TARUC�
  • Previously worked as a full-stack engineer for e-commerce solutions & Web 3 platforms.

The journey to Rust from a student

3 of 13

The journey to Rust from a student

2010

Played with Java and JavaScript

while trying to run a MapleStory

Private Server.

2019

Learned basic Python during foundation.

2020

Started to code a bunch of side-projects in Python, including a 2000 users camp portal.

2021

Tried to build an e-commerce solution with Go and React.

2022

Dabbled into blockchain, Web3 development with Solidity and TypeScript.

2023

Worked with Rust full-time as an infrastructure engineer in Quant.

Played with Rust with WASM

and completed several tutorials

Learn more about Rust by using it for LeetCode

Had opportunity to work part-time with Rust writing APIs and libraries

4 of 13

Rust confused me for years…

The journey to Rust from a student

Ownership?

Allocator?

Lifetimes?

Macros?

Features?

Smart Pointers?

Fearless Concurrency?

Integer Types?

5 of 13

Errors that haunted me

The journey to Rust from a student

6 of 13

Love & Hate

The journey to Rust from a student

Super strict

Difficult syntax

Annoying

Force me to think ahead

7 of 13

Common pitfalls

  • Trying to write things that a crate provides.�
  • Cursing the compiler saying that he is wrong.�
  • Not looking for help or felt lazy to post SO / Github Issues.�
  • Complicating the solution when it fight against ownership rules.�
  • Read the Rust book!

The journey to Rust from a student

8 of 13

Let’s talk Ownership

Every data is owned by someone at all time.�

  1. Borrow�
  2. Move�
  3. Copy / Clone

The journey to Rust from a student

Read-only borrow

&Data

Read/Write borrow

&mut Data

or

Transferring ownership

Data

Make a copy of data

Data.clone()

9 of 13

System programmers can have nice things

The journey to Rust from a student

Cargo build

npm-like package manager

Superb error handling

Fantastic macros

Generated docs

Clippy

Cross platform support

rustup

A compiler that yells at you

10 of 13

The journey to Rust from a student

Python

TypeScript

Go

C++

Rust

Error Handling

👌🏼

Tooling

Expressive syntax

👌🏼

👌🏼

Productive

👌🏼

Performance

👌🏼

👌🏼

Libraries

👌🏼

👌🏼

11 of 13

Things that I’m excited for

The journey to Rust from a student

Enum Variant Types (EVT)

WASM & WASI

Xilem (UI Framework)

12 of 13

Summary

  • Help me to solidify CS fundamentals�
  • Learn to write software the safe way�
  • Trained me to think before writing�
  • Enrolled in a strong community

The journey to Rust from a student

13 of 13

Thank You!

The journey to Rust from a student