Sign in

Kevin Farrugia

@imkev.dev
495 followers 346 following 65 posts

Frontend Engineering. Web Performance. Be kind.

PostsRepliesMedia
Kevin Farrugia @imkev.dev · 06/04/2026
Super proud of our first snowboarding child. 🏂
Two people carrying their snowboards on their way to the chair lift.
000
Kevin Farrugia @imkev.dev · 01/12/2025
"Thundering Herd" is my new favorite way to sound super smart in a presentation. 🐃 😁 en.wikipedia.org/wiki/Thunder...
en.wikipedia.org
Thundering herd problem - Wikipedia
000
Kevin Farrugia @imkev.dev · 21/11/2025
"Access from your country was disabled by the administrator". Lol, wth? 🤷
Screenshot of a website showing block details.
010
Kevin Farrugia @imkev.dev · 29/10/2025
Back in Amsterdam for @perfnow.nl. Hope to see you there. 😊
010
Kevin Farrugia @imkev.dev · 28/08/2025
While it is absolutely not a Tailwind problem I feel that Tailwind makes it easier to accidentally add `all` or transition on slower CSS properties. It might be nice to have some linter warning.
020
Reposted by Kevin Farrugia
Sam Rose @samwho.dev · 11/07/2025
I made a quiz about the JS Date parser is. It's very easy and you will score very high. jsdate.wtf
jsdate.wtf
new Date("wtf")
How well do you know JavaScript's Date class?
62476158
Kevin Farrugia @imkev.dev · 09/07/2025
I'm looking to recruit talented senior engineers that have experience related to web performance monitoring and optimization. If that sounds like you—or someone you'd highly recommend—please send me a DM and I’ll share more details! The role is 100% remote and async-first.
1713
Kevin Farrugia @imkev.dev · 05/07/2025
Elk.zone is really nicely done.
elk.zone
Elk
A nimble Mastodon web client
130
Kevin Farrugia @imkev.dev · 05/07/2025
For some reason you need to skip the first bit (~0:05), then it starts playing as usual. 🤷
000
Kevin Farrugia @imkev.dev · 04/07/2025
Cursor's `Tab` behavior is impressively good but the cognitive overhead of a different IDE (and overriding my keyboard shortcuts) is driving me crazy. 😵
000
Kevin Farrugia @imkev.dev · 26/06/2025
Leave it in the hands of some kids for a while and you won't recognize that plane any longer. 😁
000
Kevin Farrugia @imkev.dev · 26/06/2025
@tunetheweb.com does Chrome DevTools AI allow you to change the wheels from round to square? Very irresponsible! 😂 Context: chrome.dev/cinemai/devt...
120
Kevin Farrugia @imkev.dev · 31/05/2025
Thanks. In the past week or two I have started using Obsidian Web Clipper actually (I'm a long time Obsidian user) and so far it's working well. The only hiccup is that it doesn't work on Chrome mobile.
020
Kevin Farrugia @imkev.dev · 23/05/2025
Baseline is now available in VSCode. This is a really neat feature with no extensions needed. (catching up on Google I/O 😅) Read more: web.dev/blog/baselin...
Screenshot of a VSCode dialog indicating that the `<dialog>` element is widely available across major browsers since 2022.
183
Kevin Farrugia @imkev.dev · 23/05/2025
Pocket will be discontinued. 😔 What do you guys recommend for storing articles to read later (ideally works across all devices)? support.mozilla.org/en-US/kb/fut...
support.mozilla.org
Pocket is Saying Goodbye: What You Need to Know | Pocket Help
More information about the end of support for Pocket.
131
Kevin Farrugia @imkev.dev · 20/05/2025
Do you want to keep your kids busy? Give them LEGO instructions from ChatGPT. 😂
Four LEGO diagrams that illustrate the four steps to create what resembles a robot. The instructions do not make any sense.
020
Kevin Farrugia @imkev.dev · 09/05/2025
I finally joined the #framework club. 😍
Photo of a closed Framework laptop from above.
030
Reposted by Kevin Farrugia
Barry Pollard @tunetheweb.com · 07/05/2025
We've just published v5.0.0 of the web-vitals JavaScript library for measuring Core Web Vitals. github.com/GoogleChrome... As a major release, this includes a number of breaking changes as detailed in the upgrading doc: github.com/GoogleChrome... Please read carefully before upgrading. 1/5 🧵
github.com
GitHub - GoogleChrome/web-vitals: Essential metrics for a healthy site.
Essential metrics for a healthy site. Contribute to GoogleChrome/web-vitals development by creating an account on GitHub.
14712
Kevin Farrugia @imkev.dev · 29/04/2025
Wow, you went for the clear keyboard. 👏
100
Kevin Farrugia @imkev.dev · 28/04/2025
The @httparchive.org 's Web Almanac is looking for contributors for this year's edition. github.com/HTTPArchive/...
github.com
Contribute to the 2025 Web Almanac · HTTPArchive almanac.httparchive.org · Discussion #4062
Dear all, We are excited to announce the Call for Contributions for the 2025 Web Almanac (6th Edition)! The Web Almanac is an annual report that provides an overview of the state of the web, based ...
097
Kevin Farrugia @imkev.dev · 28/04/2025
Back from a peaceful week in the Polish countryside with the family.
Photograph of a child sitting on a skateboard, holding a football, watching a train pass by.
020
Reposted by Kevin Farrugia
Kevlin Henney @kevlin.bsky.social · 01/04/2025
There's a lot of talk about 'vibe coding' at the moment. Andrej Karpathy's tweet that introduced the term is often mentioned. I suspect, however, that many people who are promoting the idea in the context of commercial product development may not have read the whole tweet.
35421
Reposted by Kevin Farrugia
PerformanceObserver @performanceobserver.dev · 27/03/2025
Hey folks, the next episode of PerformanceObserver is now scheduled for 16 April with @verlok.bsky.social and @ethangardner.com ! See all details at performanceobserver.dev including add to calendar links with the join instructions. #webperf
performanceobserver.dev
PerformanceObserver: A virtual web perf meetup
Join the PerformanceObserver virtual performance meetup to get all the latest web performance news and hang out with the community.
066
Kevin Farrugia @imkev.dev · 26/03/2025
Your regular reminder to not trust AI before diving off a cliff. 😂
Screenshot of Google Search results saying:

What is the world's highest death dive?
The current world record in height is 832.6 meters and is held by Côme Girardot (FRA). In the women's class, the record is at 359.7 meters and is held by Norwegian Asbjørg Nesje. The current world record in freestyle death diving is held by Lucien Charlon (SUI) with a height of 532.6 meters.

Source: https://en.wikipedia.org/wiki/Death_diving
000
Kevin Farrugia @imkev.dev · 17/02/2025
After debugging this briefly and discussing it with the JIRA team, we confirmed the issue is actually caused by React DevTools not JIRA. Once React DevTools is disabled, JIRA performs well. (the JIRA website enables profiling on production)
010
Reposted by Kevin Farrugia
Una Kravets @una.im · 14/02/2025
The Interop 2025 dashboard is live! (and I spy anchor positioning right at the very top!!!) wpt.fyi/interop-2025
wpt.fyi
web-platform-tests dashboard
3547
Reposted by Kevin Farrugia
PerformanceObserver @performanceobserver.dev · 11/02/2025
📣 Reminder!! In 2 days, we have @toddhgardner.com and @inesakrap.bsky.social giving talks in our first meetup! For full details - check out our website (and add to calendar to get the join links)! performanceobserver.dev
performanceobserver.dev
PerformanceObserver: A virtual web perf meetup
Join the PerformanceObserver virtual performance meetup to get all the latest web performance news and hang out with the community.
144
Kevin Farrugia @imkev.dev · 06/02/2025
Hadn't heard of "outrage fatigue" or "doomscrolling" until recently, but lately I found myself wasting more time than I usually would on social media. www.scientificamerican.com/article/outr...
scientificamerican.com
How to Avoid News Burnout and Outrage Fatigue
Outrage fatigue can wear us down—but we can take care of ourselves in an onslaught of overwhelming news.
001
Reposted by Kevin Farrugia
Barry Pollard @tunetheweb.com · 31/01/2025
If you're using Speculation Rules there's a small bug in Chrome 133 (just rolling out now) where DevTools + Local Overrides causes prerenders to crash 😢 This only happens with DevTools open and when Local Overrides are enabled so shouldn't affect most of your users—but annoying for us developers!
2104
Kevin Farrugia @imkev.dev · 04/02/2025
I like his music actually and I'm guessing he has a more interesting story than most, so it might be worth a read. 😁 Thx
010
Kevin Farrugia @imkev.dev · 03/02/2025
Any recommendations for non-fiction books? Probably not politics or history, but almost anything else is good. 😁
210
Reposted by Kevin Farrugia
Sia Karamalegos @sia.codes · 16/01/2025
📣 I'm so excited to announce a new meetup I started! PerformanceObserver is a virtual meetup for the frontend web performance community! The first event will be announced shortly. You can join the newsletter to make sure you don't miss an event. #webperf performanceobserver.dev
performanceobserver.dev
PerformanceObserver: A virtual web perf meetup
Join the PerformanceObserver virtual performance meetup to get all the latest web performance news and hang out with the community.
44218
Kevin Farrugia @imkev.dev · 03/01/2025
Ah OK I thought it was specific to my user. 😅 The queryLocalFonts API is only supported on Chrome: developer.mozilla.org/en-US/docs/W... Thanks to your article and tool I understood some concept that before I just skimmed over and used without understanding. 🙌
developer.mozilla.org
Window: queryLocalFonts() method - Web APIs | MDN
The window.queryLocalFonts() method returns a Promise that fulfills with an array of FontData objects representing the font faces available locally.
120
Kevin Farrugia @imkev.dev · 03/01/2025
Similarly, when choosing some fonts from the dropdown it uses serif instead of the selected font, so I need to input the local font name manually. For example, "NotoSans-Regular" instead of "Noto Sans"
200
Kevin Farrugia @imkev.dev · 03/01/2025
I was experimenting with your tool and noticed that the name of the font in the CSS snippet doesn't match my own tests using `queryLocalFonts()`. For example, the tool outputs `src: local("DejaVu Sans");` instead of `local(DejaVuSans)`. I'm not sure if this is browser (Chrome) /OS (Ubuntu) specific.
100
Kevin Farrugia @imkev.dev · 27/12/2024
I asked Gemini AI if today is the 3rd Fri of the month. Today is Friday, Dec 27, 2024. To determine if it was the 3rd Friday of the month, we need to find the dates of all the Fridays in Dec 2024. * Dec 1: Sun * Dec 2: Mon ... As you can see, Dec 27, 2024 is the third Friday of the month. 🤦
010
Kevin Farrugia @imkev.dev · 18/12/2024
Heads up that there is a crbug for _1. Allow per-request slowdown_: issues.chromium.org/u/1/issues/4...
issues.chromium.org
Chromium
120
Kevin Farrugia @imkev.dev · 10/12/2024
No option to remove it? On other hosts I have seen an exclusion list but no option to disable it entirely. 😩 Also if you want a shorter cache TTL, according to your post, having duplicate `cache-control` headers will take the most restrictive one.
010
Reposted by Kevin Farrugia
Henri Helvetica 🧑🏾‍🚀🇭🇹 @henrihelvetica.bsky.social · 09/12/2024
📢 Just a reminder, we're just under 24hrs from this stream tomorrow where we talk to authors from the ✨ WEB ALMANAC ✨ and the data they pulled. All links below. Streaming on Youtube, LinkedIn, and other platforms. See you tomorrow.
093
Reposted by Kevin Farrugia
Tony McCreath @tony.mccreath.id.au · 09/12/2024
This is a great one. Some nice tips on fixing Core Web Vitals. Plus, how to analyse and pass useful information on to your developers. www.youtube.com/watch?v=7A70...
youtube.com
Record and analyze a performance trace #DevToolsTips
YouTube video by Chrome for Developers
073
Kevin Farrugia @imkev.dev · 09/12/2024
> TODO: figure out that other Cache-Control and ditch it Is it possible that this is being added by the hosting provider? For example, WPEngine automatically adds cache-control headers.
200
Kevin Farrugia @imkev.dev · 06/12/2024
A great read from @kurtextrem.de with lots of useful links and actionable items. 🙌
020
Kevin Farrugia @imkev.dev · 04/12/2024
Nothing to see here, just JIRA taking almost 6 seconds to open a dialog. 🤷 🤯
Screenshot of Chrome DevTools Performance Panel showing significant areas in Yellow (scripting).
130
Kevin Farrugia @imkev.dev · 04/12/2024
My 3-year old! 😭
010
Reposted by Kevin Farrugia
Henri Helvetica 🧑🏾‍🚀🇭🇹 @henrihelvetica.bsky.social · 28/11/2024
I announced it yesterday, but I'm very excited for the @httparchive.org's stream I'll be leading in under 2 weeks: ✨ The Web Almanac Live! ✨ We'll discuss findings re: how the web is built. Data collected over months of research across 17 million sites + published almanac.httparchive.org/en/2024/
almanac.httparchive.org
The 2024 Web Almanac
The Web Almanac is an annual state of the web report combining the expertise of the web community with the data and trends of the HTTP Archive.
12912
Kevin Farrugia @imkev.dev · 29/11/2024
Just came across this useful list from @mandymichael.bsky.social with font performance resources. 🚀 github.com/mandymichael...
github.com
GitHub - mandymichael/font-performance-resources: A collection of handy resources for understanding font performance on the web
A collection of handy resources for understanding font performance on the web - mandymichael/font-performance-resources
0204
Kevin Farrugia @imkev.dev · 26/11/2024
Got some new props? 😅 I still need to update my blog post after we spoke a few months ago. 🫣
010
Reposted by Kevin Farrugia
Robin Marx @programmingart.bsky.social · 26/11/2024
My talk from this year's We Love Speed is on YouTube! 👇 In "Tight Mode: how browsers REALLY load web pages", I take a very deep/very nerdy dive into why browsers sometimes intentionally delay loading resources, why they all do it differently, and why they should *stop clowning around* 🤡 #webperf
youtube.com
How browsers REALLY load Web pages — Robin Marx
YouTube video by We Love Speed
54220
Kevin Farrugia @imkev.dev · 26/11/2024
Added a comment and updated the demos to use a querystring `?noprerender=true` to disable the prerendering. Current status:
Table showing prerendering and `cross-origin-opener-policy` do not support View Transitions.
010
Kevin Farrugia @imkev.dev · 26/11/2024
I removed the prerendering from both demos and now they are behaving identically, indicating the issue isn't the response header. Previously, with prerendering the VT wouldn't run on the faulty demo.
100