My profile picture

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

Steve Wainwright
Ben Wilson

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.

Related projects

LazysodiumRecordo

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

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

Gori Yahaya
Becky Boyd
Becky Matheson-Bruce

Google

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

Holly Stephens
Noelle Ghanem

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

Edward Bellamy
Jonathan Fennell
Andrew Plummer

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

Pubudu Dasanayaka

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

Steve Webber

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

Sam Saidi

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

Marvel

Related projects

L4D Door Lock

Projects.

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.

ViewVideo

FUPP

2018

I developed a front-end for a recruitment company that had an interesting take on recruitment. Designed by an external designer.

Video

Lazysodium

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 Store

Recordo

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.

ViewGitHub

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

Video

Google 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 report

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

View

Show Me The Weather (iOS)

2015

This is the iOS version of the Show Me The Weather app. Part of another university project.

View

Show Me The Weather (Android)

2014

An app I created for a University project. It shows the weather. Created for Android apps.

ViewDownload

M&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.

View

Mathematrics

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.

View

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

View

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

Download

My 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

Email

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.

@

Email

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 Key