My music is now located at musica.5am.ooo.

Sam Wang

(5AM WORKS)

I am a software engineer working on Android Studio at Google.

Scroll down to see my résumé and links to my other websites.

Last updated: 2023/2

Résumé

Skills

I prefer to use these languages whenever possible:

ElixirGleamF#RubyCrystalRustNim
C#ScalaFlix

I'm also proficient in these languages:

TypeScriptKotlinJuliaPowerShellPython

I'm currently learning/experimenting with these languages:

HaskellUnisonPureScript

I also work with other languages in my work experiences and personal projects, listed below

Work experiences

Google LLC

Android Studio

KotlinJavaC++PythonGo
Kirkland, WA, USASince 2020/5

Android Studio Platform

  • On the company-wide internal dashboard for viewing crash and UI freeze reports, added the ability to view Kotlin stack traces for individual threads in Android Studio (previously limited to C++ source code only)
  • Co-created and currently maintaining a plugin for IntelliJ IDEA used by Android Studio feature teams to view crash and freeze reports directly inside the IDE
    • Has the ability to view historical versions of source files at the appropriate revision based on the Android Studio version in the crash reports
    • Also has extensive integration with internal bug tracker to keep track of which reports have already been addressed

Android Lint

  • Created and maintaining linguistics-related Lint checks
  • Fixed and improved many existing Lint checks

Community contributions

  • As a 20% project contributor, currently implementing many UI and server-side features of internally-used office navigation app (since 2019/11)
    • Received a peer bonus for a successful and seamless migration of the backend
  • As a Kotlin readability reviewer, reviewing Kotlin code written by engineers from teams across the company and helping them gain "readability" (i.e. company-recognized proficiecy) in Kotlin, currently having reviewed over 1000 changelists (since 2022/3)
    • Onboarded six new readability mentors through a reverse-shadowing review process
    • Received a peer bonus for the high throughput of reviews
    • Became a Kotlin readability granter in 2022/12

Previous team:

Google Ads

DartJava
Mountain View, CA, USA2019/8 – 2020/4
  • Made front-end and back-end contributions to internal website used by Sales teams to manage advertiser information

Education

University of Waterloo2014/9 – 2019/4

Bachelor of computer science with minor in cognitive science

Key courses:

  • Algorithms (CS 341)
  • Concurrent and Parallel Computing (CS 343)
  • User Interfaces (CS 349)
  • Software Design and Architectures (CS 446)
  • Computer Networks (CS 456)
  • Introduction to Artificial Intelligence (CS 486)

Personal projects

Krestia

A personal constructed language

Project purpose:

  • To gain experience with F#, C#, and Azure
  • To experiment with constructed languages and formal grammars

Languages and frameworks used:

  • F#Parser library
  • C#Backend (Azure Functions) and frontend (Blazor WebAssembly)
  • TypeScriptLibrary for rendering the language's script

Linguisteria e programmettas

My website for small linguistic and programming projects

Project purpose:

  • To gain experience with Scala, WebAssembly, Astro, and Svelte
  • To conduct linguistic research on various topics that interest me

Languages and frameworks used:

  • ScalaLinguistic research source code
  • RustFront-end converter functions (WebAssembly)
  • TypeScriptFront-end interactive components (Svelte)
  • Static pages built using Astro

Musica de 5AM WORKS

A web player of my musical works

Project purpose:

  • To showcase my music
  • To gain experience with Blazor
  • To gain experience with the HTML5 audio API

Languages used:

  • C#Web app (Blazor WebAssembly)
  • TypeScriptHTML5 audio integration

Previously also used:

  • ElmWeb app (replaced by the Blazor implementation)

Lox interpreter (study project)

An interpreter and a compiler for Lox, the programming language presented in the book Crafting Interpreters by Robert Nystrom

Project purpose:

  • To gain experience with Gleam and Rust
  • To build a working interpreter and compiler

Languages used:

Internships

Facebook, Inc.

JavaScriptPHP
Seattle, WA, USA2018/9 – 2018/12
  • Using React and Hack (typed PHP), created a new ad format on the web
  • Responsible for the entire development process

Lime (Neutron Holdings Inc.)

RubyJavaScript
San Mateo, CA, USA2018/5 – 2018/8
  • Made many contributions in several codebases, including the server, web app, mobile app, and data analysis
  • Translated the internal mobile app into French

Cognitive Systems Corp.

TypeScriptPython
Waterloo, ON, Canada2017/9 – 2017/12
  • Designed and built a tool for visualizing movement data using Bokeh
  • Built and traned a neural network for detecting noise in movement data, supplemented by simutaled images for more precise training control

Microsoft Development Co., Ltd.

C#TypeScript
Minato, Tokyo, Japan2017/1 – 2017/4
  • Constructed a detailed metrics dashboard, used by the team to monitor a microservice
  • Completed major tasks, including the project setup, of a new grammar microservice

Encircle Inc.

CoffeeScriptPythonJava
Kitchener, ON, Canada2016/5 – 2016/8
  • Major contributions to the server, mobile and web apps
  • Built an extensible email templating system
  • Built a translations system, and translated the web app into French

Vena Solutions

JavaJavaScript
Toronto, ON, Canada2015/5 – 2015/8
  • Wrote extensive test suites for the platform's API using Postman, increasing overall test coverage by 30%
  • Using Postman Proxy, converted unmaintained tests in Java into Postman collections

Links to my other websites

GitHub

View my open-source repositories

SoundCloud

where I upload music, including original works and remixes


The following websites have been mentioned in my résumé:

Musica de 5AM WORKS

A web music player for all of my musical compositions

Krestia

for everything related to Krestia, my constructed language

Linguisteria e programmettas

for my small linguistic and programming projects

Contacting me

I'm reachable at you.need@javascript.