I have strong experience in systems architecture, particularly in designing and implementing scalable, efficient backend solutions. My experience includes:
This experience has equipped me with the skills to design robust and scalable systems that evolve with needs of the business and its technical requirements.
I have managed teams for multiple software projects where I gained experience in:
Working in a multidisciplinary team to deliver robust and well-rounded features to the consumer app
Highlights:
Leading the design and architecture of a comprehensive software product, managing a team of 6 engineers, actively contributing to code development, and liaising with stakeholders. This role involves overseeing both backend and multiple frontend developments, ensuring high-quality standards and efficient project progression.
Working in a mobile team both as an Android engineer and a quality engineer to produce high-quality, user-centric mobile applications.
Highlights:
Development and deployment of B2B applications designed for improving business efficiencies and automating workflows
Writing the installation and modification scripts for the company's packet monitoring software used in the financial sector
Bachelor's degree in Computer Science
3 A*s in Maths, Further Maths and Physics
10 GCSEs
"I worked with Theo when he did a work placement at our software company and had the opportunity to collaborate with him on a number of projects. I felt that Theo's most notable assets were his enthusiasm and commitment to high standards. Ensuring the software was developed in such a way as to provide a high quality user experience is of paramount importance for us, and this is something that Theo drove with skill and dilligence. He had a great attitude and put in great effort into his work."
"Theo played a key role in the development and deployment of a Diocese-wide application, that enabled
our 7 parishes to organise and hold communal services throughout and following the first national lockdown
and throughout the COVID-19 pandemic. His co-operative style and demeanour were qualities that shone
throughout his involvement in the project and manifested in him taking on a leadership role within the team.
He was trusted and respected by all those involved in the project, all due to the way he carried himself
with integrity and professionalism in every step."
"From now on, Kenouz will play a central role in our administration as it pulls together several threads
together, very efficiently under one umbrella.
You have most kindly sacrificed your time and so graciously gave your efforts for which I and all my
fellow trustees are eternally so grateful. We truly appreciate your wonderful work and very grateful for
your production of a most useful tool."
"Theo has been an excellent asset to the Warwick Big Band. He promptly answered all questions we had involving the logistics of the band and worked well with other members to improve the efficiency of gigs, communication and working relationships. He has consistently operated in a professional manner and is paramount to the success and continuation of this society."
The original MyChurch system was built to meet the unexpected needs of the church during the COVID-19 pandemic.
We had to release quickly and with a single purpose - to allow churches in the diocese to resume
services with limited capacity.
As the pandemic came to an end, there was a desire to expand the system to be used as a more general purpose
church management system.
Some initial features were added, but it was clear that the system needed to be rebuilt from the ground up
with modern technologies to handle the ever expanding feature set and increasing load on the system.
The legacy system currently has over 8000 active users and there are plans to introduce this to more congregations.
My role in this project has been multi-faceted:
Achieving all of the above has removed many roadblocks, with the intention of helping other engineers ramp-up quickly and focus on the features they are working on.
Technologies used:
Back-end
Front-end
Other
My 3rd Year Dissertation project was to create a distributed platform to facilitate the training of Deep
Reinforcement Learning agents to race in the Assetto Corsa racing simulator. Potential applications of this
work include optimising a racing car's setup or finding the ideal racing line for a given car and track combination.
This was a challenging project which required me to overcome various roadblocks along the way. You can find the
full dissertation below.
Technologies used:
Clipboard is a PWA that allows organisations to create and manage surveys across multiple sites. Surveys are completely user customisable to suit the needs of the organisation. It is installable as an app on all devices with a compatible browser or can be used as a website.
I have taken ownership of this project from start to finish including talking with the client to agree on an initial scope, designing the database, creating the front end and back end, and deploying to production. It is still in active development alongside my studies.
Features include:
Technologies used:
Kenouz is a PWA that was developed for a charity in Egypt which provides financial support to students in poverty. It allows the charity to manage the students they support and the payments they make to them as well as log any pastoral care / support they provide. It is installable as an app on all devices with a compatible browser or can be used as a website.
Features include:
Technologies used:
As the Music Director of the Big Band at my university, I was trying to find a way to motivate the band
members to practice more. After speaking to a few of them, I found that the main hurdle was that it was
a bit of a hassle to get the music for the songs we were playing. I decided to create a web portal to make
this process easier.
The portal is a PWA that is installable or usable through a brower that allows the band to view music for their
parts in all songs in upcoming rehearsals and gigs.
They can also access links to Spotify, Apple Music and YouTube for the songs. If they want to practice a song
that we will not be playing in the near future, they can request it and gain access to it on a person by
person basis. We have also moved our gig sign up process to the portal, which has made it much easier to sign
up for gigs as once you are logged in, it is only a button to sign up instead of filling out a form every time.
Features include:
Members:
Admins:
Technologies used:
When lockdown hit in 2020 there was a lot of uncertainty around what would happen within our churches and how
people would be allowed to attend liturgies. We needed a way to limit the number of people attending a liturgy
while still giving everyone a fair change to attend and worship. This need resulted in me leading the
development team for MyChurch.
MyChurch is a church management system being used across the Coptic Orthodox Diocese of London that allows
churches to manage and monitor attendance to liturgies and other services such as Sunday School and conferences.
Churches can control eligibility rules for attending liturgies such as restricting age (for elderly-only
liturgies) or restricting attendance frequency to give everyone the chance to attend while liturgies have a
maximum capacity. To further comply with COVID-19 restrictions, MyChurch allows churches to share resources
such as liturgy books to reduce the need for physical copies.
Since then, it has evolved to incorporate more church services such as creating groups where members can access
resources, sign up to group events and track attendance.
Features include:
Congregation:
Servants:
Priests:
Technologies used:
Mento is a web application that was developed as a group project for a module in my second year of university
that was run in collaboration with Deutsche Bank. The brief was to develop a solution that facilitates the
employee mentoring program. I was elected as the project manager and was responsible for managing the team,
delegating work, managing talks with the client and ensuring project deliverables were submitted on time as
well as taking part in the project development.
We were given a specification of the minimum requirements for the application and were given the freedom to
develop the application in any way we saw fit as long as it met the requirements and the client was happy with
all proposed additions. We decided to develop the solution as a web application as it would allow for easy
access from anywhere.
Managing this team of 7 was an interesting experience as there was a range of experience levels and enthusiasm
towards the project which would introduce added difficulties. Taking this into account, our development
methodology was a blend of Plan-Driven and Agile development. We were required to submit a Requirements
Analysis document before starting development, so I took this opportunity to plan aspects of the project such
as the technologies we would use, the database schema and the user interface design. Agile concepts were also
adopted during development such as stand-ups twice a week to discuss progress and rearrange tasks as needed to
prioritise the most important features for the client.
Furthermore, I took on a teaching role to help team members with less (or no) experience to get up to speed
with the technologies used. I set aside 6 hours a week, where I would be working in a public workspace so that
other team members could come to me with issues they've been having. I also created a section in our group's
Discord server where I published:
Features include:
Mentee:
Mentor:
Admin:
Technologies used:
This project was assigned as coursework for my Introduction to Aritificial Intelligence module in my second
year. The brief was to develop a schedule for comedy shows by different comedians and to match the shows to
target demographics. The schedule had to be developed in a way that every demographic had a certain number of
shows targeted to them and to minimise the cost of shows based on pricing rules and other constraints.
Show constraints
This is a classic example of a constraint satisfaction problem (CSP). I broke it down into two parts:
Matching the shows to the demographics was done using a backtracking algorithm. The backtracking was optimised
using the Minimum Remaining Values (MRV) heuristic and the Least Constraining Value (LCV) heuristic. The order
for shows was determined by the number of comedians that fit the constraints for a show and are available. The
order of comedians was determined by the number of hours left they had (smallest first) to minimise the cost
of the shows.
Scheduling the shows was done using Stochastic Local Search (SLS). The heuristic was calculated from the total
cost of the schedule and each constraint that was broken added £20 000 to the cost (greater than the maximum
possible cost of the schedule). This was done to ensure that removing a constraint violation would always be
prioritised. The algorithm would run until two valid schedules were found and the one with the lowest cost
would be returned. 2 valid schedules was chosen via trial and error as the average cost wouldn't change much
after this point but the runtime would increase linearly so this was a good trade-off for the marking criteria.
Technologies used:
This project was assigned as coursework for my Operating Systems & Computer Networks module in my second year. The brief was to develop a multithreaded intrusion detection system that would monitor network traffic and detect malicious activity. The system would be able to detect the following attacks:
The system was implemented using a thread-pool model for multithreading. I decided to use this model as network traffic could be heavy so creating a new thread for each packet would result in a huge amount of overhead in creating and destroying threads. The thread-pool model allows for a fixed number of threads to be created and reused for each packet. The number of threads in the pool was proportional to the number of CPU cores on the machine.
Technologies used: