A Frontend Development Portfolio Robert Elson

Senior React Developer & UI/UX Designer
with a design background, now freelancing to help teams turn ideas into polished, scalable front-end experiences—specializing in reusable UI components and thoughtfully designed interfaces for modern web applications.

Career Journey

Since beginning my web development career nearly 20 years ago, I've worked with a mix of agencies and clients in both freelance and full-time roles. Along the way, I've collaborated with talented engineers and designers while building a wide range of digital experiences—from small marketing sites to large-scale e-commerce and content management systems, with a strong focus on responsive design and cross-browser compatibility.

Several years into my career, I took on a role focused on collaborating closely with creative teams to build and launch a newly redesigned marketing website. Following the successful delivery of that project, I transitioned into a frontend-focused role, contributing to the development of an enterprise-level application using a modern tech stack that included React, TypeScript, Redux, and .NET Core. This period marked my introduction to React and TypeScript, and I quickly became comfortable building and maintaining Redux-connected components.

As my responsibilities grew, I gained hands-on experience working with backend services—consuming API data, troubleshooting request and response issues using tools like Swagger, and reviewing pull requests from other developers. I became responsible for developing and maintaining new features driven by business requirements, while also providing support and guidance to distributed and offshore teams.

Today, I bring this experience into my freelance work, partnering with teams to design and build scalable, maintainable front-end systems. I'm deeply passionate about the intersection of technical execution and visual design, and I'm driven by creating thoughtfully crafted applications that deliver intuitive, engaging user experiences.

Technical Skills

Coding Knowledge

HTML CSS Styled Components Javascript Typescript React JSX Redux PHP MySQL

Development Tools

Git Jest Enzyme Jenkins Swagger Zeplin

Adobe Suite

Photoshop Illustrator Adobe XD Animate

Case Studies

Address Book

The Challenge: Our application has a product catalog where users can use their reward points to buy merchandise or redeem for travel. During the checkout process, the user previously had to enter the shipping address manually each time. Business wanted a way for users to be able to create/edit/delete multiple addresses in order to have options during checkout.

The Solution: I created an address book feature where users could add as many addresses as they wanted, and could choose a specific address during checkout. Based off of designs from creative, I implemented the UI, consumed the api endpoints in order to add, edit or delete addresses, and set up redux to store the data. It has validation as well, so if a user enters an address that is slightly off or misspelled, the backend will return a better option to choose.

screenshot screenshot screenshot

Admin Assets Manager

The Challenge: Our application offers a unique branded experience for each organization that uses our service. Clients have their own UI that needs to be themed using their corporate brand guidelines (fonts, colors, logos, etc). This required a frontend resource to manually upload their assets to Amazon S3 for each environment (QA, UAT, Production).

The Solution: To solve this issue, I created an asset manager in the admin to automate the process and allow anyone with access to the CMS to be able to add assets to QA. From there, anytime we promoted to UAT or Production using Jenkins as our automation tool, the assets would be automatically deployed to the next environment. This solved a couple issues for us. It helped to keep all our environments in sync, and allowed our frontend team to focus on other features in the pipeline.

screenshot screenshot screenshot

Client Preference Settings

The Challenge: Our application has a social feed that displays employee anniversaries, achievements, new hires, etc. Some of our clients wanted to give their employees the option to hide information about themselves, so we needed a dedicated preference page for users where they could opt out of the social feed and any other settings that clients may ask for in the future.

The Solution: To solve this issue, we created a section in the admin where we can set up preference options for clients individually, and a place on the client side where users can toggle on and off those preference options. I was responsible for creating the admin UI while collaborating with backend to consume the api endpoints. Each client can now have their own set of preferences where their employees can go to customize certain features of the application.

screenshot screenshot screenshot