I'm a software engineer with a decade of commercial experience writing applications for Windows, Linux and the web. I have predominantly worked on web projects based on the Microsoft .NET technology stack, however, I also have broad range of experience in other languages and technologies. Throughout my career I have often had the opportunity to consult directly with end-users of the applications and know how crucial user experience design is to the long-term success of a product or project.
Recently I have found a strong passion for purely functional programming. This has led me to be interested in the theoretical aspects of computer science and prompted me to enrol part-time in a Graduate Diploma of Computing at the ANU, where I intend to continue on to a Masters of Computing and attain a major in Computational Foundations. I have a strong belief that purely functional programming, where we are explicit about the side-effects and invariants in our code, can help reduce the bugs in our software.
- Markup Languages - HTML 5, CSS, XML, XSLT.
- Web Frameworks & Libraries - ASP.NET MVC, ASP.NET WebForms, JQuery, Bootstrap, AngularJS.
- Rich-client Frameworks - Windows Forms, WPF, Swing.
- Database - Microsoft SQL Server, PostgreSQL, SQLite.
- Operating Systems - Microsoft Windows, Linux.
- Mobile Platforms - Android Development.
- Development Tools - Visual Studio, Team-Foundation Server, Eclipse, Git, Mercurial, Subversion.
- Other: Sitecore, DotNetNuke.
OpenSimple (from July 2013)
OpenSimple operates as a consulting company with client work focused on building web applications using the Microsoft .NET technology stack.
Australian Building Codes Board (July 2012 - July 2013)
Software Developer (EL1)
- Administrating and extending an existing Sitecore CMS installation.
- Maintaining an existing in-house Digital Rights Management (DRM) solution.
- Development, testing and deployment of various in-house applications:
- Bespoke customer management systems.
- Bespoke ticketing system.
- XML based desktop publishing software for the NCC/BCC.
- Providing guidance on WCAG 2.0 compliance for all electronic media.
- Identifying severe security flaws in a system to be transferred to us and proceeding to refactor/rewrite the entire system with additional functionality and tests within a hard deadline of just over two weeks. This project was deemed a great success to our team.
VSoft Technologies (2006 - June 2012)
Senior Software Developer
- Development of the continuous integration tool, ContinuaCI, through-out the entire SDLC.
- Multi-tier ASP.NET MVC Web Application.
- Cross-process communication via WCF.
- PostgreSQL & NHibernate for data persistence.
- Involved in a wide range of business decisions including pricing, licensing, marketing and sales of "shrink wrapped software".
- Maintaining and extending an in-house e-commerce application which included porting to the DotNetNuke platform.
- Taking over the design & development of an existing ASP.NET Web-Forms project to the point where the product was released and then continued supporting the product for over 3 major versions.
- Maintaining and supporting an existing Delphi based application, FinalBuilder.
- Interacting with end-users to determine which features are needed in our products to meet their requirements, and then implementing features based on their input.
- Providing all levels of support for their existing products.
- ContinuaCI was started as a greenfield project by myself and the CEO and continues to be a feature product of the company. The architecture resembles a traditional 3-tier application with the addition of distributed worker agents communicating with the 'logic' layer in a hub and spoke pattern. Some technically interesting parts of the code base that I was responsible for included:
- Designing the distributed agents to analyse the environments in which they are installed and registering themselves, and capabilities, with the main application server.
- Developing the workflow engine and web interface that enables the user to configure the build process that is run on the agents.
- Designing the extensibility layer of the application to allow users to write custom build actions. An aspect of this was the use of .NET attributes to automatically generate a web interface for configuring instances of the actions.
Graduate Diploma of Computing (Enrolled part-time)
Current grade point average: 7.0/7.0
Australian National University
Online Course (Verified): From Nand to Tetris (Completed 2015)
Hebrew University of Jerusalem on Coursera
Introduction to Functional Programming (Completed 2014)
Sitecore Foundations & .NET Developer Course (Completed 2012)
Diploma of Information Technology (Network Engineering) (Completed 2005)
Riverina Tafe Campus - Wagga Wagga
Higher School Certificate (Completed 2003)
Wagga Wagga High School
YOW! Lambda Jam 2015 (May 2015)
A library for writing web applications in Haskell. I wrote this library while learning Haskell, it is quite simple, however I have found it to be an excellent way of writing RESTful web services in Haskell.
Cards is a personal knowledge base system that currently supports writing notes in MarkDown with LaTeX support for mathematical notation. It has been a side-project that I've been working on while studying which I use to record lecture/study notes. It's implemented as a single page web application using the Aurelia web framework and connects to a RESTful web service written in Haskell.
Ben Hughes - Senior Software Engineer
Paul is one of the most talented software engineers I've worked with in my 12 years in the industry. He is thorough, passionate and can view problems at multiple levels of abstraction.
What sets Paul apart from most developers though is his ability to produce simple solutions to complex problems. He has an enviable intuition for seeing when and how a solution can be simplified, and the tenacity and skill to see it through. This simplicity makes his code and the systems he designs remarkably easy to understand.
Although he is often the smartest person in the room, Paul is always humble, willing to learn and willing to teach. Despite his technical skill, he is very pragmatic and never loses sight of the broader purpose of his work.
If you would like any further information, please contact Paul for my contact details.
Additional references available upon request