About me.

Hello 👋. I'm Heath (codename: beefone).

I am a computer science enthusiast, avid gardener, wannabe farmer, DIY destroyer and electronics amateur. I currently live in rural New Zealand nice and quiet and I absolutely love it!

This website is really an outlet for me to post about life and the various experiences therein. I try to avoid social media where possible but you can contact me via email if you want to have a chat...

heath@beefone.dev

I've tried to keep this website simple, nothing too fancy. More importantly RETRO!

// curriculum vitae

Profile

I am a Senior Software Developer, Team Lead and Architect with 14+ years experience combined in software development and architecture who always wants to learn new technologies, patterns and architectures to further expand my current knowledge. I'm knowledgeable in design patterns, the microsoft stack, the MEAN stack, microservices, integration and working in a dynamic team environment.

Education

Bachelors of Computer and Information Sciences — major in Computer Science

Technical Summary

Skill Experience
C#7+ years
NodeJS6+ years
MongoDB6+ years
Elasticsearch6+ years
Javascript6+ years
Angular 2+6+ years
Docker6+ years
MS SQL6+ years
HTML / CSS10+ years
RabbitMQ6+ years
TypeScript4+ years
Dotnet Core1+ years
Salesforce1+ years
Redis1+ years
Python1+ years
Xamarin2 years
xunit / nunit6+ years
Biztalk Server1 year

Career History

The Network for Learning (N4L) Jun 2022 – Present

N4L provides managed network services to 95% of schools in Aotearoa, along with services to the Ministry of Education.

Senior Software Architect

Role Purpose

Responsible for solutioning, prototyping and in some cases building software application solutions and services at N4L. Working closely with delivery squads, solution architects, key stakeholders and the engineering team to ensure delivery of software solutions.

Responsibilities

Designing and developing software solutions and services, supporting engineering teams, identifying areas for improvement, overseeing scaling and availability of the N4L platform and producing architecture artefacts including high and low-level design documents, architecture design patterns, facilitating workshops and defining architecture principles.

Achievements

  • Designed and built an integration service and API for integrating with threat intel feeds as part of a cyber security service. This service enabled 2500+ firewalls to fetch dynamic threat feeds and apply filtering rules across the network.
  • Designed and implemented a custom network monitoring solution to scale beyond 60,000 devices, determining uptime and collecting SNMP data from switches, access points and firewalls. Key integration into Salesforce and Grafana with significant cost saving on potential commercial licenses.
  • Designed a caching solution for the self service portal using Redis and an ETL pattern with session workers for just-in-time caching, improving data retrieval performance from the data lake.
  • Designed and built a proof of concept for an assessment platform integrating with SharePoint, Salesforce, Qlik and PowerBI.
Toolsets NodeJS, Elasticsearch, Angular 14+, MongoDB, TypeScript, Javascript, Docker (Swarm), RabbitMQ, CircleCI, GitHub, Salesforce, Redis, Qlik
The Network for Learning (N4L) Apr 2019 – Jun 2022

N4L provides managed network services to 95% of schools in Aotearoa, along with services to the Ministry of Education.

Software Architect and Development Team Lead

Role Purpose

Responsible for solutioning, developing and managing software applications and services at N4L alongside implementing CI/CD processes and software development procedures.

Responsibilities

Designing and developing software solutions and services, line management of the development team, mentoring of junior and intermediate developers, identifying areas for improvement in the development process, and impacting business outcomes through effective organisation and execution of key projects.

Achievements

  • Architected and built a self service portal and platform API using the MEAN stack and Elasticsearch, enabling managed network users to gain insights through data analysis and manage their network settings.
  • Designed and built an integration service and API for IOT devices that capture readings and manage deployments into schools as part of a Ministry of Education program.
  • Designed and built an event management system for proactive monitoring of internal school environments with alerting, analysis and simple learning capabilities.
  • Designed and built a full CI/CD pipeline along with a production Docker Swarm environment, including deployment and management of MongoDB, RabbitMQ and Elasticsearch clusters.
  • Designed and implemented a microservice environment using REST and RabbitMQ.
Toolsets NodeJS, Elasticsearch, Angular 12+, MongoDB, TypeScript, Javascript, Docker (Swarm), RabbitMQ, CircleCI, GitHub, Salesforce
ICM Asia Pacific / C3 Post Trade Sep 2018 – Dec 2018

C3 Post Trade is focused on trade confirmations and position reconciliations, serving a predominantly overseas client base including hedge funds and investment banks such as HSBC.

