Shikhil Saxena

Jan 05, 2026 • 6 min read

2025 in Review

It's that time of the year again - the time where I look back at what I did in the last 12 months. The good, the great and the perfect. Because, to be honest, 2025 was an amazing year for me. Let's start with my new job:

Sentry 👨💻

On January 7th, I joined the Design Engineering Team at Sentry as a part-time contractor after working for a startup in Vienna for the last decade. This was by far the biggest change in my career ever, which was exciting and terrifying at the same time. But, what can I say: I really enjoy working at Sentry. Everyone in the Vienna office is super nice and welcoming, the work is challenging and rewarding, and I even got to travel to San Francisco for a week, which is the first time I left Europe since I've had kids.

I already wrote about what we do in the Design Engineering Team in my blog post Designing Design Systems earlier this year, but in case this sounds a bit abstract, here's a concrete but non-exhaustive list of things I helped ship this year that I am quite proud of:

The Sentry re-design

In case you haven't seen it yet - Sentry has a bold new look, and the Design Engineering team was responsible for rolling it out to the whole platform. This went hand in hand with building S.C.R.A.P.S - our new design language and the design system (Standardized Collection of Reusable Assets & Patterns for Sentry).

The name is quite fitting as we've literally pulled the first version together from existing "shared components" we've found all over the codebase. This also means we have a lot of work ahead of us, making APIs and documentation better as well as providing new patterns that are just outright missing.

Improving the Sentry codebase

We've put quite a bit of effort into trying to make the Sentry codebase better for everyone, as it has organically grown with little oversight over the last 10 or so years. This year, we've enabled type-aware linting, turned on noImplicitAny and introduced knip to remove a lot of unused code. This project, which took a lot of effort over a couple of months, also inspired me to write the talk Dead Code Shouldn't Exist, which I will be giving at various conferences next year.

Improving the Sentry product

We've also put some work into making Sentry faster for everyone. ⚡ This includes features like route intent preloading, automatic virtualization for our Select component and using shared layouts to avoid a flashing loading spinner during first navigation.

And we're in the process of replacing the home-grown URL state solution with nuqs, which is an ongoing migration that will also have a positive perf impact thanks to its support for shallow routing. This has led me to become an active contributor to nuqs, as I got a bunch of features and fixes merged this year. So, it is true that one of the best ways to contribute to open source is by helping out with the tools you love and that you actively need. Shout out to François Best for guiding me through the nuqs codebase. He is literally the Best. 🙌

Open Source 🔓

On the one hand, it feels like open source has slowed down for me this year. For TanStack Query, pretty much nothing happened. Although, we started the year on v5.62.11 and are now on v5.90.12, so that means we must've shipped some features, but I guess it was nothing groundbreaking. staleTime:'static' and timeoutManager come to mind but they are both quite niche, so I wouldn't be surprised if you haven't use them yet. Oh, there's also streamedQuery which was a nice addition. I guess sometimes, we just forget how long a year really is, and looking back like this, we realize how much has actually happened. 😅

Also, yes, I have an unsorted list for what might become a v6 someday, but I'm in no rush here. I will post a public discussion once I'm sufficiently confident on what needs to be done. Usage has spiked thanks to AI, and most people are very happy with the library as it is. The improvements that are left to be done are either very small, or for edge-cases that don't come up a lot. I wouldn't say Query is "feature complete", but it's very likely "good enough" for what users currently try to do.

On the other hand, there is one thing looming over me, and that is of course Async React.

Async React

React has shipped a lot of new features recently: Suspense, useTransition & View Transitions, use, useOptimistic and Actions. If you've seen Ricky's talk, you can see that these features are really great and quite powerful if used correctly, but you can probably also see in the demo that the APIs are a bit low-level and aren't as easy to use as we'd hope.

In part two of his talk, he concludes that we need three things to make this better: Async React support in our design component libraries, our routers and our data-fetching libraries by default. Basically, app developers will not need to worry about those low-level APIs once existing libraries provide a good abstraction of them and integrate with them seamlessly.

As someone who works on all three of these - TanStack Router, TanStack Query and Sentry Scraps - that's terrifying.😂 It means I need to figure out a lot of things going forward. At least for now, that seems like a "future me" problem. Expect more blog posts on this next year as the async react working group ramps up and we collectively get a better understanding of the topic.

Public Appearances 🗣️

I gave the talk React Query API Design - Lessons Learned at React Paris and a workshop called React Query - Beyond the Basics for React Summit Amsterdam and React Advanced London. This was the first time I did a workshop, and I was positively surprised about the experience. I love teaching patterns about React Query and I think I'm uniquely qualified given my experience with it. Preparing the workshop took a lot of work (more than prepping a talk), but seeing how everyone took away something from those four hours no matter their experience level made it totally worth it.

Join Shikhil on Peerlist!

Join amazing folks like Shikhil and thousands of other builders on Peerlist.

peerlist.io/

It’s available... this username is available! 😃

Claim your username before it's too late!

This username is already taken, you’re a little late.😐

0

4

1