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

The Unsung Heroes of Software

Every so often I come across some post on social media by someone in tech, be it a QA Engineer, a UI Designer, a UX Designer, a Frontend Engineer, a Backend Engineer, a DevOps Engineer, a Project Manager or really just about any role in tech. The post will usually contain some sort of graphic that depicts a stark contrast between when things go right with their job and when things go wrong.

Read more

Development, sans Passion

The future of development is going to look leaps and bounds different from what we see around us today. Already we see today that a good developer can use AI tools to create in half the time it used to take. The future will see AI powered development that allows us to build faster than we have ever built before. Developers, let's learn to use these tools instead of hiding behind them. Let us keep pushing to make websites that move people and solve human problems. Let us keep making work that is real. Let us not become developers sans passion.

Read more

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

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