Dmitry Blotsky

Bachelor of Software Engineering, Candidate for MASc

github.com/dblotsky dmitry.blotsky@gmail.com
dmitryblotsky.com

Technical Skills

in Python I wrote: a hardware testing system; UToronto's fruit fly gene database
in C, C++ I wrote: a real-time microkernel; an embedded TCP command console
in JavaScript I wrote: the code building and running cordova.io; a JavaScript to SMT2.0 transpiler
in Java I wrote: JIT dump for IBM's J9 JVM; a Java to x86 compiler
in Assembly I wrote: an OS on ARM; a compiler for x86; a compiler for MIPS; a calculator in Coldfire
in GNU Make I wrote: automation for every project on which I've worked
 
Assorted skills & technologies: regexes, MongoDB, Redis, SQL, RDF, Git, Mercurial, SAT/SMT, Linux, Mac OS X, Windows, Django, Flask, Sphinx, Ansible, node.js, express, AWS, bash, OpenCL, TCP/UDP, ARP, HTTP, HTCPCP, REST, Wireshark, tcpdump, Eclipse, HTML, CSS, LaTeX, Scheme, nginx, Apache, 3DS Max

Industry Experience

Software Engineer at Brizi Inc., Jun. 2017 - present A technology company providing fan-controlled robotic cameras at sporting events.
  • took lead of all web technologies at the company; moving backend to AWS Lambda + S3
  • shifted engineering team to Agile process; automated infrastructure with Ansible
  • reduced front end user-perceived latency by 20%, and app footprint by 25%
Software Engineer at Microsoft Corporation, Oct. 2014 - Apr. 2016 (1.5 years) A multinational computer software, hardware, and services company.
  • worked on Apache Cordova (formerly PhoneGap) as part of the Developer Tools division
  • first on my team to be an Apache Committer; promoted halfway to SDE2 after 1 year
  • in a team of 10+, led effort to move team to Agile process
  • quit to work full-time on master's degree
Docs Generator, Jun. 2015 - Apr. 2016 (10 months)
Testing and CI, Oct. 2014 - May 2015 (8 months)
  • overhauled testing and end-to-end CI for Apache Cordova using Buildbot and Jasmine
  • had code reviewed by engineers from Google, Mozilla, and Adobe
Software Engineering Intern at Apple Inc., Aug. - Dec. 2013 (4 months) A multinational consumer electronics and technology corporation.
  • as part of Xcode Product Engineering Team, created a tool to logically analyze development data
  • received an Outstanding co-op evaluation
Software Engineering Intern at IBM, Jan. - Apr. 2013 (4 months) A multinational technology and consulting corporation.
  • took an Advanced Compiler Optimisation course intended for full-time employees
  • received an Excellent co-op evaluation
JIT Dump for J9 JVM, Jan. 2013 - Apr. 2013 (4 months)
  • worked in a team of 40+; feature is still used, and got open-sourced with OpenJ9
Software Engineer at Arcturus Networks Inc., Sept. 2011 - Apr. 2012 (8 months) An embedded systems company providing VoIP solutions for civil industries (medicine, transportation, etc.).
  • received an Outstanding co-op evaluation
Command Console on ARM Microcontroller, Sept. 2011 - Dec. 2011 (4 months)
  • for a processor with 1MB of RAM, wrote a TCP-based command console on the MQX RTOS
Hardware Testing Framework, Jan. 2012 - Apr. 2012 (4 months)
  • wrote an end-to-end testing system in Python for Arcturus' VoIP products
  • increased automated hardware test coverage from 0% to 50%

Research

Master's Thesis, Jan. 2017 - present
  • wrote a fuzzer (automated tester) for state-of-the-art SMT solvers
  • supervised by Dr. Vijay Ganesh, a Waterloo professor and alumnus of Stanford and MIT
Vulnerability Finder for JavaScript, May 2015 - Nov. 2016 (1.5 years)
  • as part of master's thesis, worked on a vulnerability finder for JavaScript programs

Other Projects

Fruit Fly Gene Database, Intermittently, 2014 - present
  • wrote Fly-FISH, University of Toronto's fruit fly gene database
  • credited in paper published in CSHLP Genes & Development journal
Java Compiler, Jan. 2017 - May 2017 (4 months)
  • in a team of 3, built a compiler for a subset of Java to x86 assembly
  • set up builds & tests for code in 3 languages (C#/F#/Python) for 3 OSes (macOS/Windows/Linux)
  • implemented LLVM IR and several peephole optimisations
Real-Time OS, May 2013 - Aug. 2013 (4 months)
  • wrote a microkernel RTOS for ARM, and an application for it to control physical Märklin trains
More projects available on my GitHub Profile.

Education

Master of Applied Science at University of Waterloo, Jun. 2014 - present (grad. in 2018)
Bachelor of Software Engineering at University of Waterloo, Sept. 2009 - Jun. 2014 (5 years)

Advanced Topics I've Studied
AI & ML CSP, hill-climbing, naïve Bayes, decision trees
Robotics particle filters, planning, SLAM, machine vision
Logic SAT & SMT, formal verification, symbolic execution, TLA+
Systems compilers, profiling, multithreading, networking, UNIX
Security buffer overflows, IDSs, [a]symmetric key cryptography, k-anonymity
CS Theory category theory, complexity theory, λ-calculus, type theory, parsing
Control Theory PID control, stability, applications

Community Activities

Percussionist, orchestra@Uwaterloo Oct. 2009 - Aug. 2016
Drummer, Engineering Jazz Band Oct. 2009 - Aug. 2016
Member, Radio Amateurs of Canada Mar. 2012 - present
Engineering Leader, Orientation Week 2010 at the University of Waterloo Sept. 2010

Awards

AP Scholar with Distinction, College Board Jun. 2009
University Of Waterloo Merit Scholarship, University Of Waterloo Sept. 2009
Young Authors' Award, non-fiction piece, Toronto Catholic District School Board May 2008


+ 15 awards from Model UN conferences at the municipal and provincial level