GithubHelp home page GithubHelp logo

resume's Introduction

Alex Hutton

Mobile: 0433 504 537

Email: [email protected]

Address: 298 Sunshine Avenue Keilor Downs, VIC, 3038

Summary

With more than 10 years experience in software development, I have a deep understanding of the needs of technical teams both technologically and organisationally. My greatest strength is my ability to grow the capacity of the people I work with to deliver value to the organisation.

Key Skills

AJAX, APIs, Agile, Automation, Azure, AWS, AWS Lambda, Behaviour-Driven Development, Business Analysis, CDK, CSS3, Continuous Integration, DevOps, Django, Django-Rest-Framework, Domain-Driven Architecture, Docker, ES6, Git, Gitlab, GraphQL, HTML5, Integration, JavaScript, Jenkins Jira, Kubernetes, Leadership, Linux, Mentoring, Microservice architecture, MySQL Nginx, React, REST, Scrum Master, Svelte, System design, Team building, Test-Driven Development,

Employment

September 2021 - Ongoing: Senior Python Engineer, Playtime Solutions (assigned to IDP Australia Pty. Ltd.)

Role overview: Senior design and implementation role on redevelopment of legacy monolith into modern, Domain-Driven microservice architecture for global corporation, making full use of AWS cloud services.

Points of interest:

  • Solutioning of AWS cloud based microservice application, using Lambdas (Python) to handle HTTP requests and SQS/SNS message ingestion.
  • Implementing infrastructure as code using AWS CDK and Terraform.
  • Mentoring and supporting onshore and offshore staff, including peer reviews, breaking down tasks, allocating work to suit skillsets, managing effective team utilisation.
  • Establishing and improving internal toolchains and libraries to support ongoing organisational initiatives.

July 2019 - September 2021: Team Lead, Elenium Automation Pty. Ltd.

Role overview: Led delivery of new automation product as part of multi-million dollar digital transformation project for major airline. Originally hired as a Senior Developer, was made Team Lead early on due to positive feedback from the client. Took on full scope of responsibilities to ensure the success of the project. Oversaw the following components of the application: a JavaScript UI application, a mobile payment portal, a GraphQL API gateway integrating with the client's backend, an automated reporting system delivering key usage metrics to the client and a Java applet providing CORBA bindings to an industry specified hardware abstraction layer.

Points of interest:

  • Architected the solution, creating a simplified design that promoted ease of maintenance and expansion with new features.
  • Supported professional development of colleagues, through crafting work to suit their skills, training, code reviews, pair programming, automated code linters, etc.
  • Reviewed code and changes to the application with close attention to detail to ensure customer received product they wanted, while also promoting upskilling and protecting against future rework.
  • Managed four direct reports, plus tester, graphic designer and floating development reasources.
  • Coordinated all resources on the project to maximise delivery to the client, eg. coordinated frontend and backend efforts to ensure they fit together to provide the required feature.
  • Debugged complex issues as they arose, with consistent ability to resolve them.
  • Worked with client to analyse requirements, negotiating scope changes to deliver the maximum amount of value with the most efficient use of effort an minimised complexity.
  • Took over role of DevOps engineer after previous resource left. Learned Azure, Kubernetes and how to resolve issues quickly.
  • Wrote and managed CI/CD pipelines, including Dockerfiles. _ Implemented release management through git tagging.
  • Ran Scrum ceremonies, fostering team cohesian and capturing feedback for continual improvement of processes.
  • Created various tools to support development and testing, such as a debug toolbar embedded within the application for injection of test data.
  • Managed Jira, (eg. workflows, boards, filters, dashboards). Educated the client and team on how to best use Jira to break down features into Epics, Stories and Sub-Tasks.
  • Provided out of hours technical support to on-site resources.
  • Continued to write code, to deliver complex features to the client.

January 2017 - June 2019: Technical Lead - Senior Software Engineer, Telstra

Role overview: I led the redevelopment of the RFNSA website, a high volume public website that is vital in supporting the mobile communications industry in satisfying its regulatory requirements for mobile network deployment. As well as providing community consultation functions, such as informing the public of the Electromagnetic Emission (EME) levels, the website also supports a wide variety of regulatory and administrative processes carried out behind the scenes by mobile carriers. My role was to provide technical leadership and mentorship to the development team in adopting best practice Agile and software development methodologies, as well as to be responsible for the design of the technical solution itself.

