Eddie Antonio Santos

Curriculum Vitae

Software engineer and computer science educator

Education

MSc. Computing Science

University of Alberta
January 2016–September 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
Databases

SQL, Redis, MongoDB, SPARQL, ElasticSearch

Editors

Vim, IntelliJ Platform, Atom, Eclipse

OSs

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

Version Control

Git, Mercurial

Miscellaneous

Docker, Vagrant

Natural languages

English
fluent reading, speaking, writing
Spanish
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–April 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–April 2018
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.

  • Write, test, and deploy 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

2014–2017
Self-employed
  • 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

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

  • Assist students learning Python as their first programming language.

  • Evaluate student coursework.

Lead developer

2013–2014
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

2013
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

2012–2013
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

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

  • Created an MySQL backed game server.

  • Linux system administration.

Publications

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

Hobbies

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]