
I'm a software engineer, creator and design enthusiast.
I make beautiful things.
About me.
I grew up with technology. From gaming to scripter to engineer, I've delved into a huge amount of fields related to technology.
I was raised in a small town called Harehills in Leeds, UK 🇬🇧. My first foray into technology was the task of setting up the Internet. My parents, both immigrants, had no money to spare for an engineer to come and set it up for us. Words like "Subnet mask" and "DHCP" simultaneously baffled and intrigued me. I started learning and learning. 3 weeks later, I got it to work.
My thirst for knowledge was only amplified once I got on the Internet. I wanted to know how the Internet worked, I wanted to read the whole of Wikipedia, I wanted to know how to build a computer. Even seemingly benign topics like "who controls the Internet?" drew me into a world of bits and bytes. A world which I haven't still gotten out of.
Being a heavily addicted gamer back then, I joined an online gaming community, self-taught myself how to code, excelled in IT classes and gained a lot of experience in various jobs. After graduating from the University of Leeds, I thought back to my life growing up and wanted to find ways of helping the types of people who were in my position when I was younger. So I setup Terl, a business aimed at providing relief through technology.
Right now, I'm working on a couple of major things. Read on below.
My experience.
This is my online CV/resume. The following jobs are all full-time permanent positions unless otherwise stated.

FreeAgent
Staff Software Engineer - Jan 2022 to Present
Working 100% remotely as part of a high-performance mobile team to deliver the FreeAgent app that is backed by NatWest, is delivered to over 100,000 customers and is currently rated 4.5â‘! The app uses the latest and greatest such as MVVM, Kotlin + Coroutines, Viewbinding, Jetpack Navigation and its own caching layer. As a staff software engineer on the mobile team I am responsible for:
- Resolving customer-facing issues, e.g. any breaking changes that affect the customer. Through Firebase Crashlytics we can see daily reports of any crashes that we may not have seen during the development and testing phase.
- Delivering the app end-to-end including uploading to the Play Store, e.g. I contribute to any releases we have.
- Making key high-level decisions including any architectural changes e.g. I was responsible for moving the app from an MVP architecture to an MVVM architecture. I was a key player in making sure our test suite was running and reporting accurate coverage, reducing tech debt by half in the first 3 months of joining.
- Bringing awareness to other teams issues that may impact the mobile team, e.g. the API team may make some change that will break the Android and iOS apps.
- Working in tandem with the iOS and others teams to ensure the app is kept in-sync with them all, e.g. for any new features, I must work with our product owners and the communications team to bring a new feature to market.
- Helping new developers with any problems they have with the app, e.g any new developer thats onboarded, I support them. I have wrote our own documentation pages to help learning about the codebase easier.
- Helped in interviewing candidates.

HSBC
Mobile Developer - April 2019 to December 2021
As a Mobile Developer at HSBC, I am in charge of all 26+ apps built by HSBC and its group members (which includes HSBC UK, HSBC UAE, First Direct and M&S Bank and loads of other apps).
- Within a year I quickly rose up the ranks and became code maintainer of all of the apps and several very critical internal libraries.
- Refactored all of the copy inside one module. Became the defacto go-to developer for internationalisation and Gradle module topics.
- Created documentation that improved productivity for the consumption of HSBC's global developer community.
- Recognised by management for outstanding contributions helping the whole of the global HSBC developer community.
- Led the charge against the most difficult problem in Android - we hit the 64K strings limit.

Snapsales
Android Lead - September 2018 to April 2019
At Snapsales I built an app called Dscvr, which is a hyper-local real-time discounts app, freshly released to the app store. I was in charge of building the whole native Android app from scratch to bring it into feature parity with the iOS app. I had to wear many hats but primarily operated on the front end Android app. 3 months in, I advocated the use of Flutter. This allowed Snapsales to progress faster as Flutter works on both iOS and Android so there was less development time needed.
- Worked closely with Android technologies.
- More practice being part of a small but growing team.
- Advocated the use of various technologies so that we can get to market fast.
- Worked to business requirements.
- Worked with bluetooth technologies.
- Launched the app on the Play Store.
People


Related projects
Dscvr
Terl
Founder and Director - May 2016 to Present
Founded a company specialising in solving social issues such as mental health and wellbeing. Terl stands for tech relief. The main developing Recordo, a mental health app.
Investing time into Recordo helped me understand that what users really wanted wasn't necessarily what I thought they wanted. For example, offline-sync is something I worked on for 6 months. But it was an added benefit that no one really cared about! Amongst things like technical architecting, schemas, devops, databases and user testing I learnt loads of new tech that made me a better generalist.
- Lazysodium, the cryptography library that powers Recordo, grew to be very popular with Blockchain projects and security based projects.

