0:00
/
Transcript

How to Make Your Web Services MORE Perform

Small changes in images, APIs, caching, and infrastructure can completely change how fast your application feels to users

APIs and web applications can become complex very quickly, and performance issues usually come from multiple small inefficiencies stacked together. Improving load speed is less about one big fix and more about identifying bottlenecks and applying optimisations at the right layer of the system.

In this video, we explore practical techniques to make web applications faster and more efficient across the full stack.

We start with image optimisation, since it is often one of the biggest performance drains. This includes serving images at the correct size, compressing them properly, and removing unnecessary metadata. We also look at modern formats like WebP and AVIF, which significantly reduce file size compared to PNG or JPEG. On top of that, lazy loading using the native HTML loading attribute helps defer offscreen images and improves initial page render speed.

Fonts also play a role in performance. Choosing lighter formats like WOFF2 instead of heavier TTF or OTF files can reduce load time noticeably, especially on content-heavy pages.

From there, we move into frontend and network performance. CDNs (Content Delivery Networks) help reduce latency by serving assets from locations closer to users. Preloading critical resources can also improve perceived speed by prioritising what the browser needs first. For client-side applications such as React, avoiding synchronous blocking calls and using proper asynchronous API handling helps keep the UI responsive.

We also look at how hosting location impacts performance. If your users are mostly in one region but your infrastructure is hosted far away, latency increases unnecessarily. Using multi-region deployments or edge-based services helps reduce this gap.

A key part of debugging performance issues is using browser tools effectively. Chrome DevTools provides the Network and Performance tabs to inspect request timing, payload sizes, and rendering behaviour. Lighthouse adds a structured performance score and highlights specific areas for improvement, making it easier to prioritise fixes.

On the backend, database optimisation is critical. Proper indexing in relational databases can drastically reduce query time. Tools like pgAnalyze (for Postgres) help identify slow queries and inefficient patterns. Caching is another major improvement area, using systems like Redis or Memcached to avoid repeated expensive database calls. A well-designed caching strategy can often tolerate 30–60 minute stale data windows depending on the use case.

API design also matters. REST APIs are often easier to optimise with HTTP caching headers, while GraphQL requires more careful cache management due to flexible query structures. In both cases, avoiding unnecessary requests and reducing payload size improves overall performance.

Other important techniques include pagination and limiting data transfer. Instead of loading everything at once, APIs should return only the required chunk of data. This works well alongside frontend lazy loading strategies.

Finally, serverless architectures require attention to database connections. Opening too many connections can create overhead, so proper connection pooling and cleanup is essential.

The goal of this video is to show that performance is not a single optimisation, but a collection of small improvements across images, fonts, frontend behaviour, APIs, caching, and backend systems. When combined, they produce a significantly faster and smoother user experience.

Slow app vs optimised fast system comparison showing performance gains
Slow app vs optimised fast system comparison showing performance gains.

I’ve built plenty of projects on my GitHub over the years. Feel free to browse through for inspiration or contribution.

I’ve got more exciting content coming your way on my LinkedIn. Make sure to hit that follow button so you don’t miss out!

Comments

User's avatar

Ready for more?