Hi there, I am Joshua

I am a software engineer from South Africa working at making the web faster, easier to use and easier to build.

What does that mean?

In short, it means I build websites, apps and software. In those projects, I have spent a large amount of time and focus on improving the overall usability of the sites, increasing their SEO and performance and in helping to create useful tools that help the developers of those projects. Recently I have also begun focusing on accessibility on sites and have helped to bring various projects up to the required global standards.

From component libraries to website audits, I have a wide range of experience in make websites work as well as possible. You can check out some of my projects here to see what I have been getting busy with. I try to leverage my knowledge of HTML, CSS and JavaScript to work in any environment be it Svelte, Nuxt, Angular, React or even plain old vanilla JS - I am always keen to add more skills to my toolkit. When I am not working I do try to write helpful articles to share what I have learnt with other developers. I am always keen for a new challenge, especially if it means figuring out how to build something that has never been built before.

From the start of my career in 2018, I have worked at many companies and have been involved in many projects. I am currently employed at Luckybeard working as a Senior Web Developer.

Latest Articles

What CSS Layout Looks Like and How it Works

Recently I have been updating the documentation site for my company's component library, which has included making the documentation mobile friendly. While doing so, I employed the age old technique of adding a pink outline to every single element on my page so that I could see how different elements where interacting with each other.

Read more

Goodhart's Law and Interview Tests

At some point, I am sure that most developers have had an interview were they have been given some sort of a coding challenge. The idea is this - a company wants to hire a new developer. They want said developer to demonstrate the skills necessary for the job. The skills listed on that developers CV are considered to be unverified and so, that company wants to check and see that the developer can actually do what they say they can do. All of this is good so far. With this thinking in mind, companies implement various coding challenges that potential hires need to complete. Some are good and some are bad. In this article, I just want to explore a little bit of the various types of tests that you might come across, and where their short comings are. Then, because I don't want this to just be a rant, I would like to propose a solution that I think best fits the need that interviewers face.

Read more

The Sexiness of Headless UI Components

Something I enjoy doing most on the web is creating things that help other developers to be more productive. I especially love creating component libraries and core development kits that can be used to make project bootstrapping and deveopment easier. As a result I have spent a substantial amount of time trying to find newer and better ways of making sure that the components I make are robust, versatile, and easy to use. One of the things I've noticed about components is that we developers have a natural tendency of just make them work in the given immediate use case or context.

Read more

Why It's So Hard to Check Object Equality in JavaScript

The other day I was working on a bit of code where I found myself having to check if two JavaScript objects were equal, namely, do two objects have the same keys and values. The first thing I tried was putting them into a simple equality check (using ===) and thought that my problem was solved. However, it turns out that comparing JavaScripts objects is much harder than I thought.

Read more