Contact

Summary

A full-stack engineer with experience across entire product life cycle.

Including…

  • Open and .NET stack,
  • Remote and international teams,
  • Team lead,
  • Agile,
  • Web and Mobile application development,
  • Startup to Large scale (40k users, 1.5m+ LOC),
  • System automation,
  • Server/System configuration and upgrade.

Technology

  • Full stack
  • .NET 4.5, iOS, Win, C#, MVC, Objective-C,
  • Python, Flask, PyMongo, unittest,
  • JavaScript, AngularJS, Knockout, Grunt, Jasmine, Underscore,
  • PowerShell, Bash,
  • MSSQL,
  • GIT, SVN,
  • Vagrant, Puppet, Jenkins, Teamcity,
  • Heroku, UmbracoCMS, Apple Provisioning, Microsoft Store,
  • Emacs, Visual Studio, xCode

Roles

  • 2014 to -:
    • Montreal, Canada
    • Software Engineer
    • BCA Research inc
  • 2013 to 2014:
    • Vancouver, Canada
    • Software Engineer
    • Eventsage pty ltd
  • 2009 to 2013:
    • Brisbane, Australia
    • Software Engineer
    • icemedia pty ltd

Education

  • University of Queensland, Brisbane, Australia
    • Engineering (Software)
    • Business Management (Management and Organizations)
  • Anglican Church Grammar School, Brisbane, Australia
    • Senior Certificate

About

I like to help others build get stuff built and build things for myself.

Often, I have a camera with me.

My French is pretty bad, but I am working on it.

References

You just have to ask.

Achievements

Contract Developer

Large scale software development of edge.bcaresearch.com and related internal and external products.

Involved:

  • Multiple international team coordination
  • Lead developer role
  • Enterprise scale software
  • Agile development

Keywords:

.NET, C#, AngularJS, Knockout, MSSQL, MarkLogic, Solr, OWMLim, Jira

MVP Funding Proposal

Lead engineer for MVP build of Engineers Without Borders Global Clearing House Initiative

Involved:

  • Chief technical lead
  • Open stack development
  • Complete project build
  • Agile development

Keywords:

Open stack, Python, JavaScript, Angular, Django, Vagrant, Puppet, Heroku

Startup Engineer

Full open stack engineering for startup Eventsage.com

Involved:

  • TDD practices
  • Open stack development environment
  • Startup environment (small team)
  • Continuous Integration server setup
  • Redesign and build of process for initial customer engagement
  • Agile development

Keywords:

Open stack, Python, Flask, JavaScript, Angular, MongoDB, PyMongo, Vagrant, Puppet, Heroku

.NET Engineer

Full stack engineering on medium-large scale application

