I am a highly experienced engineer with over 20 years of combined-role experience working in the industry, in fast-paced environments and also in more support and research & development roles. I enjoy the challenge of producing something that is usable and maintainable and that adds value to company processes; and that also includes training and and documenting the finished product. I've been interested in computers since I was a teenager, teaching myself a lot of what I know now. I use Docker and Kubernetes in a personal environment, which has enabled me to push the benefits in my professional life. Check out my DockerHub for my 500k pull image
Red Technology is a Microsoft Gold partner which provides online e-commerce solution websites with features such as customisation, PCI security, multiple payment gateways, DDOS, and more for a number of big brands. In the Technical team, my main role is maintaining the hosting, certificates, domains, DNS, routing & failover, and more for customers, as well as ensuring monitoring and internal services are functioning. General desktop support to internal users is secondary. Having Docker and Kubernetes knowledge, I started the move of internal services (DNS, portals, proxies, relays, monitoring) from a monolithic Windows environment to Lunix-based Docker images. This allowed the company to properly start moving these images to Kubernetes, with a view to porting customer hosting in the future. Other projects include introducing Gitlab source control and CI/CD pipelines for the inhouse projects, implementing NetBox for hardware and networking diagnosis, and some small scripts with a view to automating certificate and domain renewal.
D2IQ provides an independant kubernetes platform service, with options of using various providers (such as AWS, GCP, Azure, EKS, AKS, and on prem). In my support role, I kept customers HA deployments running smoothly by solving issues (including OOM crashes, cluster certificate issues, DNS problems, deployment & pod breakdowns) and researching KB articles to assist future out-of-band questions. I assisted in internal verification of issues and enhancements, such as coding, alternate operating systems and inserting new components into the core stack. I utilised my technical writing experience to contribute to user facing documentation, as well as internal technical instructions and processes. With D2IQ, I obtained my CKA qualification, and I am slowly working towards my CKS.
Openda is a small company that develops and supports their own in-house CRM/ERP business software solution, entirely written in Progress Openedge.
Openda markets their user-focused QX software system to SMEs with the slogan "Simplicity, Clarity, Speed", alongside providing knowledgable IT Support where needed for networking, servers and desktops, Office365, phone systems, backups and more.
With Openda, I have been involved in projects as diverse as API integration, end-customer documentation, bug-fixing and testing, database optimisation, virtualisation, server and server-room setup, customer site-wide backup strategies, mobile app development and much more.
Specialising in barcode and handheld solutions, they provided solutions to many ferry services and water taxis
Whilst there, I developed many small inventory solutions for lot-tracable companies with low-volume products, as well as supporting existing mobile units, contacting repair centres and flashing custom-developed firmware.
Data Structures and Algorithms, from the HND Computing course.
Modules included Software Engineering, Mathematical Statistics, Algorithm Theory, Computer Architecture and History, Computer Networks, and group projects.
Completed subjects in Computing, Maths and Physics
Obtained qualifications in Computing, English (Literature and Language), Maths, Science (Single and Double), Geography, Electronics, Design and Communication and French.
Upon joining RED Technology, I took the lead on configuring a test cluster as POC, and developed a process for converting internal custom-built projects into container images, which allowed the company to move and manage infrastructure on a HA Kubernetes cluster.
This was a precursor to moving customer hosting from monolithic Windows environments, to a more flexible, dynamic, hardware-agnostic HA environment.
- CKA, Kubernetes, Docker, source control,
When I purhcased by previous car, I wanted to listen to my podcasts on long journeys and commutes, so that need took me down a rabbit hole that ended up with my installing a Raspberry Pi into my car complete with touchscreen to run Android Auto.
You can see my writeup here.
- Electrics, imaging, Github
As part of my alarm clock project, I managed to decode the NPL's MSF atomic clock signals to get accurate date and time. I disassembled a working digital clock to extract the receiver antenna, and used general GPIO on a Raspberry Pi to extrapolate the MSF signals.
- Python, StackExchange, Wikipedia
Whilst it has been possible to use threads in Pyhton for some time, there is no method described for launching a custom thread after execution has started.
I spent a lot of time researching the treading architechture of python and produced code for my alarm clock project that defines dynamic threads, checking if a thread is running, and launches new threads when one is missing.
- Python, Python manual, Stackexchange
As part of development for Openda's QX business system, I managed to work around Magento's very poor API to export products, attributes, prices, and stock quantities, and import orders, payments and carrier tracking information.
There were numerous issues to overcome during development, including bugs in the Magento core code (which were reported to the Magento team), mismatched APIs, and very little documentation.
Openedge, PHP, Postman, curl, json
A customer required a private cloud-like environment for live production websites and bespoke backend processing, as well as the associated development environments. This involved the setup of three large servers, installing and configuring VMWare VSAN, load- and failure-testing the setup, before migrating the existing systems from the old hardware.
Part of the process was researching datacentres to host the platform, employing monitoring tools, configuring redundant network feeds, analysing data throughput and altering DNS records.
VMWare ESX, VMWare VSAN, scripting, 10Gbit SFP cabling, switch stacking, VLAN, DNS, linux
Although I don't have a TV licence, I actively maintain an auto-updating Docker image that has over 100k pulls which helps make the use of get_iplayer much easier and with almost zero configuration needed.
Bash script, dockerfile, linux, API