Eddie Antonio Santos

Curriculum Vitae

Software engineer and computer science educator


MSc. Computing Science

University of Alberta
January 2016–Expected: April 2018

BSc. Computing Science

University of Alberta
September 2010–December 2015

Technical Skills

Programming languages

  • Python
  • JavaScript
  • C
  • Erlang
  • Ruby
  • Java
  • Scala
  • PHP
  • Perl
  • C#
  • R
  • Scheme
  • C++
  • Haskell
  • 6502 Assembly
  • MIPS assembly

SQL, Redis, MongoDB, SPARQL, ElasticSearch


Vim, IntelliJ Platform, Atom, Eclipse


macOS, Ubuntu/Debian Linux, OpenBSD, Other Linux distributions

Version Control

Git, Mercurial


Docker, Vagrant

Natural languages

fluent reading, speaking, writing
fluent reading, semi-fluent speaking, semi-fluent writing

Work Experience

Software Engineer

February 2018–
Dr. Antti Arppe
  • Write code that cleans and organizes recording validation data.

  • Interpret requirements and deliver work in incremental sprints.

  • Create a web application in Flask/SQLAlchemy to assist in manual recordings validation.

Teaching assistant

January 2018–
Joshua Charles Campbell
  • Lead CMPUT 296 (Web Development) labs.

  • Create novel, exploratory labs on web technologies.

  • Mark lab assignments.

  • Support and mentor students learning the material.

Course design assistant

September 2017–
Dr. Osmar Zaïane
  • Write, edit, and produce video tutorials teaching Python and presenting fundamental computing science concepts.

  • Create quizzes to effectively test knowledge.

Teaching assistant

September 2016–December 2016
Dr. Abram Hindle
  • Lead CMPUT 301 (Software Engineering), CMPUT 404 (Web Development).

  • Lead demonstrations in software engineering and web development topics.

  • Improve quality of lab assignments.

  • Mark lab assignments.

  • Support and mentor students learning the material.

Research assistant

January 2016–August 2016
BioWare ULC
  • Research and develop state-of-the-art methods in crash report deduplication.

  • Perform experiments and empirical evaluations of technologies.

  • Implement production-quality implementations of novel algorithms.

Lead developer

May 2015–September 2015
Dr. Eleni Stroulia, Patrick von Hauff
  • Collaborate intensively with colleagues in medicine on a virtual patient simulation platform.

  • Research, evaluate, and integrate medical ontologies.

  • Write a web application using PHP, JavaScript (with React).

  • Experiment with databases such as Virtuoso, Neo4j and MongoDB.

  • Support and maintain a legacy PHP web application.

Computing Science tutor

  • Tutor students in introductory computing science, primarily using C and Python.

  • Establish a relationship with the student based on mutual trust and respect.

  • Proactively find resources that will help the student succeed.

  • Guide students to find the answer for themselves.

  • Promote active thinking rather than rote memorization.

Teaching assistant

University of Alberta
  • Lead SCI 100, Computing Science component.

  • Assist students learning Python as their first programming language.

  • Evaluate student coursework.

Lead developer

Dr. Joel Gehman and Dr. Matthew Grimes
  • Write a robust and versatile web crawling service using a variety of technologies including Scrapy, and PhantomJS duck-taped together using an Erlang load-balancer and Redis.

  • Expose the web crawling daemon as a service with a Node.JS web server.

  • Assist in development of the website front-end.

  • Configure and maintain custom daemon processes on Ubuntu 12.04 servers.

  • Patch a memory leak in an open source library (MongoDB Erlang Driver) used in a server program.

Web developer

Dr. Denilson Barbosa
  • Create and maintain existing web demos for text processing tools using JavaScript, jQuery, and D3.

  • Develop a database abstraction library in Java for interoperation between our various text processing tools and an assortment of persistence tools (including MongoDB).

  • Develop a simple CoffeeScript Node.js app for bridging the web demos to the text processing tools.

Web developer

Dr. Greg Goss
  • Evaluate the state of a legacy PHP web application and promptly chuck it out (incrementing a database cursor in the middle of template code that generates HTML tables? Ain’t nobody got time for that).

  • Create database migration tools to transition from an SQLite3 database schema to a more maintainable (i.e., normalized) schema.

  • Employ the use of full-text indices for measurably faster text search queries.

  • Design simple, clean CSS for the website.

Web developer

Dr. Davood Rafiei
  • Develop a PHP-backed web game for human computation.

  • Created an MySQL backed game server.

  • Linux system administration.


My OCRID: orcid.org/0000-0001-5337-715X


Canada Learning Code lead instructor and mentor.

Open source maintainer and contributor.

Mentor for DiscoverE Summer Camps.

Creator of presentations on several technical topics. [1], [2], [3]