Involved:

  • .NET 4.5 (C#) development in Visual Studio
  • Data Access with nHibernate, and Custom SQL data access layer
  • Client side page and control development with Web Forms, Razor, JavaScript, jQuery, Ajax Toolkit
  • PDF generation with Prince XML
  • Implemented Windows Workflow Foundation module
  • Implemented notification system via email with XML and XSLT
  • Solution Scripting with nAnt and PowerShell
  • Automated Testing via MSTest and Jenkins CI
  • Logging, AOP and web services with Spring.NET
  • Requirement gathering and business analysis
  • Issue tracking in SharePoint
  • Schedule Tasks in Quartz.NET
  • Reporting using MSSQL Reporting Services

Keywords:

.NET 4.5, C#, MSSQL, XSLT, JavaScript, LINQ, Visual Studio, Spring.NET, log4net, Prince XML, Quartz.NET Windows Workflow Foundation, Prince XML, PowerShell, nAnt, MSTest, SVN, RDP

Team Lead

Worked as technical lead on multiple Umbraco CMS Sites with a small team of designers and developers.

Involved:

  • Sites: Defence Reserves Support Network, RAAF Amberley Heritage Center, ADFC Youth HQ, Migration Agents Registration Authority
  • Full Life Cycle Team (inexperienced PM, graphic design, front-end, back-end developers)
  • Mentoring developers and designers with developer set-up, C#, and version control.
  • Helping developers (who had never touched the .NET framework) build custom Umbraco public facing components and new administration sections
  • Mentored inexperienced, non-technical project manager with requirement gathering, quotes and managing client expectation

Keywords:

Technical lead, Mentoring, Project management Requirements gathering, Business analysis, Managing client expectations, Umbraco CMS, XSLT, .NET, C#, GIT, SQL

Mobile Development (Business)

Built and created the ADFC Occupation Health and Safety iOS application

Involved:

  • Implemented a iOS application.
  • Implemented a SOA for access to external application data.
  • Prototyped in iOS, Mono Touch.
  • Create, install and configure Apple Provisioning Profiles (developer, ad-hoc & distribution)
  • Application through Test Flight API to multiple devices

Keywords:

iOS, Mono Touch/Xamarin, SOA, XML, JSON, Objective-C, Apple Provisioning and Distribution, Test Flight

Mobile Development (Personal)

Various (iOS, Win, Unity)

Involved:

  • Design, build, release and support of applications and related websites

Keywords:

App design, iOS, xCode, C#, XAML Objective-C, Visual Studio, Unity, Apple Provisioning and Distribution, Window Store Distribution

System Automation

Replace hand built build and release processes with automatic and single click build and release processes.

Involved:

  • Single click package creation and single click install, due to installing in the highly restrictive Australian Defence Force Servers (e.g. no physical or external access)
  • Removing the possibility of human error from the release process.
  • Installing and setting up Jenkins CI for continuous integration building and automating release built from SVN and GIT sources.
  • Automating nightly release for TEST environment (Environment includes .NET web applications, IIS configuration, database upgrades, and installing SharePoint, Exchange, UAG, FuseTalk, Moodle PowerShell customizations via PowerShell remote scripts)

Keywords:

Continuous Integration, Automation, Release Engineering, Restrictive Environment, PowerShell, PS Remoting, nAnt, IIS, SVN, GIT

Unified Access Gateway Customization and Install

Replaced a custom Single Sign On Solution with a customized Unified Access Gateway implementation .

Involved:

  • Configuring and customizing a master-slave UAG install to include:
  • Custom pages
  • Integrate multiple service authentication methods (Exchange, SharePoint, Web Services, 3rd party access, FuseTalk, Moodle, mobile applications) using the same authentication store (AD & SQL)
  • Maintain Single Sign On ability.

Keywords:

Unified Access Gateway (UAG), Single Sign On, AD, SQL .NET Authentication Providers, Basic Authentication

Test Framework

Designed and implemented a Selenium base testing framework for COMS.

Involved:

  • Created a .NET testing framework based on Spring.NET and generics to populate test data.
  • Created a Selenium framework to allow browser based testing
  • Testing product boundaries found in COMS like interaction between Exchange OWA and the COMS Web Applications

Keywords:

Selenium, .NET, Spring.NET, MSTest

Custom In-House Tools

Identified, designed and implemented various tools for development.

Involved: Commit and Time Logger:

  • Fetching and analyzing SVN repository logs
  • Fetching and analyzing employee record database
  • Present data in a usable form

Business Analyst Statistics:

  • Created tools and scripts to aid business analysis.

Custom Profiling Tools:

  • Page statistics
  • User action tracking
  • Database logging

Technology Refresh and System Rebuild

Upgrade tools and framework in COMS. Involved in system wide technology refresh for a medium-large scale application

Tools Refresh:

  • .NET 2.0/3.5 -> .NET 4.5
  • Spring.NET 1.2 -> Spring.NET 2.0
  • nHibernate 2.1 -> nHibernate 3.3.x
  • Visual Studio 2005 -> Visual Studio 2012

Technology Refresh:

  • Addition of Unified Access Gateway
  • Exchange 2007 -> Exchange 2010
  • MSSQL 2005 -> MSSQL 2008
  • SharePoint 2007 -> SharePoint 2010

Involved:

  • Disaster Recover Documentation
  • Build TEST, STAGE, UAT and Prod environments
  • Travel to Canberra and work inside Australia Defence Force Restricted Network to install UAT and PROD
  • Complete system build and data restore, including; Rebuild servers, forest & domain configuration, AD configuration & rebuilt, database upgrade and restores, mail export & re-import, 3rd party product installs & data import…)

Keywords:

Disaster Recover, Restrictive Environment, Server rebuilds