Skip to main content

2026 PORTFOLIO

PROJECT

Oak Software

PROJECT OVERVIEW

While working at Oak Software I worked on both eCommerce shops and a modern SaaS platform.

 

When I started at Oak, the software was Windows based, but there had been plans to rebuild it from the ground up as a cloud software. Within a few months of starting I was introduced to a very basic version of this cloud software, and with my knowledge of the front end, I was tasked with ensuring that forms were modern and useable. After I had demonstrated my skills in redesigning forms, I was able to start building forms myself.

 

Alongside the software, Oak also hosted eCommerce shops for their clients. These shops were bespoke and tied in directly with the software. In the beginning I was given small visual bugs to fix, and as I progressed I was given the opportunity to create new features. The further I got into this role the more responsibilities, and I reached a point where I was left to my own devices to build eCommerce shops from scratch.

 

I came up with a lot of ideas to improve existing features, and also came up with new features. I spent a lot of time going back and making old JavaScript more efficient, and wrote documentation to aid people with setting my new features up.

 

Throughout my time at Oak, I gained experience working both individually, and as part of a wider team.

PROJECT DETAILS

[ ROLE ]

Designer & Developer

[ TYPE ]

COMMERCIAL

[ YEAR ]

2023 - 2026

[ STATUS ]

TECHNOLOGIES HTML CSS JavaScript Handlebars API Calls SQL
Oak Software Logo

DESIGN & DEVELOPMENT

eCommerce Shops

eCommerce shops that I worked on had already been designed by an external designer, which meant that when it came to building an eCommerce shop, I was developing the site from a fully approved design. Some shops were hard-coded, and as the company developed, the developers decided to start using a bespoke templating system, which meant that hardcoded shops needed to be rebuilt as templates. This job was my first commercial experience developing a website from an approved design. In the past, I was responsible for both the design and development, but this job taught me a lot about building something to match a client's design.

 

As previously mentioned, shops were built using a bespoke templating system. This allowed me to set up URL rules using JSON, and write SQL queries to retrieve data from the PostgreSQL database. To handle the front end, HTML, CSS and JavaScript were used, and data was rendered using Handlebars.

 

I learned about creating reusable blocks to display data, and how to effectively combine query data with Handlebars statements to significantly reduce the number of templates needed to get a shop to work. I focussed on making sure that my queries were effective, and this allowed me to build queries which retrieved exactly the data required, and Handlebars logic was used to render this data within reusable components. In multiple cases I managed to convert old shops from using two or three templates for one feature, down to one template which did the same thing.

 

 

Subscription Management SaaS Platform

The SaaS platform that Oak developed and sold was used to manage subscriptions. For example, somebody could purchase a magazine subscription on an eCommerce shop, and this would then be passed into the SaaS platform, so that Oak's clients could manage their data and run complex reports.

 

This system also ran on the custom templating system, though it included additional functionality compared with the one being used to build the eCommerce shops, as it also allowed data to be retrieved using internal API calls, which could work alongside SQL queries to retrieve data from different areas of the system. This software was a business platform, and used the AdminLTE template to provide the core UI. Because I had gained a lot of front end and design experience, I was entrusted with modernising and improving this theme. I spent a lot of time customising and extending Bootstrap's default styling, making it look cleaner and more modern, as well as adding subtle animations and effects to make the system feel more polished and responsive.

 

One of the first big changes I made to this software was the implementation of Select2. I had noticed that while a lot of the select elements across the system were styled the same, there were a lot of custom dropdowns as well, which meant that there were some discrepancies within the design on forms. I carried out some research to find a library that could provide a consistent and more capable replacement for standard select elements. I settled on Select2, as it allowed for proper searching within the dropdown, and it was extremely capable with handling large datasets, and also provided the consistent styling which I had originally been searching for. I documented my findings and created a full implementation plan. I presented this plan to the software architect at Oak and he approved the implementation, and I was then made responsible for integrating it into the platform.

 

I wanted to make sure that the system was not only clean and modern, but also useable and efficient. When testing certain reports or form submissions, I noticed that it wasn't always obvious if a form had been submitted, or a report was running. I made sure that whenever a process was running, a loading icon would show, just to make it clearer to users that their request was being processed.

 

I identified an opportunity to improve how JavaScript errors were documented and diagnosed, so I set up a shared document which allowed people to add error codes and their meanings, as well as where to find the JavaScript if it was throwing these errors. From here, I built a custom notification function. This function allowed the system to display success, information, and error messages. No matter who was logged into the system, a basic message was always displayed, including an error code if one was provided. Internal Oak users had additional admin rights within the system, so my function detected these rights and displayed extra technical information to explain exactly what problem was occurring. The use of these error codes, along with documentation, allowed the support team to pass error information on to the development team quicker.

OUTCOME

My time at Oak Software was extremely important to my development as a web developer. I joined the company with no commercial experience and initially worked on small visual bugs and text changes. As I developed my skills, I gained more responsibility and got given bigger and more important tasks. Eventually, I was trusted to develop complete features and eCommerce websites independently.

 

Working in a commercial environment gave me a lot of experience that I had not previously gained through personal or academic projects. I learned how to adapt my work and programming styles to existing codebases, investigate real-world bugs, interpret user requirements, work with databases and APIs, test my work thoroughly, and consider how my work may have an effect on other areas of the system.

 

I became a lot more confident working independently and proposing my own ideas, rather than simply working through tasks I was given. I worked alongside developers, support staff, and directly with clients. Working with such a variety of people taught me how my role fit into the wider organisation, and speaking to clients taught me how to better adapt my language when communicating with people who might not have a technical background.

 

Overall, my time at Oak gave me strong experience working in a commercial environment, and significantly improved both my technical ability and confidence as a developer.