Justin Hawkins - CV

Profile

I am a skilled developer who thrives on challenges. I have a wide-ranging skill-set, encompassing software development, database administration, systems administration and networking. I am able to bring a wide variety of technologies to the table to design and deliver holistic solutions.

Skills Matrix

Skill ProficiencyExperience
Perl Excellent 20 years
Sysadmin/Devops Excellent 20 years
PostgreSQL Excellent 16 years
TCP/IP Networking Excellent 20 years
Javascript Good 10 years
Python Good 10 years
Go Good 5 years

I also have a varying amount of familiarity with many other languages and systems, including C, Objective-C, Swift, PHP, Ruby and Java.

Experience

Software Engineer, Chrysos | Jan 2021 - Current

At Chrysos I am responsible for working on feature requests and bug fixes for the in-house software stack, improving the testing and deployment infrastructure of the geographically-diverse production systems and developing new products for both internal and external users.

Software Development Manager, Redflow | Jan 2018 - Jan 2021

Identifying a problem with lack of process and best practices, I “adopted” the other software team at Redflow and started formally managing and improving their workflow - integrating the two teams for better knowledge sharing and redundancy. As the team was relatively small, I also continued to be an active developer on the projects.

Senior Software Developer, Redflow | Oct 2015 - Jan 2018

Responsible for developing a BMS (Battery Management System) platform to manage one or more Redflow ZBM2 flow batteries. Written from the ground up, with a core perl software platform running on a Raspberry Pi system, the BMS is now deployed in many sites globally, with the rollout steadily increasing.

An additional core product was simultaneously developed - a “cloud” web backend for our BMS platform to allow remote access and data collection from our batteries in the field. This project gave us the ability to remotely access our BMS platform, even when deployed in relatively network-hostile locations - behind corporate firewalls or on marginal-quality network connections. Other developmental outcomes of this project include:

Senior Programmer, iiNet | Sep 2013 - Sep 2015

As a developer within the M&E team my responsibilities ranged from maintenance and enhancement of existing systems, new “green-fields” projects from design to delivery, internal training and mentoring and championing industry best practices within the IS group.

Responsibilities and accomplishments included:

Independent consultant | Jan 2013 - Sep 2013

Worked on several projects for private clients, including a sophisticated web front-end/backend for a solar monitoring product and a large data munging project for an online retailer.

Test Engineer, Quantum | Oct 2008 - Dec 2012

Quantum’s enterprise-grade DXi appliance range use data deduplication technology to make more effective use of storage. In the Adelaide test team I was responsible for maintaining and adding to an extensive test suite designed to ensure the integrity of data handled by the product, as well as designing and improving the test automation infrastructure.

Responsibilities and accomplishments include:

Techniques and skills used in this role:

Advertiser Service Engineer, Yahoo! | March 2007-July 2008

As part of the global DTS team, I was responsible for providing customised solutions for the largest customers of Yahoo Search Marketing. The team also provides internal tools for the Account Managers supporting those customers.

My role in the team was diverse, encompassing a variety of tasks:

Techniques and skills used in this role:

Systems Developer, Internode | 2001-2006

Internode is one of the largest Internet Service Providers in Australia. The software development team was responsible for creating and maintaining a large variety of systems, from internal billing systems, to customer facing web applications.

My role in the team was characterised by my comprehensive experience in a variety of disciplines and the analytical problem solving skills I brought to the group. Major accomplishments in this role include:

Techniques and skills used in this role:

Education

University of South Australia; Adelaide — Associate Diploma in Computer and Information Science, 1996

Skills

Software Development

With many years of development experience behind me, I have not only developed a strong set of skills in several programming languages, but also an instinct for finding pragmatic solutions to problems.

I have championed and integrated many important new techniques into several workplaces, including revision control, production management and automated testing. I have also played an integral mentoring role in several teams, providing guidance on best practices, pointers to relevant technologies and full solutions, as appropriate.

Networking

I have a solid understanding of TCP/IP and the OSI model. While it is generally a “secondary skill” to my software development, having a good understanding of the way the network operates underneath the application layer has proven to be a valuable tool many times over. I consider the ability to debug application problems down to the wire level a crucial ability.

In my home network environment I enjoy dabbling with technologies that I wouldn’t typically get to experiment with professionally, BGP, VLANs, DNS, VPN connections and so on.

SQL

I have several years experience installing and managing and maintaining various open source database systems, primarily PostgreSQL, but also MySQL and SQLite. I have a strong preference for PostgreSQL, and continue to find new features and integrations to add to my toolbox. Transforming data into information using these tools is a recurring focus for me.

Systems Administration

Several years’ experience, both in the workplace and with personal systems have brought me many valuable skills in building and maintaining Unix based platforms. I have practical experience with Solaris, FreeBSD and Linux (Red Hat, Gentoo, Ubuntu and others) systems. I’m proficient with many development tools, SCM (git, svn, cvs), CI tools (Bamboo, Jenkins, buildbot) coverage (gcov, Bullseye) and configuring Unix based services (Apache, nginx, lighttpd, dovecot and postfix, among others).

General

While I have keen practical skills in development, networking and systems administration, I consider my outstanding problem solving skills to be equally important. Being able to think laterally and determine new ways to solve problems has been a recurring theme of my employment career. I also have an excellent internal ‘knowledge base” - when I don’t have information to hand I generally know where to find it.

Coupling this with a solid understanding of industry best practices in the areas of web services, testing, change management and continuous integration allows me to deliver solutions which meet requirements and are both maintainable and future-proof. Coming up with “outside the square” solutions to problems has been a mainstay of all my roles. Finding creative solutions for challenging problems is not just a skill for me, but also a passion.

References

References are available upon request.