Team Management: |
Planning and estimation of time and staffing
requirements for multi-year software engineering projects involving up
to ten people. Management of team member workload for the
duration of the above projects. Management of resourcing,
interviewing and selecting excellent quality personnel to staff
the above projects. |
Technical Sales: |
Determination of customer technical requirements. Writing
Software Requirements Specifications based on customer needs.
Estimating human and material resource requirements and costs and
producing quotes based on them. |
Software Engineering: |
Agile methodology implementation and delivery. Object
oriented, functional, and procedural design, redesign, implementation,
debugging and testing of real-time and near-real-time multithreaded
applications, communications modules and systems software. Development and
deployment automation. Writing Software Detailed Design documents based on
Software Requirements Specifications. Engagement with multiple stakeholder
groups at all stages to ensure correctness and timeliness of delivered
software. |
Quality Assurance: |
Writing Software Test Plan documents, carrying out, and
automating testing. Code review and walkthrough, software
architecture analysis. |
Programming Languages: |
Python, Javascript (React, jQuery, Node.js, raw),
SQL (PostgreSQL, Microsoft SQL Server, Sybase, Oracle PL/SQL, Oracle Pro*C, MySQL),
Swift (iOS, MacOS), Perl, PHP, Java, C, C++, AppleScript, LUA.
|
Formatting/Markup Languages: |
HTML, CSS, JSON, YAML, XML, DocBook, LaTeX, Postscript. |
Systems Administration: |
Deployment/Containerisation (ansible, Nexus, Docker, AWS EC2/ECS/ECR/CloudFormation).
Virtualisation (Parallels, VMWare, Virtualbox).
Unix systems administration (Linux (multiple distributions), macOS, FreeBSD, Solaris, SunOS, Irix).
Database installation and programming (PostgreSQL, MSSQL, Sybase, Oracle, MySQL).
SAN/NAS configuration and maintenance (DROBO, NetApp, SUN StorEDGE, HP EVA).
Monitoring Systems implementation and management (Nagios, site24x7, various other).
Ticketing Systems implementation and management (JIRA, RequestTracker).
File server setup (Samba/CIFS, WebDAV, AFP, NFS).
Unix script writing (Python, csh, sh, awk, sed, Perl, PHP).
TCP/IP network configuration for servers, network devices, and PCs.
End User support for macOS, Linux, Solaris, Windows, FreeBSD, Macintosh, Ultrix, SunOS and MSDOS platforms.
|
Internet and Cloud Services Administration: |
AWS (EC2, ECS, ECR, CloudFormation, VPC, Route 53, etc).
Web server (Apache, Tomcat) setup and maintenance.
Web Programming using W3C standards compliant HTML/CSS,
Javascript (jQuery, React, Node.js, raw) and server side software in
Python (Flask, plain CGI), JSP, Perl, PHP.
Domain Name Service administration (BIND, AWS Route 53).
Cloud service security analysis, evaluation and implementation
(AWS, O365, G-Suite, Dreamhost, Squarespace, Dropbox, iCloud, etc).
Wiki implementation and management (Confluence, PHPWiki, Moin).
Firewall installation and setup (Solaris, macOS, Linux and FreeBSD).
Postfix and Sendmail administration.
IMAP and POP administration (Cyrus, Courier and UW).
Squid proxy administration.
IPSec VPN configuration (Linux, macOS).
SMPP software (Kannel, perl Net::SMPP module).
Majordomo and Mailman mailing list management.
USENET (INND, Leafnode) setup and maintenance.
MUDs (virtual text world environments - LPmud, MOO).
Taylor UUCP for USENET and Mail setup.
Zope installation and maintenance.
|
Teaching Skills: |
Excellent at explaining technical issues to technical and
non-technical people. Strong verbal and written communication
abilities. Able to determine what knowledge individuals are
missing, and explain that knowledge to them. Can write and conduct
short presentations and training courses, both formal and
informal, on a variety of topics. |
Configuration Management: |
Design and implementation of systems to maintain control of the
software development and release cycle, use of various change
control systems (Git, SVN, Perforce, RCS, CVS, ClearCase, SCCS, PVCS). |
Object Craft Pty Ltd (Dec 2011 - Jun 2021): |
Unix & Internet/Intranet applications design,
deployment, debugging and maintenance. Unix Systems administration.
Toolsmithing. Agile methodology implementation. Developer mentoring.
Technologies Involved: Linux, macOS, Apache, Python, Javascript (jQuery,
React, Node.js, raw), Web APIs (REST/JSON, SOAP/XML-RPC), HTML/CSS,
PostgreSQL, ansible, Nexus, Docker, Microsoft SQL Server, Windows, Git,
SVN, Postfix, site24x7 and other monitoring. |
Small Legal Firm - part time (Sep 2008 - present): |
Systems Administrator, Technical Support, Toolsmithing. Managing
technology choices, implementation and support of services, ranging from
locally hosted client/server applications to cloud services.
Technologies involved: O365, macOS, Squarespace, Parallels, Windows, Drobo,
G-Suite, Dropbox, DayLite.
|
RMIT University (Jun 2011 - Dec 2011): |
Application Support Analyst Programmer, Systems Administrator.
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.
Technologies Involved: Solaris, Apache, Tomcat, JSP, Perl, Python, PHP,
Javascript, HTML/CSS, JSP, MySQL, Oracle DB. |
Ceased contracting to take up full time employment in September
2007.
Digital Media Technology startup (Aug 2006 - Sep 2007): |
Chief Development Manager. 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. |
NAB Ltd (Aug 2005 - Jul 2006): |
Senior Analyst Programmer. 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. |
SMS Gateway company (Jul 2004 - Mar 2005): |
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. Ensured consistency of charactersets by translating all the common SMS
character encodings to Unicode and ensuring that the back end receives a
consistent UTF8 stream. |
Digital Media Technology startup (Jan 2004 - Jun 2004): |
Writing Software Requirements Specifications, and Software
Detailed Design Documents based on Software Requirements
Specifications. 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. |
Newsfeed and Internet shopping company (Dec 2004): |
Customer Requirements Elicitation (including liaison with third
parties to determine appropriate interfaces). Implementing
custom modifications to Zope/Python based shopping software (Bizarshop) to
enhance interaction with a specific payment gateway. |
Employed originally by Health Research Solutions Pty Ltd, and continued
employment with Quintiles HRS Pty Ltd when the company was purchased by
Quintiles Transnational Corp..
Resigned in order to take up independent software contracting.
Employed by SPATIALinfo to work on SPATIALnet (a Geographical Information
Systems software product). Left when headhunted directly by Health Research
Solutions Pty Ltd to become their IT Manager.
Employed by Blaze International Ltd in order to work on a new streaming server
for Famous3D. Was made redundant in August 2001 when the company discontinued
the streaming server technology.
Started Netizen in March 1999 with 3 other directors, while continuing
to work at Unico Computer Systems. Changed to full time work for
Netizen in September 1999. Departed Netizen in October 2000 after
selling the business to VA Linux, who were looking to acquire a going concern
to aid expansion into Australia.
Part-time work for Vital Years Educational Consultancy. Left to work
for FCSA.