FinoComp Focus – Matt Smith

Nov 26, 2021

Developing a successful user frontend

Matt Smith

My official title is software engineer here at FinoComp, but I spend the majority of my time focussed on the frontend user interface (UI) development.  My role within FinoComp covers a wide range of roles and responsibilities within the frontend development landscape, from the architectural side of things, development and tooling, and to the actual design of our user interfaces.

Before joining FinoComp, I began my software career at a large organisation working on large integration projects covering a number of industries such as Government, telecommunications, and e-commerce. However, you would typically only be assigned to a specific project from between six to twelve months. This meant that it was difficult to really dive deep into particular domain areas.  It felt that as soon as you would be getting to grips with a particular subject area you were needed elsewhere! I also found, being a small cog in a large machine made it harder to make a meaningful impact.

My roles and skillsets within the industry have gradually changed over the years as I have moved from being purely an integration developer, working on interfaces between applications and systems, performing data migrations, to being a full stack developer, to then transitioning to become a frontend developer.

FinoComp sparked my interest for a number of reasons. As a relatively small company, I saw a real opportunity to make a significant impact. There were “greenfield” projects at my disposal (starting from scratch) which enabled me to work on building something from the ground up. This opportunity was something that I felt really helped accelerate my growth as a developer. I was empowered to do my own research and make my own decisions, some of which would impact the outcome for the life of the product.

Another key attraction was that FinoComp has always worked with the latest technology. When working on these projects it was important to be able to choose the best and most appropriate technology and to not be constrained by what was available at that time.  It was also important to me that I was given the opportunity to really dive into, and properly understand the domain I was working on without getting taken off and getting moved on to another project a few months later.

I found it incredibly valuable to have a broad knowledge of an application, I feel that understanding how every part of the application works made me more effective as a developer. When I hear people talk about the so called “T-shaped skill sets” (broad skill set, specialising in one discipline) I feel that I am probably a good representation of that given my background. Having a background in backend development and specialising in frontend development, I have found it invaluable when collaborating with colleagues in multiple disciplines whilst really being able to sharpen my skills on the frontend.

 

What makes a good user interface?

User Interface development is the development of the web application user interface that users see and interact with.

An interesting aspect to frontend development when comparing to backend development is that it can be difficult to manage the ever-changing JavaScript ecosystem. It moves so fast and is constantly changing so it can be quite challenging to assess the landscape at any given time, it can be an exhausting thing to manage as a frontend developer and is commonly referred to as “JavaScript fatigue”.

There are several tools and libraries that are at our disposal as frontend developers, some examples of what we use here at FinoComp include: React (a JavaScript library that we use to build our user interfaces) and TypeScript which is effectively superset of the JavaScript language that provides a typing system that allows us to catch bugs earlier. We also use Webpack, whose main purpose is as a module bundler and is a key tool for our micro frontend approach.

 

What do you mean by Micro frontends?

This is an organisational and architectural approach to frontend development which is generally suitable for medium to large scale projects. It aims to solve many of the  problems that microservices aim to solve for the backend, but for the frontend. Traditionally frontends have been built as monoliths, micro frontends are an alternative to this.

Micro frontends have a number of benefits:

  • Applications can be split into smaller, more manageable chunks
  • Each application can be independently built and deployable
  • They can help with managing the ever-changing JavaScript ecosystem, they do this by having smaller code bases and can also assist with the adoption of new technology when it makes sense to do so
  • They can offer increased TEAM autonomy. This means that teams can make their own technology decisions and use their own tech stack if required

However, Micro frontends come with challenges which we have addressed:

  • When you have several teams implementing different user interfaces at the same time it can be a challenge to keep everyone in sync with the look and feel of those interfaces.
  • Performance: building user interfaces that can stand alone can often introduce overheads and redundancy to the application, especially if those frontend applications are quite small.

 

Measuring the success of UI development, what makes a good user experience?

There is of course a subjective element in design with many people having differing opinions on what makes a good user experience. A good user experience to me is something that is useful, usable, can meet the goals and needs of the user efficiently, and is accessible.

In terms of measurement, a common approach which most people may be familiar with is user surveys which we often see in applications we use day to day. Another would be analytics, using metrics to track user clicks to show for example how often something on a screen gets clicked, this will show us how much this service gets used in production. Metrics can track things like task completion rate, error occurrence rate and adoption and redemption.

 

What advice would you give to a someone looking to get into UI development?

Software development has a wide range of roles, it is about finding that role that you are passionate about and that you enjoy.  When I was on the backend, I didn’t enjoy it as much as the creative process of UI development that I am doing now. I like seeing results on the screen and creating something that the user will directly interact with, I get a huge amount of satisfaction out of that.  So, I would say – don’t just stick within the typical developer roles but really explore what is out there and dip your toe in each of them to find out what your real passion is.

 

What do you like to do outside of work?

Lake Conjola

Outside of work, I enjoy an active lifestyle. I enjoyed playing a lot of sports when I was younger such as rugby, basketball and touch football. Keeping mentally and physically fit has always been important to me and although during lockdown it became difficult (with gyms closing), I managed to set myself up with a home gym which made it was possible to work out at home.

Lake Conjola

With a young family we like to get out when we can, and on weekends we generally go for bike rides and walks. We also have a little caravan and love to go on trips down the NSW coast, one of my favourite places to visit is Lake Conjola, where there is beautiful lake and beach.  There are just so many great spots to visit up and down the coast, as things begin to open up we are looking forward to getting out there and exploring more.