Regular learning of new languages or skills
- Aside from progressing personal projects, I learn something new about programming or technology each day.
- TopCoder.com is one way to find new areas of computer science/programming to learn.
- HackerRank is one way to practise new skills/languages.
Commercial Development Experience
(1998 - ) Davies Collison Cave Intellectual Property and Trade Mark Attorneys
B2B Software Project
- modifying existing software system by understanding the configuration and software to handle new application types, and present information within an existing framework.
- C#, MSSQL, Visual Studio 2015
Enterprise Software Modification
- profiling and modifying the behaviour of an existing system’s functionality to meet business requirements. i.e. generate e-bills for draft invoices.
- identifying the root cause of problems and working with the vendor to fix and release changes to their own system.
- configuring e-billing for the business to meet third party requirements by writing and modifying XSL.
- MSSQL, SQL Server 2008, XSL
MS Word/Database contents into an email with document processing (inline/attachment)
- inject iManage DMS contents into an email with auto-addressing and subject utility for users to take a DMS document and inject it into an email as body, attachment, or both and then allow the case information of the document determine the email’s subject and recipients.
- C#, MSSQL, iManage API, VBA
Optimising SQL reports and queries
- convert SQL queries with cursors, joins, cross queries and functions to use temp tables to get 60x performance boost. Indexing then provides even more performance (or aligning the queries to use existing indices)
Optimising user interface configuration
- designed and implemented an algorithm to determine the best two arrangements of a user’s UI to make overall load time most efficient based on required usage of functionality.
- this was constrained by wanting only a small number of possible arrangements to simplify maintenance.
- scored effect of possible arrangements that had to include features users needed
Levenshtein algorithm to group like sounding clients
- provide the business with sales and supply figures based on a collection of client records that have similarly spelt names by grouping the name records.
RFID bridge client
- Two-way connection between production RFID linux system to a production case management system in order to keep the location of and requests for paper files consistent between what was recorded by users in the case management system and the handheld location recorders of the RFID system.
- Delphi, MSSQL, MySQL
Document queue monitor - web software
- provide a low resource usage view of the documents in the practise management system that have not yet been produced and saved into the document management system.
- ASP.Net, MSSQL
System monitor (docgenmonitor)
- monitor the health of servers and services in a way that updates frequently and provides the Tech Services department with up to the minute information on the health of their services.
- C#, MSSQL
Email to case list
- users provided the filing department with five different ways to request files by email.
- implemented a way for the emails to be searched for official numbers and turned into a report with the locations of all required files and other information required by the files department.
- C#, MSSQL
IPAustralia to iManage
- documents available from the national intellectual property office website were downloaded as a zip file, unarchived and manually saved to the local document management system, then reported to relevant operators
- this was automated by accepting the zip file, unarchiving it and automatically filing it to the document management system based on the name of the document.
- generate a spreadsheet with links to the case management system, the document system and automatic email of notifications to relevant operators
- C#, MSSQL, VBA
Used Reflection to Instantiate Dynamic Data-Aware Classes
- by inspecting the properties of data modules in Delphi, I generated the properties of classes on the fly instead of hand-creating classes that accessed the data modules.
Wrote a VBA code Generator
- A document generation engine needed to be migrated to VBA from Delphi. I wrote code to generate about 100K lines of code from the existing code and configuration so the new document generation system behaved similarly to the old one without too much manual work.
- Delphi, VBA
- Development of in-house practice management system using Inprise Delphi 4-6 and Microsoft SQL Server 6.5 – 2008
- Development of in-house billing system
- Legacy system data migrations
- Vendor-supplied product testing, debugging, reporting and enhancement
(2011 - 2016) Allballsin Pty Ltd
Co-founded Allballsin Pty Ltd to develop and sell iPhone and Android apps.
- identified song currently playing on radio, and allowed purchase from Apple
- obtained station website lists and set up scraping software to get the latest songs
- uploaded the songs to a web database where the app obtained current playing information for a station
- Objective C, Python, Python CGI, Selenium, MySQL
- removed ads and spoilers from Facebook feed
- scraped and parsed Facebook’s mobile web page
- schedule searches for copyright and Trade Mark infringements
- Swift version utilised Continuous Integration with Jenkins, git and fastlane
- Objective C, Swift
- record used car evaluations
- Objective C
(1998) DNS Australia
Developed a web-based communication system for online tertiary education.
- ASP, MSSQL
(1998) BBL Funds Management Limited
Developed software on contract basis for marketing and financial reconciliation purposes.
- Delphi, MSSQL
(1997 - ) PC Blues http://pcblues.com
Performed all tasks associated with bringing two software products to market on the internet.
The Upgrade Suite
- simplify and manage software distribution across corporate networks and the internet
- read large amounts of text on a screen easily
- hum classical tune and identify title
- generate signature from midi files of classical orchestration
- convert audio to signature and match for song
- C, not released
(1996 - 1997) Sausage Software Startup Software Company
Programmed on team to develop world-famous web-authoring tool in Delphi.
- One of the first internet downloading tools, bundled with retail version of Netscape Communicator
(1995 - 1996) JLM Software Shareware Distribution Company
Developed interactive help system to reduce the number and length of phone calls for assistance
- MS Help
Created menu systems for shareware CD-ROMS
- C, Formula (Multimedia), Delphi 1
Oversaw maintenance of office computer network (virus protection, system back-ups, hardware maintenance)
Provided technical assistance over phone to customers and retailers for all of our products
Initiated conversion of telephone customer help to a new first contact system of mailed out help sheets covering the most common problems
(1991 - 1995) Bachelor Computing ( Computer Science ) Monash University (Clayton, Australia)
Final year studies included:
- Unix/C large scale software maintenance project
- Data Communications and Networking
- Programming Paradigms
- Fundamentals of programming languages
- Artificial Intelligence
- Machine Learning
- Computer Organisation
- Software Engineering II
- Computer Graphics
- MS SQL since 1998
- C# since 2014
- VBA since 2000
Not so much now
- Objective C since 2011
- Swift since 2015
- Delphi since 1996
- Mac OSX
Other Products Used
- MS Reporting Services
- Crystal Reports
Other Personal Projects/Interests
- Raising kids
- Non-fiction Writing
- Novel Writing
- Song/Poetry Writing
- Music Composition
- Policy Development
- Video Production