Portfolio projects

Screenshot of the Forever Diary website homepage

Forever Diary

Forever Diary is an online journaling platform allowing users to store unlimited entries for any date in the past. It includes features such as labels, to group entries together, favourites to highlight special memories and daily email reminders to never miss a day.

The website is built using Ruby on Rails, Turbo, Stimulus, JavaScript, Sass and uses RSpec and Capybara for unit and functional tests.

I was responsible for building the application from scratch, including designing the database architecture, to coding all the functionality and producing the initial designs of the website.

Currently, I am responsible for building new features, maintaining existing functionality, fixing bugs and upgrading dependencies to keep the web application up-to-date.

Ruby on RailsRubySassTurboStimulusJavaScriptGit
Screenshot of the Mintec website homepage

Mintec Website

Mintec is the world's leading independent provider of global commodity price data, price forecasts & market intelligence for the food, CPG and capital goods supply chains.

The website is hosted within Hubspot and uses HTML with HubL, CSS and JavaScript/jQuery

Initially I was tasked with improving the performance of the home page with a side focus on the other main website pages due to poor Core Web Vitals and the resulting poor performance on Google and other search engines.

I was able to improve the loading speed of the home page from around 10 seconds to just over 1 second, as well as reducing the Largest Contentful Paint from 40 seconds to 9 seconds and improving the Page Speed Insights Performance Score from a low of 38 to a high of 68 on desktop.

Latterly, I've created 3 new landing page templates with reusable modules which are being used for paid and organic marketing campaigns.

HTMLCSSJavaScriptjQueryHubspot
Screenshot of the Book A Street Artist web application home page

Book A Street Artist Web Application

Book A Street Artist allows users to search and book the services of street artists, musicians, decorators, designers, performance artists and other types of artists for all sorts of events or occassions.

The Book A Street Artist application is built with Ruby on Rails and React.js using the `react-rails` library to include React components into a full-stack Rails application.

Initially I was tasked with an infrastructure (Heroku) upgrade and later extended to bug fixes, general maintenance tasks and new feature development.

I work closely with the founders and provide a technical perspective to new feature suggestions and ideation.

RubyRuby on RailsRuby ERBPostgreSQLReactRSpecCapybaraHerokuGit
Screenshot of the holoride web application overview screen

Holoride Web Application

Holoride provides VR entertainment to passengers in the cars by incorporating the movement and acceleration of the car for a fully immersive mobile gaming experience.

I was part of a small team building the core platform where users could manage their accounts, subscriptions and family invitations.

Initially I was tasked with creating a user service using AWS services Lambda, DynamoDB and API Gateway to interface with the authentication provider, Auth0, to create, read, update and delete user accounts for the frontend to consume. For this I developed the services locally with Ruby, tested them with RSpec and deployed them to AWS Lambda.

Later in the project, I contributed to the invitations, family and subscriptions services which were Elixir/Phoenix microservices.

Throughout the project, I developed portions of the frontend application with React, TypeScript and Next.

One key functionality I created was storing cookies from the initial Select Region screen that persisted across to the Auth0 login/registration screen and determined which Auth0 tenant the user was signed into, and then back into the React application to determine which language was shown to the user.

Note: viewing the web application requires registration.

RubyRSpecAWS LambdaAWS DynamoDBAWS API GatewayTypeScriptReactNextJestReact Testing LibraryGit

Unread Web Application

Unread finds the best promo codes, sales and events in your inbox. It's an advanced email web application built using JavaScript, React and Redux

When I started on the project, the application was around 80% completed. My role was to make the app production-ready, provide final details and resolve some tricky bugs that had so far eluded the developer on the project.

Note: the web application is no longer publicly accessible, therefore no link is available.

JavaScriptReactReact HooksReduxRedux ThunkGit
Screenshot of the Ride Capital web application login screen

RIDE Capital Web Application

The RIDE Capital web application is accessible only to its clients and provides them with a dashboard to view their live and archived purchases. It is built using Typescript with React on the front end and Express.js on the back end. It also uses a GraphQL API with Prisma, Nexus, and Apollo.

I played a key role in the team, architecting and implementing advanced application features for the admin panel, including a multi-faceted search and filtering dashboard and visual components for the client-facing view.

Note: viewing the web application requires registration.

NodeTypeScriptReactExpressPrismaNexusApolloGraphQLStorybookJestChaiMochaGitAWS
Screenshot of the Joinative web application login screen

Joinative Web Application

An application that enables its users to connect third-party advertising APIs to collate reporting data in one unified tool and download aggregated reports. This allowed users to analyze and act on their data much more quickly without wasting time modifying and manipulating it.

I architected, built, and deployed the application single-handedly. The application was built with Ruby on Rails and uses Sidekiq and Redis for processing background jobs on top of a PostgreSQL database hosted on Heroku. The application is also integrated with the Google Drive API and major marketing platforms.

Note: the web application is no longer publicly available, therefore no link is available.

RubyRuby on RailsRuby ERBSidekiqRedisHerokuPostgreSQLMinitestCapybaraGit
Screenshot of the Savedo web app login screen

Savedo Web Application

A React application that allowed clients to view their financial service products, marketing the latest products.

I played a fundamental role in developing the application as part of the core team that architected the project from its foundations, deciding the project structure, workflow, technologies, and high-level system design.

One key feature that I implemented was a 'previously used email addresses' feature on the login screen that automatically stored and showed the 3 previously used email addresses used to log in to the application, which allowed users to quickly sign back in. I created an abstract wrapper around the browser's Local Storage API that serialised a list of email addresses and stored them for future usage.

Throughout the project, I mentored junior colleagues to better understand the technologies including React and Redux; and implemented core functionality myself.

Note: the web application is no longer publicly available following the acquisition of the company, therefore no link is available.

ReactReduxRedux ThunkReact HooksTypeScriptStyled ComponentsStorybookJestGit
Screenshot of the Ride Capital website homepage

RIDE Capital Marketing Website

The marketing website of RIDE Capital is meant to advertise its products and highlight its unique selling propositions.

I was part of a two-people team that built the website modules in Hubspot using HTML, Sass, and JavaScript.

HTMLJavaScriptSassHubspotGit
Screenshot of the Joinative website homepage

Joinative Native Advertising Consultancy Website

A Jekyll-based website that includes a blog and product pages that the site owners can easily manage.

The website uses Liquid templating, as well as Sass and JavaScript for functionality. The site is also optimized for SEO and draws in thousands of users per month, primarily via the blog.

I created every page on the site, including many reusable and flexible partials that can be easily extended and customised.

JekyllHTMLSassLiquidJavaScriptGit