I have been developing software and administering systems professionally for over seventeen years, and as a spare time 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 highest to the lowest level), web development stacks, database management systems, and platforms. My work includes leading development teams, 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. Personal interests include functional programming, audio processing, and transit/bicycle infrastructure. As such, I bring with me wide-ranging expertise, and I will enthusiastically adapt to any new technological environment.
Haskell, C#, C, C++, Java, Python, PHP, Ruby, Scheme, Perl, i386 assembly Language
Development for Operating Systems:
GNU/Linux, Mac OS X, Microsoft Windows (Native Win32 and .NET CLR), various Un*xen, Symbian, MS-DOS
- Web Development:
DevOps and Sysadmin:
AWS (EC2, VPC, S3, Elasticache, RDS, Route 53, CloudWatch, CloudFormation, IAM, SES, SQS, SNS), Docker, Kubernetes, Terraform, Ansible, Chef, SaltStack, general Un*x/GNU/Linux system administration, web/application servers (Yesod, 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, FTP, SFTP), VPNs, firewalls
Database Development and Administration:
PostgreSQL, Microsoft SQL Server 6.5 - 2005 (T-SQL, OLAP), Oracle 7.3 - 8i (PL/SQL), MySQL, Microsoft Access
OpenGL, Renderware Graphics (PC, Xbox, PS2, Gamecube), Direct3D, Maya (MEL) scripts, Photoshop plugin development
Win32 API, MFC, X Window System, wxWindows, Java AWT/Swing
Symbian, WAP, WML
Video Game Development:
PlayStation 2, Xbox, Nintendo GameCube, Nokia N-Gage, PC, Web
Jul 2012 - Present
FP Complete, San Diego, California
Haskell developer and DevOps engineer (Contract, Telecommute)
- Technologies: Haskell, AWS, Docker, Ansible, Ubuntu, PostgreSQL, etc.
- Maintainer for the Haskell Stack build tool.
- Haskell development for clients.
- DevOps for clients.
- Security, containerization, and scalability architecture and implementation for a web-based IDE that allowed arbitrary server-side code execution.
Sep 2005 – Oct 2012
INgrooves Fontana, San Francisco, California
Principal Software Engineer (Contract, Telecommute)
- Architect and implement numerous subsystems of a distributed, highly scalable digital media management and distribution system.
- Lead and manage engineering teams.
- 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, now used for over 500 partners.
- Design and Implement REST API for partners to hook into our system.
- Implement ASP.NET web interface additions and improvements.
Oct 2004 – May 2008
Ian Thompson, Parker Island, B.C.
- Caretaker for a 19-acre property on a small island. Duties include general yardwork, repairs, and maintenance.
Nov 2004 – May 2005
Omega X Wars, Columbus, Ohio
Game Programmer (Contract, Telecommute)
- Creating Java server and Flash network API for a massively multiplayer online game.
Dec 2004 – Jan 2005
Web/Database Developer (Contract, Telecommute)
- 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.
Sep 2003 – Jan 2004
Blue Shift Canada Co., Victoria, B.C.
ESPN Major League Baseball (PS2)
- Improved PS2 texture compression, provided programmer and technical support to 3D artists, managed art data.
May 2003 – Aug 2003
Apex Reforestation, Prince George, B.C.
- Brush clearing in northern British Columbia.
May 2002 – Apr 2003
Exile Interactive Inc., Parksville, B.C.
Junior Game Programmer
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.
- 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 Ltd., Victoria, B.C.
Managing Partner and Lead Web/Database Programmer/Technical Architect
- 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.
- Oracle Database Engineer for the project.
- Setup and day-to-day running of Sun development and production servers, numerous Oracle tasks, 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.
- 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.
- 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.
- 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 Inc., Victoria, B.C.
Forest Renewal B.C.
- Lead developer for web application with user security, preferences, and portfolio system using Apache mod_perl, C, and a MySQL database, running on Linux.
- Designed data model.
- Ported to Windows and Linux from Macintosh, graphics coding, gameplay.
- Numerous behind-the-scenes and front-end CGI programs for Canstock.com, including parts of the portfolio system, all of Dataline and constantly updating stock tickers on sites such as www.transcanada.ca and www.bce.ca.
- Wrote code to stream stock market information from NAQ satellite feed to flat file database running on Solaris.
RankTracker, Victoria, B.C.
Web Programmer (Contract)
- 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.
- Implemented as a CGI script written in Perl.
May 1995 – Apr 1997
Hyperion Business Corporation, Victoria, B.C.
System Administrator and Web Programmer
- 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, and many others.
- Setup secure web server with Stronghold.
Canadian Information Processing Society, Victoria, B.C.
Web Designer (Contract)
- Created prototype for web version of the CIPS newsletter and demonstrated it at a meeting.
Stellar Systems Group, Inc., Victoria, B.C.
BBS System Operator (Contract)
- Setup and maintained a BBS for employees to access their e-mail and the network from offsite and home.
I have also completed many personal software projects, some of which can be found at my web site (borsboom.io). These include:
- (1996-2002) Vocoder (voice transformer) written in C.
- (2003) Browser-based game written in Python using OpenGL and compiled to the Java Virtual Machine
- (1996) Modular sound synthesis applet/application written in Java with an object-orientated interface.
- (2005) Scripted MIDI file generator implemented as a domain-specific language in Ruby, created to aid a blind person in his music composition.
Sep 1995 – Dec 1997 University of Victoria, Victoria, B.C.
- Completed 2nd year Computer Science with 7.14 (A-) GPA.
Mar 1999 – Aug 1999
Auroville, Tamil Nadu, India
Web/Database Programmer, Network Engineer
- Spent 6 months in this international township in southern India.
- During this time I volunteered to set up Linux-based network servers and firewalls, train people to write web applications, and at a tree nursery.
- Dual Canadian/Dutch citizen, which allows me to live and work throughout the European Union and Canada.
- Speak and understand Dutch in addition to English.
- Father of twin boys.
- Avid bicyclist, kayaker, hiker, camper, and traveller.