To design, build and operate interesting software projects, which utilize skills from different areas and touch upon my many interests.
| Operating Systems |
Linux (Fedora, Red Hat, Mandrake, Debian, LFS); Sys V and BSD Unix;
Windows 95-Vista; MacOS; OS/X; VMS; TOPS-20; Aegis, RT-11
|
| 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++, Perl, PHP, Java, JNI, BASH scripting, Assembly, XHTML/HTML, CSS, XML,
FORTRAN, Pascal, BASIC
|
May 2004- Present |
Owner and operator of this BC-registered business, developing software,
building network projects and providing emergency support on a contract
basis.
-
Mar 2009-Present: Designing and implementing SEBCMS v4, a native C/C++ platform
for web applications, featuring CSS formatting in UTF-8 Unicode, with XML storage and translation.
-
Jul 2004-Present: Developing Imperial Realms, an online subscription-based game.
Designed and implemented servers with scalable parallelized architecture, written in object-oriented C/C++ and running on Linux.
Wrote game client in C++ using OpenGL and Gtk+.
Developed network protocols.
Designed and implemented database subsystems for game data storage and client accounting.
-
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.
-
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 C&C 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 |
Taught two evening classes in calculus using the facilities of Baptist
University, Hong Kong. Part-time position.
|
Jul 2002- Aug 2003 |
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 |
-
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 |
-
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 |
|
May 1986- Aug 1986 |
-
Wrote a graphical display of experiment data in FORTRAN on a VAX cluster running
VMS at Fermilab, USA.
|
Sep 1984- Jul 1986 |
-
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 |
-
Wrote population migration simulations for Economics research, in BASIC.
-
Wrote a computer-assisted instruction system in Pascal, which presented
assignments online and recorded answers.
|