Please note: the information in this resume is not necessarily being kept up to date since I am not currently looking a new position or contract.

Emanuel Borsboom

Software and DevOps Engineer

Overview

  • I have been developing software and deploying solutions professionally for over twenty-five years (remotely for fifteen of those years), and as a passion for many years more. Industries I have worked in include health care, digital media distribution, video games, stock market, and government, using many programming languages (ranging from the high to low level), web development stacks, database management systems, and platforms.
  • Software development work has included developing highly scalable distributed systems, low level optimized audio and image transcoding modules, video game mechanics, mobile middleware, and web and database application development and deployment. I pride myself of writing correct, efficient, and understandable code.
  • DevOps work has included setting up CI/CD pipelines, provisioning and managing Kubernetes clusters, automated provisioning of cloud infrastructure, managing databases, and various system administration tasks. Using appropriate tools and automation, I help catch bugs early and facilitate fast and frequent deployments.
  • With my wide-ranging experience, I will enthusiastically dive into any codebase or technology environment, and immediately begin making meaningful contributions.

Technologies

  • Programming Languages: Rust, Haskell, C#, C, C++, Java, Python, PHP, Ruby, Scheme, Perl, i386 assembly Language
  • Web Development:
    • Client side: Yew (Rust/Wasm), Blazor (C#/Wasm), PureScript, Elm, JavaScript, Flash, Java (Applets)
    • Server side: Actix-Web (Rust), Yesod (Haskell), ASP.NET, PHP, Java (Servlets, JSP, EJB), Ruby on Rails, ASP, CGI (Perl), Cold Fusion
  • Cloud Platforms:
    • AWS: EC2, VPC, EKS, S3, Lambda, RDS, DynamoDB, Elasticache, Route 53, CloudWatch, CloudFormation, IAM, SES, SQS, SNS, and others.
    • Azure: VMs, Vnet, AKS, Postgres, Pipelines, and others
  • DevOps Tools:
    • Containers and orchestration: Kubernetes, Docker, LXC
    • Configuration management: Terraform, CDK, Ansible, Chef, SaltStack
    • CI/CD: ArgoCD, Gitlab Pipelines, Azure Pipelines, Jenkins, Atlassian Bamboo
  • System Administration: Web/application servers (NGINX, Apache, Microsoft IIS, Jakarta Tomcat, JBoss), mail servers (Sendmail, Exim, and Postfix MTAs, plus POP3 and IMAP), DNS (BIND name server), file servers (Samba, NFS, FTP, SFTP), general Un*x/GNU/Linux system administration, VPNs, firewalls
  • Database Design and Administration: PostgreSQL, Microsoft SQL Server 6.5 - 2005 (T-SQL, OLAP), Oracle 7.3 - 8i (PL/SQL), MySQL, Microsoft Access
  • Graphics APIs: OpenGL, Renderware Graphics (PC, Xbox, PS2, Gamecube), Direct3D, Maya (MEL) scripts, Photoshop plugin development
  • GUI Frameworks: Win32 API, MFC, X Window System, wxWindows, Java AWT/Swing
  • Video Game Development: PlayStation 2, Xbox, Nintendo GameCube, Nokia N-Gage, PC, Web

Work History

Jul 2012 – Present FP Complete, San Diego, California
Senior Software and DevOps Engineer (Contract, Telecommute)

  • Technologies used: Rust, Kubernetes, Haskell, AWS, Azure, Docker, Ansible, Ubuntu, PostgreSQL, Gitlab, Jenkins, and many more.
  • Security, containerization, scalability architecture and implementation, and DevOps prpocesses for a web-based IDE that allowed arbitrary server-side code execution. Implemented a bespoke container orchestration system on top of LXC.
  • Developer, maintainer, and release manager for Haskell Stack, a popular Haskell build tool.
  • Peer-to-peer networking components for cryptocurrency implemented in Haskell.
  • Architected and implemented backend components for distributed computation system to simulate aspect of human physiology to recommend dosages and intervals for administering pharmaceuticals, implemented in Haskell.
  • Design, architecture, and implementation of demonstration distributed computation framework, with Linux backend and Wasm frontend, both implemented in Rust.
  • Provision and manage Kubernetes clusters with all the bells and whistles (add-ons and integrations) for numerous clients, on AWS, Azure, and bare metal.
  • CI/CD pipelines for numerous clients, using Gitlab Pipelines, Jenkins, Azure Pipelines, Atlassian Bamboo, and others.
  • Adapted legacy applications to run on the cloud, in Docker containers, and on Kubernetes for numerous clients.
  • Custom Haskell development and cloud architecture for various clients.

Oct 2021 – Present AV Capture All, Bothell, Washington
Senior Software and DevOps Engineer (Contract, Telecommute)

  • Technologies used: Blazor, C#, Java, AWS (Lambda, DynamoDB, CDK)
  • Develop web front-ends in Blazor and JavaScript to browse and view media (including live streams) and manage customers.
  • Add features and fix bugs in AWS Lambda functions providing REST API implemented in Java and C#.

Sep 2005 – Oct 2012 INgrooves Fontana, San Francisco, California
Principal Software Engineer (Contract, Telecommute)

  • Technologies used: C#, ASP.NET, Microsoft SQL Server, C++
  • Architect and implement numerous subsystems of a distributed, highly scalable digital media management and distribution system.
  • Automate operation of a previously manually operated system, intelligently distributing tasks over a cluster.
  • Improve audio transcoding subsystem implemented in C++.
  • Increase scalability by improving distribution of work over cluster and optimizing C# code, SQL queries, and database model.
  • Create flexible system for generating partner-specific metadata formats, used for over 500 partners.
  • Design and Implement REST API for partners to hook into the system.
  • Implement ASP.NET web interface additions and improvements.

1992 – 2005 Consulting Project (self-employed)
Game Programmer, Web/Database Programmer

  • Technologies used: Java, Flash, PHP, C++, Symbian, Perl, MySQL, CGI, HTML, CSS, JavaScript, RemoteAccess BBS
  • (2004–2005)Omega X Wars: Creating Java server and Flash network API for a massively multiplayer online game.
  • (2004–2005)myu.com.tw: Programmed, created database, and created elements of the graphic design for a myu.com.tw, web site that connects students with language teachers in Taiwan.
  • (2004–)Pocket Kingdom: Own the World: Programmed in-game chat client and auction system client and re-designed auction system protocol for this Nokia N-Gage game.
  • (1997)RankTracker: Developed a web-based tool that automatically queries the most popular search engines in order to aid a web master in determining how easy his web site is to find, and to improve the search results.
  • (1995)Canadian Information Processing Society: Created prototype for web version of the CIPS newsletter and demonstrated it at a meeting.
  • (1992)Stellar Systems Group, Inc.: Setup and maintained a BBS for employees to access their e-mail and the network from offsite and home.

Sep 2003 – Jan 2004 Blue Shift Canada, Victoria, B.C.
Game Programmer

  • Technologies used: C++, MFC, Maya scripting (MEL), PlayStation 2 developer kit
  • ESPN Major League Baseball (PS2): Improved PS2 texture compression, provided programmer and technical support to 3D artists, managed art data.

May 2002 – Apr 2003 Exile Interactive, Parksville, B.C.
Junior Game Programmer

  • Technologies used: C++, RenderWare, MFC, Maya scripting (MEL), PlayStation 2 developer kit, GameCube developer kit, PhotoShop plugin development
  • Sega World Series Baseball 2K4 (Xbox, PS2): Wrote UI of and maintained a multi-platform texture compression tool. Created a multiplicative-to-subtractive lightmap converter. Maintained and modified PS2 texture compression codecs. Ported a stadium viewer to Xbox and PS2 and added features. Optimized art asset version control system.
  • Exile Baseball Demo (PC, NGC): Defined project structure, setup version control and Wiki Web (collaborative web-site), setup VPN for off-site employees, implemented controls, camera, HUD, audio, and event system on PC and Gamecube.

Sep 1999 – Apr 2002 Success Information Systems, Victoria, B.C.
Managing Partner and Lead Web/Database Programmer/Technical Architect

  • Technologies used: Java (JBoss, Tomcat, JSP, Servlets, EJB, iPlanet), Cold Fusion, Oracle, Microsoft SQL Server, Microsoft Access, SunOS/Solaris, Linux, Python, Perl
  • Qtrade.ca: Lead developer of team that developed a J2EE (JSP, Servlets, EJB) web application for iPlanet Application Server providing the front-end for administering the system data in an Oracle 8i database. Designed and implemented a reusable framework for building web applications that front a database. Setup and day-to-day running of Sun development and production servers, and Oracle database server. PL/SQL development of stored procedures, CFML (Cold Fusion) development, development of scripts (Python, Perl, Unix shell scripting) to automate tasks such as nightly FTP transfers.
  • FroZen Dirt Media Corporation: Setup the development environment using Jakarta Tomcat (Servlet engine) and Jboss (EJB server) and production environment using iPlanet Application Server. Designed a multi-tiered application architecture for wireless services. Developed Java Servlets, Enterprise JavaBeans, and server application written in Java. Designed and implemented a database using Oracle 8i. Wrote Servlets that generate Wireless Markup Language for communication with mobile phones and other wireless devices. Designed an XML based protocol for communication between client and server.
  • BC Fisheries: Setup development environment using ServletExec and Jetty, created coding standards, frameworks, etc. Managed five person team of programmers writing a Java Servlets based web application for maintenance of data in an Oracle database. Developed Java Servlets.
  • Encorp Pacific: Microsoft Access Database Engineer for the project. Modified an existing application to use a Microsoft SQL Server 7.0 database inplace of a Microsoft Access MDB. Wrote code which automatically manages the links to SQL Server in an Access front end database.

May 1997 – Feb 1999 Zerius Development, Victoria, B.C.
Web/Database/Game Programmer

  • Technologies used: Oracle, Microsoft Access, ASP.NET, JavaScript, Perl, C
  • Forest Renewal B.C.: Searched for and corrected anomalies in the project tracking system Oracle database and found/repaired their root causes. Developed complex dynamic HTML forms using ASP and JavaScript. Helped to implement a multi-tiered web-based reporting system using ASP, Access, and Oracle.
  • Ferguson Fractal: Lead developer and database designer for web application with user security, preferences, and portfolio system using Apache mod_perl, C, and a MySQL database, running on Linux.
  • Catalyst Wars: Ported video game to Windows and Linux from Macintosh, graphics coding, gameplay.
  • Canadian Stock Market Reporter Inc.: Numerous behind-the-scenes and front-end CGI programs implemented in C and perl, including parts of the portfolio system, all of Dataline and constantly updating stock tickers on websites of various Canadian public companies. Wrote code to stream stock market information from NAQ satellite feed to flat file database running on Solaris.

May 1995 – Apr 1997 Hyperion Business Corporation, Victoria, B.C.
System Administrator and Web Programmer

  • Technologies used: Digital Unix, OpenBSD, Apache httpd, Sendmail, CGI, Perl
  • Developed CGI programs in Perl and designed web sites. Administered a Digital Unix (OSF/1) Internet server.
  • Installed and managed Apache web server, sendmail MTA, wu-ftpd FTP server, Majordomo mailing lists, OpenBSD-based firewall, and many others.

Personal Projects

I have also completed various personal software projects, some of which can be found at my web site (borsboom.io). These include:

  • (2020–present)Foreign currency accounts for YNAB: A web app integration to manage foreign currency accounts in a single budget for You Need A Budget. Implmeneted in Rust, and deployed using Docker.
  • (2009–present)Current Atlas Tables: Scripts to generate lookup tables for the the Current Atlas: Juan de Fuca Strait to Strait of Georgia. Implemented in Python.
  • (2017–2020)Gulf Islands Ferry Schedules: A single-page web app that provides an easier-to-use and -understand interface to B.C. Ferries schedules for the Gulf Islands. Implemented in PureScript. Backend deployed using AWS Lambda, using DynamoDB for data storage.
  • (1996–2002)Vocoder (voice transformer) written in C.
  • (2003)Browser-based game written in Python using OpenGL and compiled to the Java Virtual Machine
  • (2005)Scripted MIDI file generator implemented as a domain-specific language in Ruby, created to aid a blind person in his music composition.
  • (1996)Modular sound synthesis applet/application written in Java with an object-orientated interface.

Volunteering

  • (2018–present)Southern Gulf Islands Emergency Program: Duty Officer. Monitor pager and emergency radio during duty weeks, and help establish and run Emergency Operations Centre in case of emergencies.
  • (2019–present)Mayne Island Pathways and Trails Association: Member of the board of directors.
  • (2019–present)Mayne Island Parks and Recreation Commission: Trail guardian. Maintain parts of Mayme Island's trail network with my family.
  • (1999)Auroville: Web/Database Programmer, Network Engineer. Spent 6 months in this international township in southern India, during which I volunteered to set up Linux-based network servers and firewalls, train people to write web applications, as well as at a tree nursery.

Citizenship and Language

  • Located in British Columbia, Canada.
  • Dual citizen of Canada and the Netherlands (European Union).
  • Fluent in English, and understanding of Dutch.