Résumé for David Goh
Highly skilled Unix DevOps specialist with a very wide range of experience in software engineering, systems administration, toolsmithing, cloud and open source applications.
|Familiar with:||Swift (iOS, MacOS), PHP, Java, AppleScript, LUA, Markups (DocBook, LaTeX, Postscript).|
|Highly Competent:||Operating Systems (Linux, macOS, Solaris), Database (PostgreSQL, Sybase, Oracle, MySQL), Monitoring (Nagios, site24x7, other custom), Ticketing (Jira, RequestTracker), TCP/IP Network configuration and setup, File services (Samba/CIFS, WebDAV, AFP, NFS), Unix script writing (Python, csh, sh, awk, sed, Perl, PHP).|
|Familiar with:||Deployment/Containerisation (ansible, Nexus, Docker), Operating Systems (Windows, FreeBSD, Macintosh, Irix, SunOS, MSDOS), SAN/NAS configuration and maintenance (NetApp, SUN StorEDGE, HP EVA), Firewall setup.|
|Internet and Cloud Services administration:|
|Highly Competent:||Apache httpd, Postfix, BIND DNS, Confluence, Squid proxy, Cyrus IMAP.|
|Familiar with:||Tomcat, O365, G-Suite, Dreamhost, Squarespace, Sendmail, SMPP software (Kannel), Usenet (INND, Leafnode, Taylor UUCP)|
|SDK's and Development Tools:|
|Highly Competent:||vi, PyCharm, git, Make, SVN, Perforce, RCS, CVS, ClearCase, SCCS, PVCS|
|Familiar with:||Xcode, MS Visual Studio|
Dec 2011 - Present: Unix DevOps Consultant - Object Craft Pty Ltd
- Unix & Internet/Intranet applications design, deployment, debugging and maintenance. Unix Systems administration. Toolsmithing. Agile methodology implementation. Developer mentoring.
Jun 2011 - Dec 2011: Application Support Analyst Programmer, Systems Administrator - RMIT University
- Maintenance and redevelopment of a variety of applications. Primary responsibility is a suite of applications from ExLibris. Toolsmithing, Systems Administration and Programming. Mentoring of junior programmers. Engagement with formal Change Approval Board processes and ITIL processes.
Oct 2007 - June 2011: Monitoring Systems Development and Toolsmithing, Senior Systems Administrator - AAPT Ltd
- Ensuring software quality by introducing automated test practices. Build process toolsmithing. Designing and implementing improvements to Python based monitoring software (Eddie) and other related systems management utilities. Monitoring rule design and implementation to ensure minimal false-positives and automated service recovery processes where possible. Integration of alerting with Netcool to enable the Network Operations Centre to have a view of alerts. Aiding and educating other team members in writing scripts (Shell, Python and Perl). Implementation of Nagios monitoring including plugin writing.
- Managing a variety of ISP services (email - Postfix/Cyrus/Veritas Cluster, webhosting - Apache), maintaining Unix servers (primarily Solaris, HP/UX, Linux), Database administration (MySQL and Oracle), Backup configuration and management (Veritas NetBackup and HP Data Protector). Configuration and maintenance of SAN/NAS devices (NetApp, SUN StorEDGE, HP EVA SAN). Monitoring security news alerts and managing appropriate server and software patching where necessary. After hours on call support for the above. Engagement with formal Change Control Board processes (both in being engaged in relation to Application Changes from other teams and in creating Changes for project implementations relating to team). Mentoring of other team members in the above.
Aug 2006 - Sep 2007: Chief Development Manager - Digital Media Technology startup (name on request)
- Managing the creation of an innovative media delivery platform from the ground up. Recruitment and ongoing management of ten very high quality technology staff, including GUI programmers, search and indexing engine experts, web database programmers, user interface designers and project managers. Company policy development and technology workflow and process development. Also Toolsmithing, Systems Administration, Programming (mostly Python), Code Review, Software Architecture and Design, Requirements Elicitation and Analysis.
Aug 2005 - Jul 2006: Senior Analyst Programmer - NAB Ltd
- Ensuring software quality by introducing partially automated code reviews, and building an automated unit testing suite. Build process toolsmithing. Designing and implementing Extract/Transform/Load software to do data aggregation on multiple multi-million line data sources, using Perl and Sybase SQL. Sybase database design, query design, and performance tuning. Aiding other team members in their work.
Mar 2004 - Mar 2005: Independent IT Contractor - various
- Customer Requirements Elicitation (including liaison with third parties to determine appropriate interfaces), Writing Software Requirements Specifications and Software Detailed Design Documents.
- Writing a custom SMS Gateway (capable of doing both SMPP and HTTP communications) to interface with a financial transaction back end. Designing a custom XML-RPC communications protocol to ensure both security and ease of implementation for the third party owning the financial transaction back end.
- Ensuring software quality via design reviews and scenario walkthroughs. Writing prototype communications software in Perl, involving design of a custom client/server protocol using TCP/IP streams and XML messages.
- Implementing custom modifications to Zope/Python based shopping software (Bizarshop) to enhance interaction with a specific payment gateway.
May 2002 - Jan 2004: IT Manager, Software Architect, Senior Systems Administrator - Quintiles HRS Pty Ltd
- IT Manager (May 2002 - Jun 2003): Determination of company technical policy. Management of resourcing, interviewing and selecting excellent quality personnel to hire. Satisfying company technical requirements at minimal cost. Planning and estimation of time and staffing requirements for a diverse many project workload. Management of team member workload. Managing IT Integration process to integrate systems with Quintiles Transnational. Moved out of the IT Management role (as the role was no longer necessary) to take up full time work in the newly formed Data Solutions Department, after completing IT Integration processes with Quintiles Transnational.
- Software Architect (May 2002 - Jan 2004): Writing Software Requirements Specifications, Writing Software Detailed Design Documents based on Software Requirements Specifications. Ensuring software quality via code reviews, walkthroughs and regular design meetings. Writing software test plans. Writing architecture critical libraries. Educating other developers about software quality measures. Writing web data capture applications in Perl and SQL. Initiating and completing development of the Core GoCRF Toolkit Suite, a toolset which enables rapid deployment of an XML based database in various contexts, primarily in the context of medical data capture. Implementing Configuration Management with CVS and Perforce.
- Senior Systems Administrator (May 2002 - Feb 2003): Managing various network services (Samba, NFS, PostgreSQL, Apache, Mailman, Postfix), maintaining Unix servers and Win32 desktops, creating and implementing network policies. Supporting Lotus Notes desktop. Database administration of PostgreSQL databases.
Nov 2001 - May 2002: Senior Core Software Engineer - SPATIALinfo Pty Ltd
- Writing Software Detailed Design documents based on Software Requirements specifications. Ensuring software quality via code reviews, walkthroughs and regular design meetings. Writing Software Test Plans. Writing architecture critical libraries. Writing software in C, C++ and SQL. Using Clearcase based change control systems.
Nov 2000 - Aug 2001: Software Architect and Senior Systems Administrator - Blaze International Ltd
- Writing Software Requirements Specifications. Writing Software Detailed Design documents. Ensuring software quality via code reviews, walkthroughs and regular design meetings. Writing Software Test Plans. Writing architecture critical libraries. Educating other developers about software quality. Ensuring code reuse. Writing software in C, C++ and Perl. Planning projects and tasks for software engineering projects involving up to three people. Planning, installation and maintenance of mission critical Linux systems and network services.
Mar 1999 - Oct 2000: Technical Director - Netizen Pty Ltd
- Technical Director (Mar 1999 - Oct 2000): Determination of company technical policy. Management of resourcing, interviewing and selecting excellent quality personnel to hire. Satisfying company technical requirements at minimal cost. Planning and estimation of material and staffing requirements for several-month long software engineering projects involving up to ten people. Management of team member workload.
- Training Course Conductor (Sep 1999 - Oct 2000): Conducting Training Courses on Perl, Basic Unix skills, and Advanced Unix skills. Reviewing, editing and aiding development of training course notes.
- Technical Sales, Software Architect (Sep 1999 - Oct 2000): Meeting with customers to determine their technical requirements. Writing Software Requirements Specifications based on customer needs. Producing quotes based on estimated resource requirements and costs. Writing Software Detailed Design documents. Ensuring software quality via code reviews, walkthroughs and regular design meetings. Writing Software Test Plans. Writing architecture critical libraries. Educating other developers about software quality. Writing web applications software in Perl, Python and PHP.
- Senior Systems Administrator (Sep 1999 - Oct 2000): Managing various network services, maintaining Unix machines and services, creating network policy. Database administration of MySQL, PostgreSQL and Sybase databases.
Nov 1996 - Sep 1999: Software Architect and Systems Administrator - Unico Computer Systems Pty Ltd
- Software Architect: Writing Software Detailed Design documents based on Software Requirements specifications. Ensuring software quality via code reviews, walkthroughs and regular design meetings. Writing Software Test Plans. Writing architecture critical libraries. Educating other developers about software quality. Writing software in C and C++.
- Systems Administrator: Maintaining Internet related services, including UUCP based mail and news services. Planning and installation of a secure firewall and proxy infrastructure. Oracle Database administration.
Apr 1994 - Nov 1996: CAE Australia Pty Ltd and Ferranti Computer Systems Australia Pty Ltd
- Software Engineer (Apr 1994 - Nov 1996): Design and implementation of a Configuration Management system using SCCS as a back end. Analysis, bugfixing, redesign and testing on the TDTS (Train Describer Telemetry System - 1.3 million lines of C, cross-compiled for iRMX - Intel Realtime Multibus eXtended OS) project. Consulted regularly by most of the other Software Engineers for advice.
- Systems Administrator (Dec 1994 - Jan 1996): Maintaining the SunOS 4.0 based PC-NFS network. Maintaining the iRMX multibus hardware, ensuring backups of the development machines. Planning and implementation of network infrastructure changes for office move in December 1994.
Dec 1993 - Mar 1994: Technical Support and Admin - Vital Years Pty Ltd
- Providing user support and systems maintenance for Macintosh computer systems. Performing general clerical work. Taking part in training course development processes.
1997: Bachelor of Computer Science - La Trobe University, Australia - incomplete
1992-1993: Bachelor of Science (Maths) - University of New South Wales, Australia - incomplete
1991: Medicine - University of New South Wales, Australia - incomplete
1990: NSW High School Certificate - The Emanuel School, Australia - TER 99.20 (top 0.8 percent of state)