|Location:||Melbourne, Victoria, Australia|
- Mar 06 - now
- Software Development Consultant, NEC Australia.
Software design for in-vehicle (car, train, bus) integrated communications devices including various radios (SMR, PMR, CDMA and GSM) and GPS tracking. The development of a VOIP network to link radios and a web-based management front-end. Development of an alternative, satellite based, phone network for emergency repair of the main telecommunications network.
- Jul 03 - Jan 06
- Senior Analyst / Developer, Avanteos.
Software development, maintenance and training. The on-going development and maintenance of a web-based white-label superannuation wrap product for the management of billions of dollars of funds.
- Nov 02 - Jun 03
- Software Architect and Developer, NEC Australia.
The software design for a real-time embedded Linux user terminal and satellite system hub.
- Oct 00 - Oct 02
- Technical Director, Zikzak Technologies.
Software consultancy and development for a range of projects including web/database integration, streaming video for set top box systems, and an internal compiler based research project.
- Jul 01 - Jan 02
- Software Architect and Developer, Traffion Technologies.
The creation of a robust, scalable, ultra-high performance CRM revenue tracking service.
- Oct 00 - Jun 01
- Software Architect and Developer, Interval Media.
The creation of a distributed video-streaming system using Interval's patented fractal compression algorithms.
- Oct 99 - Aug 00
- Chief Architect, Lodbroker.
The development of a commercial high availability clustering tool based upon the Eddieware project. This project is intended to be the foundation of a startup company. Initial funding was provided by Ericsson.
- Mar 99 - now
- Open Source Developer, Eddieware.
The development and management of an open source high availability clustering tool for web servers. This project was funded by Ericsson.
- Jan 99 - Feb 99
- Knowledge Transfer Consultant, Ericsson via
Software Engineering Research Centre.
The investigation and documentation of a robust, scalable, web tool which enables the provision of high quality access to an internet site for the purpose of conveying that knowledge to a new development team.
- Jan 98 - Dec 98
- Research Associate, Software Engineering Research Centre.
SERC focuses upon delivering prototype solutions in for high performance telecommunications applications and software quality monitoring systems for meeting client service agreements. SERC is primarily funded by Ericsson.
- Sep 96 - Nov 97
- Software Engineer, LookSmart International.
Creation of an advertising management and delivery system for the web site.
- Jul 94 - Dec 98
- Lecturer, Dept of
Computer Science, RMIT University.
- 3rd yr / MBC / Grad Dip - Web Programming and Digital Multimedia (1997) -
Lecturer and tutor.
Included the proposal for, the development, design and preparation of this new course.
- 3rd yr Software Engineering 2 - Design Patterns (1997) - Lecturer and tutor.
Included development, design and preparation of the course.
- 3rd yr / Grad Dip - Object-oriented Programming (1996) - Lecturer and tutor.
Included C++, Java and Smalltalk.
- 3rd yr Compilers (1995) - Lecturer and tutor.
- 2nd yr Programming Principles (1996) - Lecturer.
- 2nd yr Software Engineering (1998) - Project administration.
Design and development of an object-oriented internet search engine web site.
- 2nd yr Software Engineering (1997) - Lecturer, tutor and project administration.
Design and development of an object-oriented internet `free' mail site.
- 2nd yr Software Engineering (1996) - Lecturer, tutor and project administration.
Design and organisation for an object-oriented automated tax pack system.
- 2nd yr Software Engineering (1995) - Lecturer, tutor and project administration.
Design and organisation for an object-oriented `filtering' internet news reader.
- 2nd yr Software Engineering (1994) - Tutor and examination marking.
- 3rd yr / MBC / Grad Dip - Web Programming and Digital Multimedia (1997) - Lecturer and tutor.
- Jun 92 - Dec 93
- Assistant Lecturer, Dept of
Computer Science, Monash University.
- 3rd/2nd/1st yr Consultation - general problem solving assistance.
- 3rd yr Software Engineering Project (1993) (cs3020) - Lecturer.
Design and supervision of this subject.
- 3rd yr Data Communications (1993) - Tutor.
- 2nd/1st yr Digital Logic (1992,1993) - Tutor and lab coordinator.
- 2nd yr Computer Architecture (1992,1993) - Tutor.
- 2nd yr Foundations of Computing (1992) - Tutor.
- 2nd yr Operating Systems (1993) - Tutor.
- 2nd yr Data Structures and Algorithms (1993) - Tutor.
- Mar 89 - May 92
- Casual Tutor, Dept of Computer Science, Monash University.
- Ph.D (100% research).
(Continuous System Monitoring),
This thesis focuses upon the continuous measurement of quality attributes of software systems using the initial requirements as a framework for the development of the system monitors. The thesis includes the analysis and design of a system intended to continuously monitor quality attributes, such as performance, reliability and maintainability, of long-running software systems.
- M.Sc thesis (100% research).
(Orthogonal Variable Environments in a Persistent Architecture),
My Master's thesis focused upon providing an orthogonal mechanism for handling variable environments (the scope in which a variable exists) within the language Chi developed at Monash University. It covered a number of fields including software engineering, denotational semantics and compiler construction.
- B.Sc (Hons) in Computer Science.
(Persistent Environment Browser)
My honours thesis focused upon the construction of a platform independent windowing system to browse over persistent stores such as file systems.
- H.S.C (Completed in 4 years at University High School).
- Distinction in Senior Division of the Westpac Maths Competition.
- Distinction in Intermediate Division of the Westpac Maths Competition.
- Distinction in Junior Division of the Westpac Maths Competition.
- Prize in Junior Division of the Wales Maths Competition.
- G. P. Wong : Continuous performance and reliability monitoring, Technical Report SERC - 0112, December 1999.
- G. P. Wong : A Framework for High Availability, Load Balancing Servers, Technical Report SERC - 0111, December 1999.
- G. P. Wong : Compiling Erlang via C, Technical Report SERC-0079, SERC, December 1998.
- Fergus O'Brien and Geoff Wong (on behalf of Ericsson) : A Continuous Quality Monitoring Framework, international patent PCT/AU/00678 filed.
- G. P. Wong : A Quality Monitoring Framework, Erlang User's Conference, Stockholm, September 1998.
- G. P. Wong : A Software Monitoring Framework, Technical Report, Department of Computer Science, RMIT University, December 1996.
- G. P. Wong : Continuous Systems Monitoring, Technical Report TR95/6, Department of Computer Science, RMIT University, December 1995.
- A. J. Hurst, A. S. M. Sajeev and G. P. Wong : High Level Execution of a Persistent Language, 13th New Zealand Computer Society Conference, Auckland, Aug 1993.
I have designed, developed and maintained a number of other computing applications:
- Gerl - a functional language compiler which compiles Erlang into C code. It is available at http://highcloud.net/geoff/gerl/index.html.
- Shattered World - A large networked, interactive, multi-player gaming and communications environment. Consisting of a C based virtual machine and over 600,000 interpreted language LOC. I have designed, developed and maintained this product over a period of over 10 years. Significant work with networking and socket code. The source code for the driver is available at http://sourceforge.net/projects/swlpc. A snapshot of the interpreted code is available at the same location. The environment maybe explored at http://www.shattered.org.
- Hammerhead - Designed and developed a high speed, multi-threaded, web-site stress testing tool which `hammers' a web site with a specified number and type of requests and collects statistics about the sites performance. Developed in C++. The source code is available at http://sourceforge.net/projects/hammerhead.
I have programmed in numerous languages and am capable of rapidly switching between any computer languages. Specific experience includes the following:
- C++ - primary development language since 1992.
- Java - used in development and teaching.
- C - programmed in C extensively since 1988.
- Erlang - real-time concurrent functional language, programmed since 1995.
- Ada/Ada95 - lectured, tutored to 1st/2nd year students since 1995.
- Bourne/C Shell - can write shell script when required.
- Python - an interpreted OO language (for scripts similar to Perl).
- Perl - a variety of scripts and applications for commcercial use.
- LML - a lazy functional language which I used for my M. Sc thesis.
- Pascal - used irregularly since 1983 (engineering and computer science).
- Fortran - used Fortran-77 for mathematics subjects 1985-1988.
- Eiffel - OO language, used irregularly since 1992.
- Basic - first language learned in 1981, used for six years.
- Assembler 6502/80x86 - learned 6502 in 1981, tutored 80x86.
- HTML - really a markup language, see my homepage (address above).
I am familiar with the general concepts behind operating systems use, maintenance and administration. I have tutored a Monash University course on operating systems. More specifically I have used:
- UNIX (Pyramid, Dec Ultrix, Solaris, IRIX, HP/UX, FreeBSD, Linux, Mac OS X) - primarily development environment since 1986. Including extensive network, socket, scripting and X Windows based developments. I also administer two fully networked multi-user Linux machines.
- Windows-XP/NT/95 - extensive commercial development on these platforms for various companies including Avanteos, Eddieware and LookSmart.
Tools and Toolsets
I have extensive experience with numerous Unix tools and toolsets, this list highlights some of the key development tools I have experience with.
- Rational Case - used and taught Rational Rose (OMT, Booch and UML).
- Purify and Quanitify - used for developing high performance, robust, software.
- Sybase - Administered and used Sybase as a back end for the case tool Software Through Pictures.
- Apache - Have set up, administered, modified and run this popular web server in numerous configurations.
- CVS/RCS - Use CVS as a revision control system for the development of numerous software projects.