GoHenry Flutter Application (iOS & Android)
When I started working at GoHenry, I was one of four developers porting over their existing application to Flutter. During the rewrite, I had implemented some complex areas such as Giftlinks and native functionality for push notifications & integrating the Salesforce SDK (Swift & Kotlin.)
Since successfully completing the rewrite, I became a part of the CoreUX stack where I am responsible for many of the core engagement areas of the application.
Flutter Projects (Codebase8)
Spearheaded the use of Flutter for mobile app development after some personal investigation shortly before its initial release into production in 2018. I went on to successfully Lead development on all Flutter projects at Codebase8 that were all complete well within budget and of high quality.
I have also been a mentor for a few developers on the Flutter projects, of which resulted in invaluable help on the third application we developed.
2 of the 3 apps I worked on required native functionality such as continuous background location polling, and an embedded camera view. I had not used Java or Objective-C prior to developing with Flutter, though my ability to quickly learn new programming languages and SDKs paid off and I was easily able to implement this functionality.
As it stands, I have developed 3 apps:
- 1x Android only (internal app for a client)
- 2x Android & iOS
React Projects (Codebase8)
I proposed the separation of monolithic ASP.NET MVC development into a frontend/API (React/ASP.NET Core API) approach to projects some time ago at Codebase8. This approach has allowed us to produce far more complex applications and has been a welcome change.
From the start, our React projects have always used Typescript. Coming from a C++ background, my typing skills are strong, and I was able to help the team forward with the learning curve this introduced and naturally led development on the React front.
Both web applications are large scale and long term, with the addition of a few companion web apps (also React.)
ALcheck (ALTech UK)
Took charge of the complete development of our Raspberry Pi based checking system, from initial design to end product. The system was programmed in C++ with extensibility, ease of configuration and diagnostics in mind. My modular design reduced projects development time from 3 months to roughly 3 weeks.
ALpad LT (ALTech UK)
This was a spin off product from the ALcheck, as I developed the ALcheck’s backend code to be a shared library, we could re-use it to create the ALpad LT.
The ALpad LT acted as a standalone system where labels could be stored. This could then be used as a printing station where the end user would select what label they would like to print, enter the required information with on screen prompts and run the line.
ALpad LT / ALcheck Manager Tool (ALTech UK)
This was a .NET companion application that ran on Windows. The end user could install it on their machine and connect to their system (ALcheck / ALpad LT) via Ethernet over SSH.
This application allowed the user to upload and manage labels and view user logs (what settings each user had changed, runtime logs of sessions etc.).
Our engineers could also use the app for diagnostics and configuration by entering a locked down feature by entering an ALTech UK employee known password. The engineer could then see real time diagnostics of the system running as well as configure any connected devices / features if needed.
The tool was also used to build the ALpad LT / ALcheck systems code.
ALTech UK Custom CRM (ALTech UK)
Implemented the support ticket area of ALTech UK’s custom-built CRM application. It had to be straight forward for our receptionists to add incoming support issues whilst on the phone with the customer. Each call is then assigned to a team or user and is stored on our local MSSQL database and tracked via emails.
Extended the sales area by adding Google Calendar functionality for scheduling calls and meetings by automatically populating our company wide calendar. Also added support for mapping entire clients addresses using Google Maps API.
LPN Labeller (ALTech UK)
This was a bespoke application developed for Screwfix Direct. I was responsible for designing and implementing the software as well as being point of contact for the customer. The Licence Plate Number (LPN) Labeller is the first step to Screwfix’ massively automated warehouse where a box gets assigned and applied a barcode number which is later used to track the contents of the box.
There was also software (separate project) developed by ALTech UK for Screwfix before I joined which I ended up fixing as I had inherited it in a broken state. It now runs reliably across all four lines at the end of their automated warehouse.
Pooka: Magic & Mischief (iOS & Android) (Oysterworld ltd.)
Took responsibility and developed the game to meet the entry criteria for the then intended Apple TV store. This required me to reduce the packaged product by 200MB to fall below the maximum app size restriction. I achieved this by developing a framework which would download required assets when needed using Asset Packs; A technique I learned whilst at XD Studios.
I also repaired the broken AI I had inherited from a previous developer by implementing a state machine pattern. Given the time, I would have preferred to implement a behaviour tree framework for a cleverer AI.
Maya to Unity Pipeline Tool (Oysterworld ltd.)
Responsible for implementing the pipeline tool to take 3D scenes created in Maya to Unity. Each object was rendered out onto an individual layer in a PSD file which the 2D artists could then paint over in Photoshop.
These layers would then get packed onto a texture sheet which would then be overlaid on the original 3D scene in Unity. This was made to look 2D but benefited from the real-time lighting in a 3D environment in Unity.