Nick Cullen

Nick Cullen

Software Developer

View Blog

About

Nick Cullen is a software developer based in South Wales, UK who is currently working at Codebase8 ltd. He has developed strong programming skills and a vast knowledge in a multitude of programming languages through industry experience and during his BSc Computer Games Development degree (of which he attained first class honours).

Main area of expertise is Mobile app development with Flutter (commercial experience since initial v1 release in Dec. 2018) and full stack web development using React (Typescript) and ASP.NET Core API (C#.)

Other commercial experience includes C++ development using Raspberry Pi technology.


Journey into Software Development

After leaving behind the complex maths and algorithms used in the games industry, Nick ventured into software development. Shortly after joining ALTech UK, he pioneered development of a brand-new checking system using a Raspberry Pi and C++ which opened a lot of new sales opportunities for the company.

Since joining Codebase8, Nick has developed several mobile applications with Flutter, and large-scale web applications using React Typescript. Whilst naturally fitting into the role of Senior Software Developer at Codebase8, Nick has demonstrated his ability to not only provide strong guidance and help to his colleagues, but to also lead development in these areas.

Projects

project name

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.

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


project name

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.)



project name

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.

Find out more



project name

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.

Find out more



project name

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.

Find out more



project name

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.



project name

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.



project name

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.

Find out more



project name

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.

Find out more