Resume

Technical Skills Keywords

Operating Systems
Linux (Fedora, Red Hat, Mandrake, Debian, LFS); Sys V and BSD Unix; Windows 95-11; MacOS; OS/X; VMS; TOPS-20; Aegis, RT-11, iOS, Android
Hardware
Intel and AMD-based PCs; 3Com, Surecom, Linksys ethernet NICs, switches, hubs and routers; HP/Apollo workstations, DEC VAX and PDP-11 computers, HP and Lexmark laser printers
Protocols
TCP/IP, PPP, PPPoE, ADSL, DHCP, HTTP, SMTP, POP, NNTP, FTP, SSH, DNS, NIS, NFS, SMB
Software
Oracle, DB2, PostgreSQL, MySQL, Apache, mod_perl, Samba, Netatalk, Squid, Sendmail, Postfix, Exim, Qmail, Courier, Cyrus, BIND, Netfilter, OpenSSH, ProFTPD, WU-FTPD, CUPS, LPRng, SpamAssassin, OpenWebMail, Squirrelmail, GNOME, KDE, WindowMaker, Microsoft Office, OpenOffice, common Unix utilities
Programming Languages
C, C++, GLSL, Perl, Python, PHP, Java, JNI, BASH scripting, Assembly, XHTML/HTML, CSS, XML, FORTRAN, Pascal, BASIC

Detailed Professional Experience

May 2004 - Present

Software Developer, SEB Global Infotech, Vancouver

Owner and operator of this BC-registered business, developing software, building network projects and providing emergency support on a contract basis.

  • Nov 2023-present: Began work on relaunch of Imperial Realms.
  • May 2019-Nov 2023: Developed milestone 5 of Imperial Realms.
  • Dec 2015-May 2019: Developed milestone 4 of Imperial Realms.
  • Feb 2014-present: Ongoing development and improvement of Cebus features and modules.
  • Jul 2006-Dec 2015: Milestone 3 of Imperial Realms. Developed parallelized back-end servers hosting game engines and agents. Developed game client for Windows, OS/X and Linux in C++ using Qt and OpenGL, with 3D terrain rendering and spatial displays. Developed and tested large-scale game content by Monte Carlo and procedural methods. Improved and modified internal database/communication subsystems. Migrated user accounting from PostgreSQL to BerkeleyDB, integrating with Cebus.
  • Mar 2009-Feb 2014: Designed and released Cebus, a native C/C++ platform for web applications, featuring CSS formatting in UTF-8 Unicode, with XML storage and translation.
  • Oct 2005-Dec 2007: Developed software for IBM Canada. Ported queue management system and 70,000 line C++ pattern recognition application from AIX to Linux, replacing RogueWave library with STL and achieving approximately 300% speed increase. Ported C GUI applications from Gtk-1 to Gtk-2. Developed new build system integrated with CVS, trained staff in its use. Wrote GUI tools in Perl with Perl-GTk. Modified test data viewer to work with DB2. Extended C++ library for use with Java, using JNI. Contract extended three times.
  • Oct 2004-Dec 2007: Maintained co-located Linux servers for various clients, performing software installations and upgrades, security monitoring, routine tasks, emergency maintenance.
  • Jul 2004-Jul 2006: Completed Milestones 1 and 2 in development of Imperial Realms, an online subscription-based game. Designed and implemented servers and network architecture in C/C++ on Linux. Wrote basic game client in C++ using OpenGL and Gtk+. Developed network protocols. Designed and implemented database subsystems for game data storage and client accounting, using BerkeleyDB and PostgreSQL.
  • Feb 2007-Jun 2007: Designed and implemented SEBCMS v3, a web content engine written as a native C module for Apache 2.0, which emphasizes CSS formatting in UTF-8 Unicode, with XML storage and translation.
  • Mar 2005-Jan 2006: Designed and implemented SEBCMS v2, a web content engine written in mod_perl 2.0 to work with Apache 2.0, which emphasizes CSS formatting in UTF-8 Unicode, with XML storage and translation.
  • Mar 2005: Audited and revised PHP shipment-tracking web site for Aerostream Logistics.
  • Feb-Mar 2005: Built office network for Rob Hannebauer consisting of NetFilter firewall, internal SAMBA/NFS file server and external web/email server using Apache, Postfix, Courier and Squirrelmail, all on Linux.
  • Jun-Nov 2004: Upgraded an Internet job-posting system for the BC Certified General Accountants Association, working with object-oriented Perl, Linux, Apache and MySQL.
  • May 2004-Present: Provided support and emergency service for clients.
Jul 2001 - Dec 2003

IT Consultant, Creek & Cowley Consulting, Hong Kong

