Software Projects
This page is a list of a some of my favorite projects that I am currently working on, or have worked on in the past.
Infrastructure Projects
LUHack’s Infrastructure
As a mature ethical hacking society, LUHack has developed a sophisticated and versatile infrastructure to support a wide range of user needs. We deliver sessions on various topics, maintaining retention across years by offering both repeat content and new approaches to keep it interesting for returning participants. Our infrastructure must be scalable, as we may need to support anywhere from 10 to 100 users at a time, which requires constant innovation and adaptability.
We cater to users of varying skill levels; some come fully equipped with tools, while others struggle with basic installations. This variability means we sometimes need to deploy a simple static website, while at other times, we require multiple instances of Windows or Linux virtual machines. Additionally, we maintain persistent infrastructure, including our website, slides site, and worksheet site.
To enhance our operations, I aim to implement key improvements, particularly by automating processes and improving documentation. Security is also a top priority, as our users often explore beyond conventional boundaries, necessitating robust measures to protect our systems. Overall, our commitment to innovation has led to significant successes, alongside the occasional failure, as we strive to meet the diverse needs of our community.
virt-compose
I have recently been working on a cybersecurity project that requires the deployment of multiple virtual machines, virtual networks, and docker containers. This is easy enough to do once, but much harder when you have to do it for each participant/team. It also has to be usable entirely through a web interface, to minimise friction for the users.
To solve this problem, I have been working on a project called virt-compose
. This is a tool that allows you to define
your infrastructure in a simple YAML file, and then deploy instances of it on demand.
It is currently very much a work in progress, but I am excited about the potential of this project.
EMDR App
This is a simple EMDR light-bar app that can be used in a variety of contexts, including in person and via screen-share(which allows it to be used with most video-conferencing apps).
I built it at the beginning of the Covid-19 pandemic to enable clinicians to work online, whilst also providing a high quality experience for patients, and a flexible tool for clinicians. It has been loved by clinicians and used all around the world.
Accessibility technology
I am dyslexic. This has enabled me to solve problems in innovative ways. However, it has also led to me finding reading and writing more challenging than I otherwise would. To solve this problem, I try to use text-to-speech software and speech-to-text software to enable me to use my auditory skills to compensate for this. I therefore have a clear interest in trying to build the best possible accessibility tools for dyslexics. Increasingly, I have started to build a variety of different projects to try to remedy the shortcomings in current product offerings.
Unfortunately, I don’t have the time I would like to dedicate to this area. Some other ideas/things that I have experimented with include:
- Code Dictation
- Text Simplification
- Text Summarization
- Text to Speech
- Speech to Text
- Spelling and Grammar Checking
- Synonym, Homophone and Homograph Checking
Deepkey
This is a very early attempt at producing a system that allows me to another completely open source speech to text solutions.
Deepkey builds on top of Mozilla’s DeepSpeech, which is an open source speech to text engine. It is a neural network based approach. Unfortunately, Mozilla does not provide any practical means to enable its use as an accessibility tool. The project itself only converts speech into plaintext without any sense of grammar or punctuation. This is my first attempt at solving that problem.
pdfParser
Most academic material is distributed in the form of a PDF. However, this is not a format that can be readily used with text-to-speech solutions, which generally require plaintext. This app aims to solve this problem by ingesting any PDF and converting it to clean plaintext without any headers, footers or other unwanted features of the PDF format.