Professional Profile
Software Engineer with 10 years experience. Have extensive exposure to enterprise grade projects, programming languages and technologies in building desktop, mobile and web applications. Always looking to develop and learn new skills and technologies.
Work Experience
April 2017 - Present
Analyst Programmer - Mobile
HCF Australia
My Membership App
- iOS and Android native app that allows members to submit claims by taking a photo of a invoice.
- Modernised build system and library for future proofing sake.
- Improving app usability, stability and reliability. Reduced failed claim submissions from almost 25% to under 0.3%
- Continually working to improve claim image quality based on feedback from users/members and claims team.
- Building foundation for Unit Testing (XCTest/JUnit) and UI Automated Testing (XCText / Espresso)
- Working closely with Marketing and Testers.
Reporting
- Data mining production database for usage trends and app performance statistics. Regularly reporting stats to relevent stakeholders.
- Using PowerBI to investigate production issues and for reporting app performance statistics.
Digital Team
- Assisting Digital team with web development tasks (HTML / CSS / JS) on HCF public website.
- Building reuable html components for advertising current and future components.
- Formal Adobe AEM Training for Content Authoring, Frontend Developer and Backend Developer.
- Primary front end developer for HCF loyalty rewards portal and associated integrations with HCF mobile app.
Hackathon Team Lead
- Building native iOS Mobile App that demonstrates utilisation of Bluetooth Low Energy beacons for targeting offers to members.
- Conversing with business and customer stakeholders to understand requirements and build a working Minimum Viable Product (MVP) prototype.
- Pitching to Enterprise Leadership Team with presentation and demonstration.
Portfolio
Please visit my online resume to view an interactive portfolio.
February 2013 - April 20174 Years
Business Analyst / Senior Software Engineer
Corporate Interactive
In my time at Corporate Interactive, I have worked on a wide varierty of projects including websites, mobile apps and hardware programming.
I originally started as a Developer (2013) and eventually got promoted to a Senior Developer role (2015). In Recent months I have increasingly taken on more BA, client and team management responsibilities.
My role requires me to wear multiple hats including software development, testing, database administration, project managment, client relations management, sales and regularly building prototypes / mock-ups to assist in pre-sales for future clients.
OneBlip Collaborative Solutions
- Working on multiple native iOS (Objective C) and Android (Java) mobile apps for sharing cars, office items and parking spaces.
- Built custom Arduino module using C++ for locking and unlocking car doors and enabling/disabling immobiliser over encrypted bluetooth connection.
- Entire end to end process including booking and registration process handled on mobile devices with server components implemented in Java.
- Automatically collecting money from borrowers at the end of bookings using PayPal adaptive payments API with chained payment to car owner and OneBlip (merchant).
- Localisation for multiple markets/regions including Australia, France, Spain, Germany and UK.
Telstra Business Proposal Builder (BZPRO)
- Lead Developer and Technical Project Manager.
- Online portal for building consistent and personalised business proposal for a wide range of Telstra products, plans and services. Rolled out to all Telstra Business Centres and associated resellers across Australia.
- Online portal for sending out welcome packs for new clients as per Australian Consumer Law (ACL).
- Web portal heavily driven by JavaScript to provide a highly interactive and rich experience for users. Allows for building document with multiple sections and content types.
- Allows for embedding images, videos and other documents into business proposals.
- Responsive desktop and tablet viewing experience with PDF generation functionality.
- Building custom reporting engine to visualise internal usage statistics.
- Portal look and feel built using customised Bootstrap framework as per Telstra Brand guidelines.
Quote Cloud
- Solution Architect and Technical Project Manager for building SAAS platform for sending out documents.
- Lead migration into load balanced cloud AWS infrastructure using EBS, EC2, RDS, EFS, Dynamo DB and S3.
- Rapid development lifecycle with short sprints. Development based on customer feedback and testing.
- Working closely with high value clients such as CMS Surveyors and Gerard Lighting to understand and implement custom requirements in SAAS manner.
Ernst & Young
- Senior technical lead in building SAAS product for calculating depreciation over periods of time.
- Allows for quick and easy calcuation of 'what if' data scenarios over multiple years.
- Working closely with financial clients in porting complex workflows and formulas across to custom software solution.
IAG Marketing Help portal
- eCommerce portal for IAG/NRMA/CGU Australia resellers, partners and retailers to order personalised branded advertising.
- Architectured end-to-end integration with Adobe InDesign using ExtendScript to dynamically generate personalised previews of advertising before placing order in marketplace.
- Managing full lifecycle of advertisment procurement to cater for multiple stakeholders including agents, managers, content authors, suppliers and publishers.
HelloWorld Travel and Qantas Business Travel(QBT)
- Building and managing a system for two separate organisations. Both systems have similar but distinctivly different business requirements.
- Java based server-side handling itinerary data for all bookings processed at HelloWorld retail outlets around Australia with ability for agents to edit and customise bookings before sending.
- Processing high volume of data for government and business travellers through QBT.
- Integration with Multiple Global Distribution Systems(GDS) including Sabre, Travelport (CCTE) and Amadeus
- Realtime performance monitoring and optimisation of MySQL database based on real-world usage.
- Building and implementing new REST API for loading booking data with support for paging, sorting, searching and filtering. This significant reduced the load on the server and reduced data load times for larger customers from a few minutes down to a few milliseconds.
- Integrating with next generation functionlity for Qantas Chauffeur Drive as part of IATA NDC(New Distribution Capability).
- Planning for future staged migration to scalable cloud infrastructure.
Concierge Travel Group
- Building a rich and immersive itinerary for desktop, mobile web browsers, PDF and plain text.
- Integrating 3rd party services and platforms such as Sabre Travel Network, Australian Government Smart Traveller travel advice, SMS Gateway, Weather forecasts and numerous Google Maps features.
- Native mobile apps for iPhone and Android. Allows business travellers to view their itinerary history offline in one place and keep track of business expenses accordingly.
- Building Duty of Care portal to allow companies to filter and find where their employees are using itinerary data and real time GPS Data. Data visualisation done using Google Maps JavaScript API. Provides a mechanism for sending SMS, Push Notifications and Emails from within the web portal.
- Real-time GPS tracking used by the Australian Olympic Committee during the 2014 Sochi Winter Olympic Games and 2016 RIO Olympic Games.
WebDirector / DataCloud
- Senior developer and technical architect across multiple releases.
- WebDirector is an in house developed content management portal used as foundation for majority of client projects.
- Built with a variety of Open Source and In-house technologies such as Spring Framework and Quartz Scheduler.
- DataCloud is a forked evolution of WebDirector to a SAAS product.
- Re-engineered internal processes for efficient code reuse, simpler deployment of bug fixes across multiple projects in an instant and streamlining process of major WebDirector upgrades.
- Maintenance of production environment including duties such as:
- On-site datacentre maintenance and configuration.
- Building and maintaining internal maintenance and monitoring scripts such as backup scripts.
- General support and maintennance with minimal service interruptions - e.g. Patching Heartbleed security.
- Implemented numerous features and bug fixes including core tabled based data 'bulk editor'.
- Active involvement with major design decisions for product direction and implementation of functionality.
Threat and vulnerability management
- Working with multiple clients to ensure web applications passes penetration testing from 3rd party vendors.
- Performing internal and external security audits on projects and server environments to ensure no security vulnerabilities as per OWASP recommendations.
Online e-commerce
- Building online shopfronts for retailers, recruitment companies and clubs. Prominent clients include Strandbags Australia, Mounties Group and Real Flame Australia/New Zealand.
- Ensuring websites are optimised for and ranked higher within search engines by employing SEO best practices and working with SEO Consultants.
- Responsive web development for developing optimised webpages for multiple screen sizes.
- Working closely with Project Managers, Clients, Testers amd Graphic Designers.
- Two party and Three party payment gateway integration including PayPal, eWay, PayWay (Westpac), Transact (National Australia Bank) and bPoint (Commonwealth Bank).
- Integration with back office system, custom services and SAAS such as bullhorn and broadbean.
- Integration with social networks including Facebook, Twitter and Instagram.
Portfolio
Please visit my online resume to view an interactive portfolio.
February 2011 - November 2012
Software Development Engineer in Test
Microsoft Corporation
SQL Server Data Tools and Entity Designer
- Configuring and maintaining lab automation for setting up and running tests in remote lab environments.
- Working with the wider team in designing API, functional, end-to-end, performance and stress tests utilizing new and existing test frameworks in C#.
- Testing against dynamic parameterized configurations such as language localization and underlying database (e.g. SQL Server/SQLCE).
- Building automation harness for running tests with Application Verifier attached to ensure native process is correctly accessing memory within garbage collected programming language. Redistributed within organisation for reuse on internal tools portal.
XML Tools in Visual Studio 2012
- Working in distributed V-Team on development of XML Editor, XSD Designer and XSLT Debugger for Visual Studio 2012.
- Migrating functional, stress and performance tests from legacy automation framework of VS2010 to new framework in VS2012.
- Product changes kept to minimum due to 'maintenance mode' nature of features.
- Primary test contact for XML Editor and Entity Designer in Visual Studio 2010/2008 in ensuring there aren’t any regressions due to Windows and .Net framework updates.
SQL Mobile Business Intelligence
- Building cross platform mobile application with shared C++ 0x code.
- Developed and architected cross platform build infrastructure utilizing Python.
- Created automatic bug-filing system within builds and test automation to designated test owners.
- Working in fast paced scrum methodology with daily meetings and 1 week sprints.
Other notable contributions
- Occasional contributor to internal garage projects.
- Presented Kinect based screensaver developed in free time to journalists and summer interns.
Portfolio
Please visit my online resume to view an interactive portfolio.
December 2009 – February 2011
Software Developer Intern
RocketBoots
- Desktop and rich Internet application development using Adobe AIR/Flex runtime.
- Product planning from prototyping user interfaces through to implementation.
- Frequently reviewing product status with clients on a regular basis.
- Testing and maintaining on applications developed by 3rd party developers.
- Web development with HTML/CSS.
- Presented ‘need for speed’ at WebDU 2010 with a colleague.
December 2009 – February 2011
Casual Tutor (Teaching Assistant)
University of New South Wales
- Tutoring three Software Engineering subjects for undergraduate students. Duties included marking system specification reports and providing feedback. Guided students on modelling and developing system that deals with processing financial data and online auctions.
- Tutoring undergraduate and postgraduate students in Human Computer Interaction subject on use of User Centred Design (UCD) in a software development lifecycle. Focusing primarily on the designing and planning stage of application development.
Conferences
September 2010
/Dev/World/2010
Connecting Devices with GameKit
Informational on how to integrate Bluetooth voice chat into an iOS application. As part of my presentation I demonstrated how to create a fully functional walkie-talkie application in under 5 minutes that would normally be sold on the Apple iOS App Store.
Session: http://auc.edu.au/dw10/sessions-2010/May 2010
WebDU 2010
Need For Speed
Performance analysis/comparison of web technologies based on Silverlight, Flash, HTML5, Objective-C, Web GL and Open GL. Slides are available on my blog.
Session: http://www.webdu.com.au/session/need-for-speed/Education
2006 - 2010
University of New South Wales
Bachelor of Software Engineering with Honours
Honours thesis on Online Teaching and Learning utilizing Open Source PHP based content management system (Moodle) as a platform. Using user centred design philosophies, we built a highly interactive module/plugin that harnesses modern HTML5 capabilities in web browsers to facilitate interaction between students, and staff.
Presentation: https://vimeo.com/15527748/Personal Projects
CSee Coin / Crypto App
I started building Crypto App to address a personal need. BTC Markets - one of the leading crypto currency exchanges in Australia doesnt have a mobile app. The eventual plan is to expand the functionality of the app to allow for buying and selling of coins.
Try it: https://itunes.apple.com/us/app/crypto-tracker-app/id1327596925?ls=1&mt=8Word Dice
Word Dice was a helper tool for anyone who enjoys playing word games such as scrabble or boggle. Built up using a collection of websites and mobile applications for iOS and Windows Devices, Word Dive allowed for efficient searching and ranking of words and patterns in almost any word game. I also built a custom usage tracker before going live to monitor usage. These are no longer available for download.
Screenshots
Please visit my online resume to view screenshots of Word Dice.
Resume
I have built this online resume in my free time. It utilises many of the commonly forgotten HTML/CSS functionalities. There are various surprises lurking throughout! Here's some ways to see them...
- Try printing it.
- Open it on your PC.
- Open it on your Phone.
Technical Skills
Web Development
Building web applications/websites with server side components. Major technologies used include:
- HTML/CSS
- Bootstrap
- JavaScript
- Angular JS
- React JS
- Bootstrap
- Apache Tomcat
- Version 5-8
- psi-probe
- Spring Framework (MVC, Security, JDBC)
- Apache Server
- XML/JSON
Cloud infrastructure
I have worked with the following Amazon Web Services services:
- Elastic Beanstalk (EBS) Web Application Server and Workers
- EC2 worker instances running Apache Tomcat
- RDS MYSQL
- Dynamo DB
- Simple Storage Service (S3)
- Elastic Filesystem (EFS)
Mobile application development
Building mobile applications with server side components. Platforms include:
- Native iOS development
- Native Android development
- Native Windows Phone Development
- Cross platform mobile applications using Cordova/Phone Gap.
Project Management
- Formal functional and non-functional requirement analysis and elicitation.
- System modelling using formal and informal techniques such as Event B and UML.
- Following user centred design to reiterate based on user feedback.
- Working closely with technical and non-technical users.
Database
Designing and using relational databases. Database types include:
- MySQL
- SQL Server
- PostgreSQL
- SQLite
Testing
Broad experience in manual and automated testing. Declarative and procedural testing frameworks include:
- JUnit
- VSTest
- Selenium
- Creating and using custom testing frameworks
Programming Languages
- Compiled languages:
- Java
- C#
- Objective C
- C++
- C
- Interpreted languages:
- JavaScript
- Shell
- Batch
- Python
- Perl
- PHP