Phillip Voyle - Software Developer

Phillip Voyle

About Me

I am a proficient software developer and systems programmer and have been involved in a variety of domains, including agri-technology, automation, telephony, video games, computer aided design, artificial intelligence, real time media, computer graphics and automotive. I'm most proficient programming in C, C++, and C#

I have a special interest in high reliability software with realtime constraints, and enjoy tracking down problems like data races, memory leaks, crashes, and intermittent faults that reduce system uptime

I currently live in Hamilton, New Zealand with my wife Lynley and my two children, who live with me one week out of every two. I enjoy watching movies, and reading science fiction novels, and for fitness I walk, run, and lift weights. I also enjoy preparing and drinking coffee and own an espresso machine that I use every day. I occasionally surf, and play the guitar and am a life-long non smoker.

Employment History

Hill Laboratories

Hill Laboratories perform analytical tests for a variety of large and small businesses and and consumers and on a variety of substances. Their software suite includes a web portal, and a laboratory inventory and information system. When I started at hill labs there had been a large investment into modernising their legacy software, which had been written in Delphi. The first attempt had been to implement the suite in Java, but the decision had been made to instead try to switch to C# and I was involved in continuing this effort. During this time I was exposed to several technologies, including several in AWS cloud offering, WPF, mariadb, devart and some of the jetbrains suite.

Given this role also has architectural responsibilities, I've spent quite a bit of time authoring designs so that the junior and intermediate developers were able to start developing with a suggested implementation, and been involved in an effort to reduce the amount of boilerplate code required to implement features in the application

UneeQ (www.digitalhumans.com)

UneeQ is a software company specialising in AI powered brand ambassadors built on top of several best-of breed web technologies. My role at uneeq was as a backend developer working on several of the backend technologies associated with the delivery of the avatars. Duing my time here I've had my first real commercial exposure to several technologies, including linux, Unreal Engine 4, webrtc, kubernetes, ansible and jenkins.

I was able to participate in this company's effort to move from an enterprise to enterprise model towards a self service model. This involved progressively removing the workloads away from the slowflake/pet deployment style to a more cattle/stateless model.

The specific components that I had the most involvement with were the text to speech and speech to text systems, and real time video and audio

LIC Automation

LIC Automation is a wholly owned subsidiary of Livestock Improvement Corporation. The parent company's main business is selling genetically selected bull semen for artificial insemination. LIC Automation produces a hardware and software product that is deployed into milking sheds to assist them with operational challenges during milking. Specifically the products are a drafting gate, a mastitis sensor, and a milk sensor, an intelligent camera that identifies whether a cow is wearing an activated heat patch, and cow identification systems for herringbone and rotary layout milking sheds.

In the leadership role I've had between 5 and 7 direct reports over that time and am responsible for the wellbeing, effectiveness and training of those staff members, and administrivia including leave requests, timesheets, regular one on one catchups as well as a catchup for the staff in that competency. I've also continued to contribute to the development effort

In the software developer role I've been exposed to mostly C#/.NET core for the server side implementation, typescript with angular for the front end, and C and C++ for the controller implementations running on Windows CE 7 and 7. I've also had a moderate amount of exposure to Delphi and firebird. The frameworks I've used here are SignalR, Hangfire, Entity Framework Core, MVC Core, MediatR, and Automapper. I've also become very proficient with Splunk for system monitoring dashboards and alerts.

Talkingtech Ltd

Talkingtech contacts customers automatically on behalf of clients using an in house telephony product. Their main customers fall into the categories of debt collection, surveys, and notifications, and libraries.

These roles involved maintenance of windows C++/COM systems, including a telephony and script application platform that was tailored to be used both in a hosted software as a service platform, and on a client hosted install. During this time I was exposed to C++, COM/DCOM, ATL, .Net, C#, Sql Server, VBScript, and mercurial.

Whilst working at talkingtech I was a vocal proponent of the adoption of software development processes that improve quality, including build automation, and black box and unit testing. I assisted integrating french, and spanish into the latest version of their telephony product for libraries, and helped with the installer for this product, producing the first cut installer. I also implemented a monitoring system for the ports, maintained the platform software, and implemented an enterprise cryptography server for securely storing encryption keys.

Sidhe Interactive

I was a game logic developer there. It was a team of about 10 programmers that used the existing in-house engine technology to make game segments. I would interact with the artists to glue the content into the game, and with the designer to get the look and feel of the game right. Often it would be something like can you get this to move a bit faster or slower, or more random, springier - those kinds of requests.

Binary Star Ltd

This was really interesting, this was a team of 3 programmers, growing to 4, we had an existing engine that we were continually evolving, adding new features to. With such a small team you get a chance to touch everything. While I was there I added content into the game segments, wrote a reflection layer for c++, spent a lot of time in lua. State machine based AI, Projected Decals, projectile tracers, a worm style realtime in engine profiler.

Gallagher Group

I was mainly working on their access control system. I was a junior programmer, and so was mostly delegated implementation work and implemented to a design. My responsibilities included tracking down bugs, and implementing designed features.

At that time Gallagher had a very large manual testing team, so almost all of my time was spent working with the testers to track down and eliminate bugs.

A notable project was an integration library which could be used to create applications that listened to events raised by the security application.

While at gallagher I was exposed for the first time to ATL/COM a C++ library for implementing COM servers and DCOM services and windows applications. I also was able to make use of my high school exposure to Visual Basic.

Cybertal Ltd

I took a job at Cybertal while studying for my computer science degree. While at Cybertal I was doing research and development of the software for a prototype multi-layer screen to implement different effects and a demonstration for the product. I also worked on a CAD object file visualiser, and plugin for windows explorer. Most of the time I was writing Windows C++ apps using Microsoft Foundation Classes, OpenGL, and DirectX.

Drivemate Ltd

Drivemate made a vehicle tracking computer which was installed into fleet vehicles to measure the speed of those vehicles, and ensured the drivers were complying with corporate policies. My role was to maintain their application software which was windows app written in a 4GL programming environment and database called Clarion.

I had to learn Clarion on the job but was able to do this quickly and then was able to optimise a very poorly perfoming report which was taking several minutes to run down to less than a second.

Contact

I currently reside in New Zealand, which is in the UTC +13:00 time zone between the last Sunday of September and the first Sunday of April, and UTC +12:00 for the rest of the year. I'm generally contactable between 8:00am and 8:00pm NZ time, Monday to Friday, but will make exceptions for critical emergencies. Outside of these times it's best to contact me by email.

Email: phillipvoyle@hotmail.com
Telephone: NZ +64-27-574-4684