Gurpreet.co
Freelancer - Jan 2011-ish to Present
I've been doing some contract work on various projects. Sometimes advising charities on their digital strategy.
- Consulting and meeting clients on a one-to-one basis.
- Assisting and helping charities and small businesses decipher complex development contracts.
- Using remote tools like Slack and Google Meet to work.
- Creating high quality software.
- Giving up-to-date advice on modern tools to use.
- Refactoring and language advice.

Google Technician - March 2015 to October 2015
Google were in Leeds to help SMEs with their digital presence. I was part of the first ever team of Garagers. A whole range of topics were discussed in each consultation session that lasted approximately 60 minutes. Everything from Google Analytics, Google Adwords, Google My Business and Social Media. Business owners would ask strategy and heavily contextual questions based on what their situation was.
- Representing Google being a public face for the global company.
- Dealing with the press and local news outlets.
- Talking to business owners at a high level.
- Tailored advice for each business on their website and social media.
- Resolving technical problems with Google products such as Analytics and AdWords.
- Mentoring people on Google My Business.
- In-depth understanding of Google PageRank.
People




Google on Tour Technician - March 2015 to October 2015
I led the first ever Digital Garage on Tour. It was much like the above role but rather than businesses coming to the garage, we would meet businesses where they were situated.
- Representing Google professionally on-foot.
- Helping to organise, plan and stress-test the first ever On Tour programme.
- Led a team of 2 talking to small to medium businesses.
- Friendly and affable attitude was required.
- Positive and fast-thinking was required to talk to business owners who were often very busy.
- Gave critical feedback to Google who would use the data to feed into the next DGoT programme.
People



PinBellCom
Jr Software Developer - July 2014 to March 2015
Worked as a part of a team that developed several mobile apps for the NHS (specifically GP surgeries) and Marks and Spencer. I was quickly given ownership of the two projects which were developed within 2 months altogether. The apps were deployed on the iOS App Store and the Google Play Store.
The M&S app called "Incidents" is still, to my knowledge, being used nationwide. The NHS app called "Intradoc 24/7" is now formalised as part of the Intradoc 24/7 suite of software. Although my contract officially ended in March 2015, I worked for PinBellCom during my university summer holidays and then was put on a zero hour contract in the hope that I would return to employment with PinBellCom. However, I did not return as university kept me busy.
- Developed and worked on several APIs which allowed communication between the AJAX apps and SQL servers.
- PHP, HTML and CSS were used for the backend and Ionic with AngularJS was used for the frontend.
- Learnt and used HTTP GET, POST and auth tokens.
- Undertook demos and presentations to M&S.
People




Allerton High School
ICT Technician - July 2013 to Oct 2013
Mounted new desktop computers and removed old computers manually. Created images of Windows 7 Professional. The Windows 7 images had to be compatible with desktop and laptop machines. Then they were installed onto hundreds of computers manually. Fixed a range of computers around the school as some of them were in disrepair.
- Working as part of a team to un-mount and mount hundreds of computers from their bases several times over.
- Created a base image that was to be installed everywhere.
- Helped do all the manual work of carrying trolley loads of laptops and making sure they all worked.
- Massive patience was involved in testing every laptop and computer.
- Listened to direct manager and worked to maintain a good IT presence for teachers and admin staff.
People


Allerton High School
Reprographics Technician - July 2013 to Oct 2013
Did this alongside the above job. Organised and printed the school's work for teachers and administrators. Maintained and checked printers using networking software. Helped resolve common printing issues around the school. Did a lot of booklet, binding, laminating and holepunching work.
- Copied and printed the whole school's documents.
- Use of organisational skills to coordinate this undertaking.
- Timing was essential.
- Communicating as to how long a print would take was crucial.
- A good attitude to the job was required because of the large amount of teachers and students that were being served.

Westcom Networks
IT Engineer - June 2012 to July 2012
A hands on job role in which I travelled to and worked in many places such as London and York. This role required me to:
- Build servers from scratch; this included the physical building of the servers.
- It was expected that I had reasonable knowledge of the workings of computers.
- Install VMWare onto the servers.
- Check the integrity of wireless networks around schools using a diagnostic app.
People