Development Manager

Role Purpose

Responsible for managing the development team and working closely with Architecture to ensure best practices are followed with a continuous improvement mindset.

Responsibilities

Line management of the development team, mentoring junior and intermediate developers, identifying areas for improvement in the development process and providing or implementing solutions.

Achievements

  • Implemented a Code Quality strategy leveraging SonarQube for code analysis, including code coverage, an initial rule set, a rollout plan and a new branching strategy to better leverage code reviews.
  • Integrated Code Quality tools into the Continuous Integration pipeline.
Toolsets C#.NET, SQL Server 2008r2, SQL Server 2016, Dotnet Core, Biztalk Server, Javascript, MongoDB, Docker, RabbitMQ, TeamCity, Git, SonarQube
ICM Asia Pacific / C3 Post Trade Feb 2016 – Sep 2018

C3 Post Trade is focused on trade confirmations and position reconciliations, serving a predominantly overseas client base including hedge funds and investment banks such as HSBC.

Developer / Senior Developer

Role Purpose

Implement new functionality in the existing SaaS platform and provide technical specifications and designs for junior and intermediate developers.

Responsibilities

Technical lead and oversight on client-specific projects by liaising with BA and Architecture teams. Mentoring junior and intermediate developers and providing technical guidance as required.

Achievements

  • Designed and implemented a new reporting framework for Net Asset Value reports as a new platform service.
  • Designed and implemented a new data export framework to publish confirmations to external systems via standard transport protocols such as FTP(s).
Toolsets C#.NET, SQL Server 2008r2, SQL Server 2016, Dotnet Core, Biztalk Server, Javascript, MongoDB, Docker, RabbitMQ, TeamCity, Git
ICM Asia Pacific / Hydrogen Apps / EROAD Jan 2015 – Feb 2016

Hydrogen Apps is a startup focused on mobile application development using Xamarin and contracting developers to external parties. A key client was EROAD, who provides services to transport companies.

Senior Mobile Developer

Role Purpose

Implement, design and enhance mobile applications for clients as a contractor and consultant.

Responsibilities

Mobile development and leading an agile team on contract to EROAD to build and maintain a new driver logbook for the US market, including providing technical design and implementation of the US app.

Achievements

  • Delivered the US app to the App Store.
  • Implemented a rules engine for the Driver app allowing dynamic rule sets to be loaded across different US states.
  • Implemented MVVM in the US app in preparation for a port to iOS.
Toolsets C#.NET, Xamarin, MVVM, Jenkins, Cucumber, Gherkin, Specflow, Git
ICM Asia Pacific / C3 Post Trade Feb 2012 – Jan 2015

C3 Post Trade is focused on trade confirmations and position reconciliations, serving hedge funds and investment banks such as HSBC. Client services were an important part of the services provided.

Technical Support / Junior Developer

Role Purpose

Provide technical support to overseas clients including level 1, 2 and 3 support across the C3 system.

Responsibilities

Technical support, onboarding of new clients, building support tools, database administration, debugging, defining support processes and improvements as support team lead. Also responsible for supporting clients and business analysts in the UK.

Achievements

  • Enhanced support tools to allow manual loading of reports directly into the system, improving response time.
  • Implemented an integration test component that allowed support to add integration tests when onboarding new clients with minimal setup required.
Toolsets C#.NET, SQL Server 2008r2, Biztalk Server, TeamCity, Git

Personal Projects

Learning Management System — Upptak Jul 2018 – Current

In 2018 I made the decision to build my own learning management system with the goal of making the product commercially viable or eventually open sourcing the project. This grew out of the Video Sharing Platform project, with new challenges including scheduling and generating learning paths for learners. I use my side projects as a test bed for new patterns and service architectures.

Toolsets MongoDB, CircleCI, NodeJS, Angular 7, TypeScript, RabbitMQ, ExpressJS, SonarQube, Docker
Video Sharing Platform Jan 2017 – Dec 2017

Built to learn new technologies, developed using NodeJS, MongoDB, Neo4J, RabbitMQ, Angular and Electron inside a microservice architecture powered by Docker and Ubuntu. Emphasis was placed on documenting findings and automation. The project uses a Confluence wiki and is managed using JIRA, leveraging CI/CD workflows throughout.

Toolsets MongoDB, CircleCI, NodeJS, Angular, TypeScript, RabbitMQ, ExpressJS

Other Qualifications / Training

MCSD — Microsoft Certified Solutions Developer