Hi, I'm Kevin Farrugia
I have a background as a front-end engineer specializing in web performance. I run a start-up providing web performance optimization and I use this website to blog about my learnings and share my experience.
As a web performance consultant, I’ve led a diverse range of engagements—from mission-critical projects tackling urgent performance bottlenecks, to multi-year strategic partnerships helping teams build faster and more resilient web experiences.
In 2023, I authored Learn Performance, the official web performance course on web.dev.
I am an active contributor to open-source projects and the proud recipient of Google’s Open Source Peer Bonus.
I’m a former co-founder of two startups, both of which I’ve successfully sold.
I am available for speaking engagements for both public and private events. If you would be interested, please send me an email or find me on LinkedIn.

Trusted By
Latest Updates
- On writingThu Jun 26 2025Writing clearly about a complex topic is no easy task, but it gives you a deeper understanding of the subject. 
- Adding a CrUX Vis shortcut to Chrome's address barTue Apr 15 2025The CrUX Vis tool is a great way to visualize the CrUX data. I created a shortcut to quickly access the tool from Chrome's address bar. 
- Contributing to the Web Almanac 2024 Performance chapterMon Nov 25 2024This year I contributed to the HTTP Archive's Web Almanac as an data analyst on the Performance 2024 chapter. 
- Improving Largest Contentful Paint on slower devicesSat Mar 09 2024We improved Largest Contentful Paint by segmenting our users by device memory. 
- Learn Performance course on web.devWed Nov 01 2023I co-authored a course on web.dev covering the fundamentals of web performance. 
- Setting up a Private WebPageTest instanceMon Jun 26 2023How to setup a private WebPageTest server and agent on an Ubuntu VM 
- First Important Paint - Developing a custom metricSat Jun 10 2023Custom metrics allow you to extend the set of measures already available in the browser with your own measures. I explain the motivation behind First Important Paint and what I learned about developing a custom metric. 
- Web Performance AuditWed Jun 07 2023I was asked to perform a performance audit for an online casino. This article is a redacted version of the report I have delivered to the client detailing my findings and recommendations. 
- Fetch Priority and optimizing LCPMon Jan 02 2023Fetch Priority is used to indicate to the browser the relative priority of a resource. I take a deep dive into how you can improve your Largest Contentful Paint by using fetchpriority. 
- The 2022 Web Almanac - JavaScript, Third Parties and Interop 2022Tue Sep 27 2022I contributed to the latest edition of the Web Almanac, the annual publication curated by industry experts analyzing the current state of the web. 
- Google IO Extended - MaltaWed Sep 07 2022On June 21st I was lucky enough to speak at Google IO Extended - Malta about Interaction to Next Paint (INP). 
- Interaction to Next PaintThu Jun 16 2022In May 2022, Google added Time to First Byte (TTFB) and Interaction to Next Paint (INP) to their CrUX report. INP measures a website's responsiveness and might replace First Input Delay (FID) as a Core Web Vital in the future. 
- Component composition in ReactWed Feb 23 2022One of the most misunderstood design patterns in a React application is the render props pattern and component composition. 
- The web isn't for content, it's for ads.Wed Feb 02 2022When visiting a website, the goal of the website isn't for you to consume the content you came looking for, but to maximize the lifetime value of your visit. 
- React Router and nested routesTue Feb 01 2022What are nested routes, why are they meaningful, and how can you use nested routes in your React app? 
- Should you optimize every re-render?Tue Dec 07 2021In most cases, the time spent rendering each component is a few milliseconds. This has led to the argument that not all re-renders are bad; a statement I disagree with. 
- Getting your HTTP Cache-Control headers rightSat Nov 27 2021Getting your caching strategy right can make a huge difference to your users - both repeat and first time. 
- Contributing to the HTTP Archive's 2021 Web Almanac - Resource HintsTue Nov 23 2021The Web Almanac is an annual publication curated by industry experts analyzing the current state of the web. 
- Creating a performance culture - Web Performance CalendarThu Dec 24 2020A non-technical write-up about my experience creating and maintaining a performance culture at Tipico. 
- Code-splitting is hardFri Nov 13 2020A demo project to illustrate that code-splitting is not a pandora's box and help in answering frequently asked questions on the topic. 
- Loading CSS - Performance CheatsheetFri Sep 25 2020A comparison of a set of tests using different loading strategies for CSS assets. 
- React Rendering OrderTue Jul 28 2020An example and explanation of the order in which React renders components and sub-components. 
- Inlining critical CSSFri Jul 24 2020I have recently come across all sorts of implementations to inline critical CSS. Here I share my relatively simple approach. 
- Learning the React reconciliation algorithm with performance measuresSun May 03 2020I wanted to measure the summation of all CPU time following a prop change, to do that I had to thoroughly understand the React reconciliation algorithm. 
- How I improved a WordPress website's start render time to under 1 secondSun Apr 26 2020Over the course of three months, I improved a WordPress website's page load time from 5.52 to 1.40 seconds and brought it's start rendering time to under 1 second. 

Featured in
Case Studies
- Industry-leading SportsbookImproving LCP and INP for an industry-leading sportsbook website in my role as a Web Performance Consultant. 
- Malta Football AssociationLeading the development of a new website for the Malta Football Association, focusing on real-time updates, performance and user experience. 