Boots Pharmacy
Assistant Chemist - Oct 2011 to Oct 2011
As part of my high school work experience, I went to work in a chemist near my home town.
- Stocked shelves and monitored stock inside the chemist.
- Helped pharmacists with small tasks.
- Managed the till from time-to-time.
- Used the POS.
People


Marvelous Gaming
Head Administrator - January 2010 to April 2013
I am ashamed to admit I was a heavy gamer throughout high school. I did not fit in at school and so online gaming was my only mental break. Because I was playing so much and so often, I was given the prestigious opportunity to become a Trial Administrator in an online community called Marvelous Gaming. I then became a Moderator, which then turned into Head Administrator. Head Administrator meant that I had full control over the game servers, the systems, the forums and everything else.
With great power comes great responsibility. And boy was there responsibility. There were more than a thousand monthly players playing L4D2 on MG's servers which I had to monitor and manage - most of them older than me. I was to be level headed when handing out bans for griefing and racism. I was to be good at the game. I was to communicate effectively remotely with other admins. I also learnt how to code scripting plugins for the game. My parents had no hope for me in future as a result of my gaming. But it wasn't a negative for me, it was a positive. I learnt:
- People skills.
- How to communicate effectively remotely.
- Being mature.
- First steps in coding and scripting.
- Managing vBulletin and forum software.
- Installing SourceMod on servers.
- Creating server instances.
- Using SSH and linux commands.
People

