Rex’s CV

Rex Johnston


Norfolk Island, just to the north of New Zealand.


C and C like languages, including but not limited to C, C++, Java, Javascript, PHP, Perl & Python.
These languages are found all over the place, front end applications and those running in a browser, stateless back end services and the network stack of everything in between. I've been customising PHP back end services for nearly 20 years now. I've written Perl modules for network services. I still write C software for the arduino.

Data modeling, especially that of relation systems into databases, leading to an expertise in SQL.
Studied at university and taken to Masters level, modeling is fundamental to my approach to everything I write.

UNIX, the foundation of the preceding two.
A thorough understanding of how each system component fits together greatly enhances my ability to do my job. UNIX and it's derivatives are found everywhere, in pretty much every phone in use to the largest of supercomputers. It's philosophy is found in the architecture of the internet itself.

Language Skills

UNIX, Linux, C, C++, Java, *SQL, PHP[3,4,5,7], Perl, Python, Pascal, BASIC, FORTRAN various types of shell scripting embedded/realtime applications communication protocols source control X/Motif/Java/Qt GUI development Arduino, Pi and other SBCs real time software control.

Admin Experience

Cisco Routers, RedHat Linux (and derivatives), custom embedded linux, Debian GNU/linux (and derivatives), DG/UX, SCO, AUX, Solaris, SunOS, *BSD. In no particular order:- Sendmail, postfix, qpsmtpd, Scalix, PostgreSQL, MySQL, NFS, Samba, Apache, Tomcat (jsp), SSH, SSL, FTPD, squid, gnome/KDE, POP3, IMAP, LPD, CUPS, custom TCP proxy software, FWTK, SNMP, DNS (bind), X Windows/XFree86, Ingres DB, Netware & Linux Netware Server (mars).


System design/architecture. UNIX system/component/protocol knowledge. The English language.


April 2002 - Present Contractor. Various clients in both the admin and web development fields. As an administrator, I was responsible for installing and deploying servers/services for a medium size engineering consultancy. As a web developer, I was responsible for extending a proprietary web framework/shop for business expansion requirements, analysing these requirements, designing and implementing procedures as well as being the server admin. I also got to deploy multiple payment gateways for this shop, becoming intimately familiar with how good and poor payment gateways work. I was also consulted/employed a few times about how to bring a software teams up to speed with a new project and employing procedures to make effective use of resources and deploying new software from development to staging then live environments.

Jan 2001 - April 2002 Comrad Medical Systems Software Engineer Christchurch Project: Radiology Practice Management Software, Java, C, C++.

Late 1998 - Dec 2000: Tait Electronics Limited Senior Design Engineer Christchurch Projects: Trunking Radio Control Software under Linux and Solaris. Platforms: Linux (Redhat, Debian), Sun Solaris. Development Tools used: GNU toolset, Rational Rose, CVS. Responsibilities: One of three developers working on the core system, I develop reusable components within an OO framework for the mentioned system. Areas include external interfaces (TCP/IP, serial etc) and configuration. DAS Control Software on an embedded PC104 module. Platforms: Linux (Custom 2.2 kernel installation). Development Tools used: GNU toolset, Syslinux, DOSEMU, CVS. Responsibility: Investigate methods of controlling proprietry digital audio subsystem hardware using existing customer installations.

1998: Manux Solutions Limited Software Developer Christchurch Projects: General 4GL Applications Platforms: Apple Macintosh, MS Windows NT/98. Development Tools used: 4D Database/Scripting Language Responsibility: Write applications. Documentation. Internet Connection Platforms: MacIntosh, Wintel (95, NT), Linux (Debian, Redhat). Responsibilities: Build/install firewall, configure router/frame relay link, set up http, ftp and custom proxies, sendmail gateways, web servers, DNS. Configure LAN.

1991-1997: R.A. Ward Limited Software Control Systems Software Developer Christchurch Projects: UNIX Software in the Communication/Database Field. Platforms: DG/UX, Solaris, Cisco. Development Tools Used: GNU toolset, Motif, Ingres. Responsibilities: Develop UNIX software. Documentation. Customer Requirements Capture. Postmaster for Bizzare hardware protocol implementations (Cash Registers, PLCs, X10 controllers ...).

1990-1991: Ernst And Young Management Sciences Limited Operations Research Analyst Auckland (A joint company with EY) Projects: Scheduling/Optimisation Software Development Platforms: MS Windows, Solaris Development Tools Used: Paradox, Ingres, Sun C. Consulting in Mathematical Optimization. Courses in "Effective Writing" and Documentation.


1989-1990: Masters Degree in Engineering. Auckland University. Operations Research, Computer/Mathematical Modelling, Engineering Mathematics.
1988: Cycle Mechanic.
1985-1987: Bachelors Degree in Science. Auckland University. Computer Science and Mathematics.