< Back to Sunjay.ca Download PDF Version

Sunjay Varma

sunjay.ca   sunjay03

[email protected]



Proven, exceptional skills refined by over 10 years of experience writing high quality software

Work Experience

Rust Research Software Engineer - rust-lang.org Mozilla, San Francisco, CA, May 2018 - July 2018

  • Participated in the rewriting of the Rust programming language trait solver using logic programming
  • Developed a comprehensive set of logical rules for modelling "coherence" (an important language property)
  • Worked independently to integrate rules into Chalk, the custom-built solver created for the Rust language

Constraint Solver Research Assistant - plg.uwaterloo.ca Programming Languages Group, Waterloo, ON, Sep 2018 - now

  • Developing a fast, specialized solver for logical and numerical constraints (applying Gaussian elimination)
  • Working on a project designed to make unit conversions machine-checkable and compile-time safe

Compilers Research Assistant - cforall.uwaterloo.ca Programming Languages Group, Waterloo, ON, Sep 2017 - present

  • Implementing a dynamically-sized, copy-on-write string type with its own internally managed string heap
  • Solved key design problems to make the syntax of the string package as ergonomic as possible

Artificial Intelligence Research Assistant - chil.uwaterloo.ca Computational Health Informatics Lab, Waterloo, ON, Sep 2016 - Sep 2017

  • Applied Natural Language Processing (NLP) and Machine Learning (ML) techniques to rate the quality of online health articles
  • Rapidly learned NLP and ML topics necessary to produce results without any prior background knowledge

Software Developer - konradgroup.com Konrad Group, Toronto, ON, Jan - Dec 2016

  • Led the planning and implementation of the entire frontend and backend for a project from start to finish

Lead Software Architect - janetingley.com/anyware anyWare (University of Waterloo), Waterloo, ON, May - Aug 2015

  • Led a small team in the design and development of the entire software architecture for orchestrating several robotic sculptures with high volumes of input

Intermediate Software Developer Co-op - smartamp.com SMART Technologies, Calgary, AB, Sep - Dec 2014

Software Developer Co-op - smartamp.com SMART Technologies, Calgary, AB, Jan - Apr 2014

Full-stack Developer Part-time - clinicsense.com Clinic Sense, Toronto, ON, Jul 2013 - Oct 2014

Page 2

Sunjay Varma


Bachelor of Software Engineering (Candidate), Co-op, University of Waterloo May 2017 - present
Computer Engineering, Co-op, University of Waterloo Sep 2013 - Aug 2016

Open Source Work & Personal Software Projects

Teaching Programming to Complete Beginners - Turtle Graphics in Rust - turtle.rs Graphics library for the Rust programming language with a simple and straightforward graphics model

  • Writing a course to teach programming (in Rust) to people with no prior experience
  • Designed a fully featured graphics library with a simple, well documented, and easy to learn API
  • Refactoring the library internals to work in WebAssembly with no changes to the public interface
  • Fostering a community of contributors and learners who help with bugs and add example programs

Rust Programming Language Compiler - github.com/rust-lang/rust Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety

  • Mentored by Niko Matsakis (Rust Core Team) on the implementation of RFC 1598 Generic Associated Types
  • Extended the parser to support the necessary syntax for generic associated types
  • Updated name resolution and lifetime resolution code to support generics in associated types

Lion (Unit Conversion Runtime) - github.com/sunjay/lion A programming language and interactive REPL for automatically checking and performing calculations involving units

  • Carefully designed language so that it could be completed in two phases: interpreter, then compiler
  • Created an ergonomic way to specify units and conversions, even capable of finding indirect conversions
  • Designed a process that uses mathematical laws to infer the units of complex expressions

Fast Sudoku Solver - github.com/sunjay/sudoku Very fast Sudoku solving algorithm implemented in C, and then dramatically sped up with a rewrite in Rust

  • Optimized representation of Sudoku board to avoid excess computation and maximize solving speed
  • Created several reliable benchmarks to measure changes and ensure that performance does not degrade
  • In a set of 21,885 puzzles of varying difficulty, 85% were completed in less than 10 ms, 80% were completed in less than 5 ms, and 60% were completed in less than 1 ms

Robo Quest - github.com/sunjay/robo-quest Game written in Rust targeting the GameShell, a small handheld GameBoy-sized Linux computer

  • Writing a game in Rust using SDL2 for rendering and the specs ECS for state management
  • Integrated sprite animations and physics engine into ECS, with Tiled Editor for level maps
  • Used Docker to reliably cross-compile to ARMv7 for the GameShell

For even more projects: github.com/sunjay For my writings on various technical topics: sunjay.ca

Last Updated: Sep 25, 2018