Dmitry Blotsky

Bachelor of Software Engineering, Candidate for MASc

Technical Skills

Python a CI system for VoIP hardware; UToronto's Fly-FISH gene database
C, C++ a real-time microkernel to control Märklin trains; an embedded TCP server
JavaScript most of the code behind; an SMT2.0 to JavaScript compiler
GNU Make the whole build process for; most of my other projects
Java worked on IBM's J9 JVM JIT compiler; a territory-conquering game
Assembly a C to MIPS compiler; a microkernel on ARM; a calculator on Coldfire
Misc. skills and technologies: regexes, RDF, SQL, Git, Mercurial, SAT/SMT, SMT2.0, Linux, Mac OS X, Windows, Django, Sphinx, bash, TCP/UDP, MDNS, ARP, HTTP, HTCPCP, SIP, REST, Wireshark, Eclipse, HTML, CSS, Less, SCSS, Gulp, LaTeX, Scheme, nginx, Apache, 3DS Max


ESLint SMT Extensions, my master's thesis, May 2015 - present
  • adding powerful reasoning features to two JS linters, ESLint and Jalangi2, using the Z3str2 solver
  • supervised by Dr. Vijay Ganesh, a Waterloo professor and alumnus of Stanford and MIT
Boolean Satisfiability on the GPU, a research project, Jan. 2013 - Feb. 2014 (14 months)
  • researched parallelisation of SAT solvers as part of a team of 5 software engineering students
  • handled automation for testing/benchmarking; worked with AWS, Make, Python, OpenCL, C++
  • supervised by Dr. Vijay Ganesh

Work Experience

Software Engineer at Microsoft Corporation, Oct. 2014 - Apr. 2016 (1.5 years) A multinational computer software, hardware, and services company.
  • worked on Apache Cordova as part of the Developer Tools division
  • worked on automation: CI, docs, and testing; used JS, Python, Make, Jekyll, and Buildbot
  • received code reviews from devs from Google, Mozilla, and Adobe
  • first on my team to be an Apache Committer; promoted halfway to SDE2 after 1 year
  • quit to work full-time on master's degree
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.
  • worked on the Just-In-Time compiler for the J9 JVM; used C/C++
  • took an Advanced Compiler Optimisation course intended for full-time employees
  • received an Excellent co-op evaluation
Software Engineer at Arcturus Networks Inc., Aug. 2011 - Apr. 2012 (8 months) An embedded systems company providing VoIP solutions for civil industries (medicine, transportation, etc.).
  • wrote a CI system in Python for Arcturus' VoIP products; increased test coverage from 0% to 50%
  • wrote a TCP server on the MQX RTOS to control a VoIP app on a tiny processor (Kinetis ARM)
  • received an Outstanding co-op evaluation
Web Developer, Web Master at Marketcircle Inc., (8 months total) A software company developing business applications for the Apple platform, with 200k+ clients. As Web Developer, Jan. - Apr. 2011 (4 months)
  • wrote a marketing analytics engine; used Python, JS; moved company site to Django on own time
As Web Master, May - Aug. 2010 (4 months)
  • maintained company website; used JS, HTML, and CSS; received an Excellent co-op evaluation

Other Projects

Fly-FISH, University of Toronto's fruit fly gene database, June. 2014 - present
  • working with bioinformatics researchers from the Krause Lab at the University of Toronto
  • Rewrote old database and exposed a human interface and a REST API; used Django
  • credited in paper published in CSHLP Genes & Development journal
GitHub Profile, Jan. 2011 - present
  • projects include: a game, Arduino programs, and reverse-engineering tools


Master of Applied Science at University of Waterloo, Jun. 2014 - present (Expected to graduate in 2017)
ECE 750 Computer Reasoning logic, SAT, SMT, symbolic execution, analysis & synthesis
Bachelor of Software Engineering at University of Waterloo, Sept. 2009 - Jun. 2014 (5 years)
ECE 459 Software Performance OpenMP, profiling, loop unrolling, GPUs, MapReduce, MPI
CS 452 Real-Time Programming ARM, I/O, scheduling, timing, fault tolerance, performance
CS 486 AI CSP, hill climbing, naïve Bayes, HMMs, bandits
CS 458 Security & Privacy overflows, IDSs, [a]symmetric key crypto, k-anon
CS 341 Algorithms analysis, D&C, DP, graph algorithms, NP-Completeness
CS 343 Parallel Programming Dekker's/Bakery, monitors, lock-free structures, futures
CS 447 Testing black/white-box testing, input partitioning, coverity
Other Studies
At IBM Adv. Compiler Optimization SSA, pointer analysis, instr. scheduling, register allocation
Stanford AI Intro to Artificial Intelligence machine vision/learning, games, filters/localisation, NLP

Community Activities

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


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