Related projects
L4D Door LockProjects.
Browse a list of my projects.
Dscvr
2018
Dscvr is a discount app that allows shops to selectively get customers in at certain times. It is a brilliant take on discounts that no one has had the gumption to fully do.
ViewVideoFUPP
2018
I developed a front-end for a recruitment company that had an interesting take on recruitment. Designed by an external designer.
VideoLazysodium
2018
Lazysodium is a Libsodium Android / Java binding, which makes it effortless to add great cryptography to your applications. Built primarily for Recordo. This library is used in many projects. I'm proud to say this library is used by millions worldwide via Threema and a bunch of other notable projects.
ViewPlay StoreRecordo
2017
Recordo is a cryptographically secure, open-source diary / journal app built on pure Android. It's a project from my company, Terl. I have a waiting list of around 60 users.
ViewGitHubSystra Survey App
2016
I developed and designed a native Android survey app which was released around the country to many train stations and handed to hundreds of people tofill in live. This was a complicated project that required SQLite and proper schema planning.
VideoGoogle Glass For Training and Education
2016
My final year project. I got this to a reasonable state. I coded a live streaming Glass App which live streamed a video feed to a server and back again. I used rawthreads but the limitations of Glass proved to be too much to handle.
Download reportCrime Eye
2015
This ambitious iOS app was coded within 3 weeks by me and two other team members. The end result? An app that shows you exactly where crimes have happened on a map given a postcode you supply.
ViewShow Me The Weather (iOS)
2015
This is the iOS version of the Show Me The Weather app. Part of another university project.
ViewShow Me The Weather (Android)
2014
An app I created for a University project. It shows the weather. Created for Android apps.
ViewDownloadM&S Incidents
2014
After my previous success with Ionic I was brought in to do it again but this time for M&S. I designed and completed an incidents app for M&S which they were very impressed with.
Intradoc 24/7 Checklists
2014
I developed this as a hybrid app using Ionic. I had an immense amount of fun learning Ionic which later led me to doing the M&S app.
Prince Tutankhamen
2013
This was my first game and first ever dual team university project. There was a game on Sky Games called Prince Tutti. You got chased by several mummies in mazes. You collected keys to progress to the next level. It was fun. So I decided to remake it. I did it in PyGame.
ViewMathematrics
2013
Mathematrics is one of my first ever websites. It was quite badly designed but worked. It's aim was to teach people tricks in Maths. I used Dreamweaver for bits of this and the rest I hand coded.
ViewRaptshia Games
2012
As part of a project for high school, a fictional company wanted a database. I did some programming in VBA to achieve this goal.
ViewL4D Door Lock
2010
As a young teenager, throughout high school, I coded some plugins for the Marvelous Gaming community and for L4D2. All done in SourcePawn.
DownloadMy education.
Where I've studied.
University of Leeds
Graduated with a First in Computer Science (BSc).
Was a Course Representative.
Allerton High School
A-Level grades were AABD in ICT, Maths, Chemistry and Biology respectively.
The Grammar School At Leeds
A few As and A*s, the majority Bs.
My skills.
A section devoted to the skills, tools and technologies I know.
Languages
Java 8+
Kotlin
Android
Python
JavaScript
Dart
Swift
VBA
HTML
SCSS
Languages II
Ruby
C++
C#
Haskell
PHP
SourcePawn
C
SQL
Languages III
English
Punjabi
Hindi
German
Methodologies
Scrum
XP
Agile
Pair programming
Kanban
Test driven development
Feature driven development
Frameworks
VueJS
Vert.x
Play Framework
Ionic
Flutter
React / React Native
Django
Meteor
Angular 1
Ruby on Rails
Mobile related
Deployment to app stores
Gradle
Pods
Wire-framing
Android + iOS testing
Mobile databases
Networking
Retrofit
RxJava
Security
Databases
Postgres
MySQL
ArangoDB
Redis
MongoDB
SQLite
CockroachDB
Database related
SymmetricDS
Postgres logical replication
Liquibase migration tool
SQL Scripts
Restore / Backups
Web related
NodeJS
Bower
NPM
jQuery
WordPress
Nginx
REST
Web related II
SOAP
Reverse proxies
LetsEncrypt
cPanel
WebSockets
Adobe Dreamweaver
DevOps
Ubuntu Server
Docker
Terraform
DC/OS
Kubernetes
Vagrant
SaltStack
Habitat.sh
Microservices
SemaphoreCI
GitLabCI
DevOps II
Bash
Deployments
Server setup
CDNs
DigitalOcean
Netlify
Vultr
Domains
Firewalls
Dovecot
Postmark
IT
On-site support
Domain changes
Image building
Reprographics
Wireless networks
Server building
LAN / WAN setup
Switches, routers
TeamViewer
Security
GPG
YubiKey
VPNs
SSL
SSH
Firewalls
CSP - Content Security Policy
Security II
XSS - Cross Site Scripting
HSTS - Strict Transport Security
HKPK
RSA
AES
Signing
Code hygiene
DRY
KISS
Indents
Clear, concise nomenclature
Abstractions
Higher level code
Composite-oriented programming
Streams
Distributed MPI
Parallelism
Threads
Reactive + Async programming
Functional programming
Communications
Slack
Gitter
Teamwork.com
Wiki
Digital
SEO
Google Analytics
Google Tag Manager
Google Webmaster
Social media
Operating systems
MacOS
iOS
Android
Windows
Linux
Virtualisation (VirtualBox)
Design / Photo / Video
Affinity Photo
GIMP
Adobe Photoshop
Moqups
User scenarios
Sony Vegas
Source Film Maker
Gaming related
PyGame
CryEngine
PSP Modding
SourceServer
Source scripting
Formats
JSON
XML
CSV
YAML
CONF
VCS
GitHub
GitLab
BitBucket
Text Editors
Vim
Sublime Text
Notepad++
IDEs
JetBrains Suite
Eclipse
XCode
Mail server
Dovecot
SMTP
POP3
IMAP
Enterprise
JIRA
Confluence
GitHub Enterprise
Jenkins
SonarQube
Contact.
Learn the best way to get in touch with me.
@
thecerrg@thecerrg.pb
Please don't send any email to the above address. It's an ROT13 encoded string to prevent a crawlers and spammers getting a hold of it. Please decode the above using a free ROT13 decoder online.
GPG
To confidentially send me a message, please use the following GPG keys. If it's a personal matter, please use my Personal GPG key. If it's a work-related matter, please use my Work GPG key.
Personal Public KeyWork Public KeySocial

Steve Wainwright
About
Steve seems to know everyone. He is an overall brilliant person to talk to about anything as he is knowledgeable and world-wise.
You can tell Steve has a wealth of management expertise. In the short time I've worked with Steve, I've noticed he listens to everyone. He involves everyone in meetings and he makes sure people's voices are heard. Being a true team player he wants as much input as possible to get the best outcome possible. He gives talented people the space and room to do their best.
Steve actually brought me on board when I was at my lowest point mentally. His easy going nature allowed me to be both open and honest with him, which is a rare feat for me to do especially with someone of his caliber. I am in no doubt indebted to Steve for his help and advice.
Steve has a easy going nature and wherever he goes he makes an impression. A true role model and undoubtedly one of the greats.
Lessons learnt
- Give talented people the room to do their best work.
- You become positive if you think positive.
- Give everyone a chance to speak and their thoughts heard.
- Listen to everyone.
Met
Snapsales
Thoughts
GenuineHappyHelpfulAlways positivePoliteSuper coolHumble100% experienced100% boss200% amazing