Points of interest: Introduced the team to, and trained them in, Agile methodologies, including:

  • Agile style daily stand-ups, ie. Scrum. (To be completed in under 2 minutes).
  • How to write user stories, including breaking tasks into smaller stories, estimation of story points and organising them within epics
  • Analysed user requirements and provided the complete documentation and creation of user stories for various subsystems, which were delivered successfully, without the need for rework
  • Developing team understanding of Agile velocity and how this can inform improvements in efficiency and team cadence
  • Organised, ran and documented Agile ceremonies such as end of sprint retrospectives and showcases
  • Mentored members outside the immediate team in contributing as Product Owners or by facilitating user feedback
  • Use of online ticketing systems (including Jira) to support Agile processes, such as Kanban

Introduced Continuous Deployment / Continuous Integration (CI/CD) to the team, including:

  • Installed, configured and maintained a Jenkins instance
  • Designed and created Jenkins jobs for providing automated testing, automated deployment and one-click deployment to production. These functions significantly reduced deployment time and reduced code defects.
  • Trained the team in how to use Jenkins and how to write automated tests.

Introduced Peer Reviews to the team, including:

  • Training the team in the Peer Review process and providing extensive ongoing guidance into the process. This was a key means of training developers in technologies that were new to the team, such as Python/Django.
  • Setting up of the git repositories
  • Guiding migration of existing CVS, SVN and TFS repositories into git.
  • Teaching the team members how to use git, both within the CLI, within PyCharm and within other frontends
  • Use of git tagging to track versions

Responsible in architecting solutions to the entirety of the project scope, including:

  • Devising an architecture that would allow the rewritten Python/Django application to be deployed as a hybrid system with the legacy Perl application, necessary to allow the team to deploy new functionality in an incremental and Agile manner
  • Full environmental configuration for the application, including Linux, nginx, MySQL, uwsgi, perl, memcached, MySQL
  • Extending Django's ORM to provide a modular approach to supporting the extensive legacy data schemas
  • Set up the development environments in Windows and Linux and trained the team
  • Set up automated code quality tools and automated testing, including BDD in-browser testing
  • Constantly pushing and facilitating the team to refine the codebase, leading the team towards a clear and robust design and implementation that supports ease of incremental development and maintenance
  • Developed performance tests and optimised the environmental configuration, application logic and database queries to facilitate performance under high volume load
  • Created an application documentation system which generates automatically from code

In this role I have demonstrated that with my extensive understanding software development, I can build and support team capacity to deliver on complex technical challenges using the latest software development processes and technologies.

April 2016 - October 2016: Developer, The Optical Superstore

Primary Skills used: Python, Flask, SQLAlchemy, React, Electron

Role overview: Responsible for designing and building a custom CRM / communications platform for a national retail chain. System comprised of SMS gateway integration and reporting system (built on Django), a Flask/Potion based REST API located in each store which integrated with a legacy Database via SQLAlchemy, and thirdly, a frontend application written using React and deployed as a standalone application using Electron, to run on multiple systems within each store.

Interesting challenges

  • The legacy database was originally created for Microsoft Access and extensively utilised composite keys. The database had been migrated to Postgres and support for the composite keys was obtained by using Flask with SQLAlchemy. The Flask Potion REST Framework was extended to support the composite keys.
  • Developed a Windows installer to install and provide updates to the in-store computer front-end.
  • Each of the three codebases were extensively linted, tested and documented.

April 2015 - April 2016: Senior Developer, QuantumIT (assigned to Telstra -- Cloud Engineering)

Primary Skills used: Python, Django, Django Rest Framework, Celery

Role overview: As senior developer in a team ranging up to ten developers, I provided significant technical leadership in maintaining and extending a cloud automation platform for Telstra. The platform acted as an API gateway, exposing a REST interface to Telstra's internal and external users and integrating downstream with various Telstra and 3rd party APIs. We worked with various teams across Telstra to bring multiple new products through from discovery, design, development, deployment and maintenance.

