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