Thomas Cook Blog
o7 and welcome to my blog. I’ve organised the contents into seperate areas of interest of mine, please use the list below to navigate to sub listings you are interested in:
Email:
Github(s)
Thomas Cook Develop Info
Thomas Cook Android
Technical Skills
- Kotlin/Java
- Coroutines/Flows
- Concurrency and distributed systems
- Databases (SQl, NOSQL, Realm, Room, etc)
- Serialization (Moshi, GSON, Kotlinx etc)
- Patterns (MVI, MVVM, MVP)
- I.e. organising code in a structured and easy to reason about way
- SOLID principles
- API consumption and design
- REST or GQL
- Unit testing
- Git
- C#/Javascript/Typescript/Haskell/Python/C/CPP
- Basic shader knowledge (shader pipeline) OpenGL ES 2.0
General Skills
- Requirements gathering and project specification
- Ticket creation, refinement and triage
- Ability to quickly adapt to new domains and codebases
- Mentoring juniors
- Working across departments to meet the demands of complicated multi disciplinary projects
- Understandind the “why” of projects and proposing and implementing solutions which can save money or avoid complexity
- Various algorithms and techniques related to AI, image processing, game optimisation and animation
- Contributions to open source projects
- DIY/House renovations
- Being a dad
Employment History
Lush Digital Ltd
Location: Remote
Role: Senior Android Engineer
Period: Jul 2021 - Present
At Lush I have been responsible for most of the Android R&D work for the last 5 years. This has included the development and handover of several major projects; Bathbot (a waterproof digital floating speaker with Bluetooth functionality for audio and lighting playback), Bathe (a standalone app integrating Google Fit and an in house API, tracking the effects of various meditation activities on a users wellbeing), Bubble Navigation (an implementation of Metaballs using Android’s RenderNode system), as well as several PoC’s including BLE beacon triangulation and NFC scanning.
A year ago I asked to be transitioned to a role within the commerce arm of the business as I saw areas in the Android Commerce app that I believed I could help improve, driving the main commerce app to further successes. During this time I have been responsible for requirements gathering, ticket creation, API designs and have been deeply involved in large chunks of major restructuring of the codebase alongside colleagues. I have been the sole contributor on several headline projects too including Lens (an AI product recognition system where users can take pictures of a product in hand and be deep linked to the associated content, using Vertex back end), rewards (think Club card) and navigation features.
Palringo Ltd (Rebranded to Worlds Online Festival)
Location: Cramlington & Remote
Role: Mid Level Android Engineer
Period: Aug 2019 - Jul 2021
I joined Palringo (now known as WOLF) at the start of a rebranding effort. I re-wrote large parts of the legacy application from Java to Kotlin, implementing MVP pattern throughout, including introducing a suite of tests which was missing in the previous implementation.
I was also solely responsible for several headline projects including a re-write of the main discovery screen, an overhaul of the sign in flows to implement SSO, an achievements system and I was heavily involved in the UI side of a project known as “audio stages” (think Twitter spaces) which involved live 2 way audio streaming to hundreds of connected clients.
Condeco Ltd (Rebranded to Eptura Engage)
Location: Newcastle
Role: Junior - Mid Level Android Engineer
Period: Aug 2017 - Aug 2019
I helped create Android applications using RXJava and MVP pattern to help our global customers better utilise their real estate. Our custtomers included the likes of Barclays bank and other big high street names. The apps were B2B apps, mostly relating to manging of desk and meeting room resources; relating to hot desking and similar ideas.
The most challenging thing I worked on there was an Android app which was deployed on a custom peice of of small hardware, about the size of a wireless charging disk, with a small screen. It had NFC capabilities, and the app I wrote needed to read NFC cards in order to check users in at the desk via a REST API using the NFC card to authenticate the request. I also had to write several custom views that could render a clock and calendar on the tiny screen with the limited resources available on the device.
C&C Group Ltd
Location: Newcastle
Role: Junior Full Stack Web Engineer
Period: Aug 2016 - Aug 2017
I was involved in the design and development of web systems which served the UK utility sector. This included gathering requirements, mocking up front end using Balsamiq, designing and implementing SQL databases and threading them to the front end application through an ORM inside a .NET/ASP C# project to generate Razer views, as well as writing CSS (LESS) and Javascript/Typescript JQuery on the front end. Also had to consume several old APIs using WSDL. It was a very challenging first job after graduating university.
PBH Rail
Location: Remote
Role: Contractor/Consultant
Period: Jan 2016 - Apr 2017
During this period, I was finishing my final year of university. I got a contracting role producing a CAD automatin tool for a rail company in york. The tool was written using VBA and allowed users to specify Overhead Line railway structures in a spreadsheet, and then press a button to render out batches of CAD cross sections based upon the specifications, effectively saving vast amounts of CAD draughtsman time.
Tata Steel Projects (Formerly Corus Rail Ltd)
Location: York
Role: Apprentice Electrification Engineer
Period: Sep 2008 - Sep 2013
Electrification design, CAD, report creation, risk assessment, site surveys, meeting with clients and mentoring juniors
Formal Higher Education
- BSc Computer Games and Production, Northumbria Uni (1st Class Hons)
- Access to Creative Art and Design (Distinction, Distinction, Distinction)
- BTEC Manufacturing Engineering (Pass, Pass, Merit)
- GCSEs Science (AAA), History (A), Maths (B), English Lit (A), English Lang (A), Geography (B), IT (A)
Reference are available on request