Welcome to my portfolio, showcasing a selection of side projects I've worked on.
This script is designed to automate the process of backing up various databases to AWS S3. It supports PostgreSQL, MySQL, and MongoDB.
When initialized, the script reads database connection URIs from environment variables.
Scheduled through a cron job, it dumps the databases, compresses the data, and transfers the files to a predetermined AWS S3 bucket.
My portfolio website, the site you are looking at right now!
Built with the Astro framework, this website is optimized for speed and search engines, designed with recruiters and tech enthusiasts in mind to efficiently access information about my skills, experience, and projects.
The project emphasizes simplicity, utilizing reusable components and minimal third-party libraries to streamline development and reduce maintenance.
Embracing transparency and collaboration, the website's codebase is fully open-source, allowing others to review my code and draw inspiration. The growing number of forks and stars on GitHub highlights the project's adaptability and the value it brings to the developer community.
Website for a theatrical society. Powered by Directus CMS for content management.
Built using Node.js, Express, and EJS. The content comes from the Directus API and pages are rendered server-side with dynamic content using EJS as the templating language and TailwindCSS on the client side.
The website is optimised for speed and for search engines. Content editors can easily manage current, upcoming and past shows, blog posts and more on the website.
Command-line trading bot using Node.js that connects to the Binance exchange and automatically executes trades via their API.
After being frustrated with the lack of tools to automate trades on the Binance platform, I developed this bot. It's open-source on GitHub with over 150 stars and includes a Docker image for easy deployment.
The bot can be configured to trade specific currency pairs and includes options for external services such as email notifications through SendGrid and data storage using MongoDB as a storage adaptor.
WillenHouse Student Housing
Full-stack application that streamlines the process of booking housing for students.
The project included creating a bespoke CMS to manage payments, room details and more. The application is hosted on AWS cloud infrastructure and integrated with a secure payment gateway.
The backend API, built using Node.js and Express, efficiently handles data while the frontend, created with React.js, presents it in an intuitive and user-friendly manner. The application simplifies the process for students to find and book available rooms, and for administrators to efficiently manage and update room information.
Next.js webapp with an intuitive UI that provides users with useful cryptocurrency pricing and information.
The frontend is built using React.js and it utilises the Next.js framework to fetch cryptocurrency information server-side through various API's. The webapp also includes API's to pull in crypto news and a SanityCMS setup to create in-house news posts.
The webapp is designed to be easy to use and it provides accurate information in real-time, making it a valuable tool for anyone interested in the cryptocurrency market.
Childrens Book Author
Website for a children's book author, powered by WordPress for content management.
Built using WordPress and PHP, the website showcases all of the author's books and allows for easy management and uploading of new book content.
The website features a custom theme, designed to showcase the books in an attractive and engaging way, with a focus on clean and modern design.
It is fully responsive, ensuring that the content is easily accessible on any device. The static site is optimised for speed and search engines, providing a seamless user experience and improving visibility for potential patients.
The website includes detailed information about the surgeons' qualifications, services offered, and contact information. The site is easy to navigate, making it easy for patients to find the information they need quickly and efficiently.