Interesting challenges:

  • Quickly developed a strong understanding of network layer 2 and 3 design concepts as the developer responsible for the network provisioning sub-system (Anuta).
  • Became an expert in Django Rest Framework, implementing extensive serialisation and custom endpoints (ViewSets) to facilitate complex JSON payloads, asynchronous design patterns, and extensible coding.
  • I was responsible for formulating the team's git workflow including writing deploy scripts, githooks and Gitlab and Jenkins integration.
  • Supported deployment to Openshift as a cloud platform by resolving various environmental issues such as resolving log rotation issues, database vacuuming, process keepalives
  • Converted design documents into user stories, allowing the team to rationalise user requirements, keep requirement conversations on track and effectively plan delivery within allowed timeframes.
  • Platforms (APIs) we integrated with included AWS, IBM SoftLayer, VMware Vcloud Air and Microsoft Azure.

February 2013 - April 2015: Developer, Infoxchange Australia

Primary Skills used: Python, Django, JavaScript, Backbone.js, Perl

Role overview: Full stack developer, designing, architecting and building various features and solutions, as well as maintaining existing solutions. BDD & TDD principles were followed, with all features having browser tests and unit tests prior to merging. Size of development team ranged from 4 to 7 developers. Agile methodologies were followed, with sprints, scrums (daily stand-up) and a kanban board. Continuous Integration and Continuous Deployment (including automation of builds and deployment) were practiced.

Interesting challenges:

  • A large project, encompassing multiple components (deployed as microservices) required a user management application to allow admin users to manage user settings that resided across the various microservices (including the single sign-on application, which was a legacy, multi-tenanted application). I made a significant contribution to the user management application, building RESTful integration endpoints (using Tastypie) within the integrated applications, and the user-interface in the admin application, which itself was a Django application.
  • One component of the project was a Service Directory of community health services. Its backend was implemented using Elasticsearch with a Django-Tastypie REST interface. I was the lead developer for the frontend, which was built using Backbone.js and Leaflet for mapping integration. I coordinated two remote working developers, completing the project within a tight timeframe. The frontend application that I developed was later successfully ported into two separate repackaged applications that were sold to other clients.
  • Due to restrictions around personal health data, we were required to host our applications in house, within geographic Australia. We became early adopters of the Docker framework. This allowed for deterministic builds that could seamlessly transfer from one environment to the next. I established the Docker build process for the forum/groups component which was built using Drupal.
  • A legacy application created over ten years ago and written in Perl constituted a significant amount of technical debt for the organisation. I made a significant contribution to paying down this technical debt in porting the application to the newer Mojolicious framework, Docker, fixing various bugs and adding new features that prolonged the marketability of the product.
  • I performed Business Analysis, writing user stories for a community project based on which provided self-education material for individuals wishing to develop proficiency with various consumer technologies.

June 2012 - 2013 Lead Developer, Koodoz Design

Primary Skills used: PHP, Yii, CakePHP, OpenCart, Wordpress Python, Django, jQuery

Role overview: Sole developer at an established digital agency. Maintained numerous, primarily PHP, websites that had been built by the previous developer. Mentored the designer in taking on more complex JavaScript development. Built new websites in a high pressure digital agency scenario.

Interesting challenges:

  • Built a CMS using the Yii framework, which integrated with a customer's product database using an endpoint that I developed and deployed into the customer's environment.
  • Integrated an existing ecommerce site built with CakePHP with a customer's SAP system for product fulfillment.
  • Implemented NAB Transact on an existing site, providing a credit card payment facility,
  • Integrated a WordPress site with a customer's Django application, allowing for seamless customer registration.
  • Since I was the primary technical person on staff, I performed all the server management, including setting up a new development environment for the other staff.
  • Provided maintenance, such as adding new features, to numerous legacy client

2011 - 2012 Mobile Developer, Agility Interactive

Primary Skills used: PHP, Doctrine, Smarty, jQuery, jQueryMobile

Role overview: This was a small organisation (essentially a startup) that had created a new community-based betting website called Favourite.com. Prior to launch, I was hired to port the existing web application into a mobile format, using jQueryMobile. This primarily involved writing new Views, Controllers and Templates to support the mobile application. TDD practices were followed and all features had an integration test prior to merging. Continuous Integration (build automation) was practiced.

Interesting challenges:

  • PHP bindings with Selenium were primitive at this time. When I added capabilities to the Selenium library, I would upstream them on github.
  • I was responsible for becoming the expert in jQueryMobile and devising how jQueryMobile would be used vis-a-vis the existing application.

resume's People

Contributors

alex-hutton avatar

Stargazers

Nathan Yang avatar

Watchers

 avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.