Owned and operated Creek & Cowley Consulting, registered in Hong Kong. Provided ongoing end-user support, maintenance and emergency services. Developed network projects for businesses and organizations.

  • Nov 2003: Built an online catalogue system for Wiak Far East Ltd.
  • Mar-Jun 2003: Expanded Wiak Far East's 15-desktop Windows office network, converting from IPX/SPX to TCP/IP. Added two Linux-based print servers for HP and Lexmark laser printers, running CUPS 1.1. Set up centralized file sharing using Samba 2 and NFS, with automatic tape backup and remote administration using OpenSSH.
  • Nov 2002-Jun 2003: Built a networked trade record system for Wiak Far East Ltd. using PostgreSQL 7, Apache 1.3 and Perl 5.6.
  • Feb 2003: Built an e-mail server for Concordia International School, running Postfix with SpamAssassin and OpenWebMail on Mandrake Linux 9.
  • Jan 2003: Built e-mail and web servers for Wiak Far East, running Postfix and SpamAssassin, connected through ISP-owned routers with NAT. Wrote Wiak's web site.
  • Mar 2002,Dec 2002: Trained staff at ESF Educational Services Limited.
  • Oct-Nov 2002: Set up a 3-desktop office network for Rosenthal AG, running English Windows 98/XP and Chinese Windows XP, with shared printing. Connected to Internet using shared ADSL.
  • Aug 2002: Built a 15-computer network for an “Internet Cafe” at Concordia International School, using 100BaseTx ethernet with 3 switches and linux PCs.
  • Jul-Aug 2002: Set up a 4-desktop office network for Christian Solidarity Worldwide, running Windows 98 and Linux with a central file server and two shared printers. Connected to Internet using shared ADSL with a Linux firewall.
  • Aug 2001-May 2002: Managed the computer facilities of Concordia International School.
Mar 2003 - Nov 2003

Lecturer, Ohio University

Taught two evening classes in calculus using the facilities of Baptist University, Hong Kong. Part-time position.

Jul 2002 - Aug 2003

Tutor, Victoria University/Chinese University of Hong Kong

Taught part of two evening classes in computer architecture for Victoria University's School of Information Systems, using the facilities of Chinese University. Part-time position.

Jun 1997 - May 2002

IT Manager/Teacher, Concordia International School, Hong Kong

  • Replaced the school’s 42 Macintosh PowerPCs running MacOS 7 and 8 with 45 self-built Intel PCs running Windows 98 and Red Hat Linux.
  • Set up a centralized file-sharing and content-distribution system running on Linux, using Samba, NFS, and Netatalk. Automated server tasks using BASH shell scripts.
  • Located and negotiated with suppliers and Internet providers.
  • Upgraded the school’s LAN from localtalk to 100BaseTx ethernet running through a hierarchy of 3Com switches and hubs. Upgraded internet connection from individual modems to a leased line and later ADSL, using software and ISP-supplied hardware routing. Ran a DHCP server to assign local addresses.
  • Built print servers driving Lexmark and HP laser printers, running Red Hat Linux 6 and LPRng.
  • Built and operated a Squid proxy server and BIND 8 caching DNS server to accelerate web access.
  • Built and operated an Apache 1.3 web server and wrote the school web site, with personal web storage for staff and students.
  • Built and operated e-mail servers using exim and sendmail.
  • Set up external shell and file access first using Telnet and ProFTPD, later converting to OpenSSH.
  • Taught computer programming in C++, web page design, fundamentals of computing, physics, mathematics.
Nov 1992 - Jun 1997

English Teacher, Hong Kong

Sep 1987 - Jul 1992

Physics Researcher, University of British Columbia

  • Collaborated in high-energy physics experiments at CERN and SLAC.
  • Wrote Korn shell scripts in System V Unix, to manage data processing systems running on an ethernet/token-ring network.
  • Wrote user interface and database update code using SQL with Oracle.
  • Analyzed test data and experiment results, using FORTRAN under Unix and VMS.
Sep 1986 - Jul 1987

Research Assistant, University of Lethbridge

May 1986 - Aug 1986

Research Assistant, University of Toronto/Fermilab

  • Wrote a graphical display of experiment data in FORTRAN on a VAX cluster running VMS at Fermilab, USA.
Sep 1984 - Jul 1986

Research Assistant, University of Lethbridge

  • Wrote Fast Fourier transform routines in assembly, FORTRAN and C on a DEC PDP-11 running RT-11.
  • Wrote user interface code for an instrument control system in FORTRAN.
May 1984 - Aug 1984

Programmer, University of Lethbridge

  • Wrote population migration simulations for Economics research, in BASIC.
  • Wrote a computer-assisted instruction system in Pascal, which presented assignments online and recorded answers.

Education

1992

Ph.D, University of British Columbia (Physics)

Collaborated in the OPAL experiment at CERN, Geneva. Measured the Weinberg angle by analyzing products of tau lepton decays.
1989

M.Sc, University of British Columbia (Physics)

Collaborated in the SLD experiment at the Stanford Linear Accelerator Center. Tested experimental apparatus, analysing results obtained using cosmic rays.
1987

B.Sc, University of Lethbridge (Physics)

Studied Physics, Mathematics and Computing Science.