Cam McHenry
camchenry.com
Cam McHenry
@camchenry.com
dad | software engineer @github.com | core team member of oxc.rs | ✝️

camchenry.com
Finally had time to put more effort into implementing oxlint<->tsgolint configuration for rules. Very soon, you'll be able to configure type-aware rules like any other rules. Should be as easy as just upgrading to the latest versions once it is available.
November 8, 2025 at 2:04 AM
Reposted by Cam McHenry
So I started working on it in the evenings when I had time, and last week while I was off work for a week (recovering from eye surgery), in between naps I worked through most of the rule updates. So now almost all of them have documentation for their config options :)

github.com/oxc-project/...
linter: various rules are missing `options` documentation on the Rules pages of the website · Issue #14743 · oxc-project/oxc
I think this was covered slightly by #6050, but may have been missed as being within scope of the problem. no-unused-vars, for example, has various options available. But the page for the rule make...
github.com
November 2, 2025 at 7:16 PM
Reposted by Cam McHenry
I had been exploring ESLint alternatives and was bothered by the lack of consistent documentation for rule configs in oxlint. So I opened an issue about it and talked with the maintainers about the right way to solve it, and found out there was a system for auto-generating documentation with types.
linter: various rules are missing `options` documentation on the Rules pages of the website · Issue #14743 · oxc-project/oxc
I think this was covered slightly by #6050, but may have been missed as being within scope of the problem. no-unused-vars, for example, has various options available. But the page for the rule make...
github.com
November 2, 2025 at 7:16 PM
Reposted by Cam McHenry
I love that this actually works.

*Oh yeah, is your list actually UNordered? Prove it.*
October 31, 2025 at 3:24 PM
use no memo
hear no memo
speak no memo
October 30, 2025 at 8:12 PM
Reposted by Cam McHenry
I am looking for a full-time job.

Being independent in open source for 3.5+ years has been wonderful. I've gotten done most of the high-level goals I wanted to, and miss having people & structure around me.

If you know of a role for a staff-level TypeScript+web developer, let me know! 🙂
October 30, 2025 at 2:40 PM
Vite and Vitest imply the existence of Viter
October 29, 2025 at 8:37 PM
Does anyone have experience with tools for benchmarking on every PR for Go projects? I'm looking to get a rough estimate of perf regressions/improvements in each PR for github.com/oxc-project/.... Looking into building something custom with `go tool pprof` currently.
GitHub - oxc-project/tsgolint: Type aware linting for oxlint
Type aware linting for oxlint. Contribute to oxc-project/tsgolint development by creating an account on GitHub.
github.com
October 28, 2025 at 2:51 AM
On my laptop, oxlint 1.24 is 3% faster than 1.23 on the `vscode` repository, with even larger improvements for very large codebases.

That means if you haven't updated to one of the latest versions in a few weeks, your linting step could be >10% slower than it should be!
October 22, 2025 at 4:56 PM
Making something 1% faster 20 times > making something 20% faster once

But that doesn't stop me from trying to get that juicy big one 😅
October 18, 2025 at 10:10 PM
Reposted by Cam McHenry
Big up to new #oxc contributor @arsh.sh, who showed up out of nowhere and is tearing through our issue list! He's just implemented support for all the comment-based APIs in Oxlint JS plugins. github.com/oxc-project/...
feat(linter/plugins): comment-related APIs by lilnasy · Pull Request #14715 · oxc-project/oxc
Part of #14564. Implement the remaining SourceCode APIs related to comments (getCommentsBefore, getCommentsAfter, getCommentsInside, commentsExistBetween).
github.com
October 18, 2025 at 1:50 PM
Oxlint 1.23.0 just got released, which includes the latest in some of the performance optimization work I've been doing.

Running on the vscode repository on my M1 laptop, 1.23.0 is ~7-9% faster than previous versions of oxlint with no changes other than just bumping the dependency.
October 13, 2025 at 6:11 PM
Just finished writing up an auto-fix for this in Oxlint, in case this was a blocker for anyone: github.com/oxc-project/...
September 26, 2025 at 2:53 AM
I'm finally starting to pick up Go and try to formally learn it. It's got a lot of wild features! First language I've used in quite a while that natively supports complex numbers, seems like an interesting choice. The swapped type declaration order is gonna take a while to get used to.
September 12, 2025 at 2:44 AM
First of these optimizations rolled out in v1.15.0 with a reduced scope. Next version of oxlint will be even faster: github.com/oxc-project/...

On my laptop: ~15% faster on `oven-sh/bun`, ~9% faster on `microsoft/vscode`, ~11% faster on `posthog/posthog`, and ~8% faster on `elastic/kibana`
September 11, 2025 at 9:41 PM
Reposted by Cam McHenry
VoidZero x SquiggleConf: Win a ticket!

VoidZero is a proud sponsor of this year's @squiggleconf.com on September 18th and 19th in Boston.

We've got an extra ticket for the event and want to give it away to one of you so you can join us there!

Learn in this thread how you can enter the raffle 👇
August 29, 2025 at 7:26 PM
Trying some new oxlint optimizations. This PR has gone over several iterations in the last few months and the core idea is simple: don't run rules for files if they don't apply (using an AST node bitset lookup).

The result: linting is around 15% faster in practice.
August 18, 2025 at 2:51 AM
Reposted by Cam McHenry
Announcing Oxlint Type-Aware Preview

oxc.rs/blog/2025-08...
The JavaScript Oxidation Compiler
A collection of high-performance JavaScript tools written in Rust
oxc.rs
August 17, 2025 at 4:55 AM
Cool to see more tsgo-based linters! I think best practices here are not known yet, so it is great to see more teams innovating on this.
rspack.dev Rspack @rspack.dev · Aug 15
We have a new member in the Rstack family 🦀

Introducing Rslint - a TypeScript-first linter written in Go (powered by typescript-go, not Rust 🙃)

Currently in experimental stage - check out the repo's README for more details:

github.com/web-infra-de...
GitHub - web-infra-dev/rslint: 🚀 Go Faster. Go Typed
🚀 Go Faster. Go Typed. Contribute to web-infra-dev/rslint development by creating an account on GitHub.
github.com
August 15, 2025 at 7:14 PM
Great news for anyone linting large repositories! Hopefully this will be an easy performance win for teams using ESLint.
August 15, 2025 at 5:05 PM
Just had a listen to this, it's well worth listening to catch up on the current state of JS linting, as Josh has lots of experience from working on ts-eslint. Lots of innovation happening in linting currently

Overall, I think right now is a great time to learn more about linting, parsing, and ASTs.
This is one of my favorite podcast episodes I've ever been on. I love this conversation and the points covered: linting in 2025, performance vs. devX tradeoffs, and all sorts of interesting dives into architectures.

If you never thought you should care about your linter, this will blow your mind! 🧠
Today on the pod: Joshua Goldberg breaks down the latest TypeScript linters, how to pick the right one, and best practices for 2025. #typescript
August 7, 2025 at 8:49 PM
First version is out! It's still pretty experimental, but we will keep improving performance and fixing bugs with each version. Most importantly though: you can use it now!
`oxlint --type-aware`. Mic drop.

It's incomplete and have numerous problems, including a noticeable performance issue.

BUT, you can finally see your floating promises quickly!

Example PR: github.com/rolldown/rol...
Problems: t.co/K7ZVnPjOPL
August 7, 2025 at 4:20 PM
Reposted by Cam McHenry
`oxlint --type-aware`. Mic drop.

It's incomplete and have numerous problems, including a noticeable performance issue.

BUT, you can finally see your floating promises quickly!

Example PR: github.com/rolldown/rol...
Problems: t.co/K7ZVnPjOPL
August 7, 2025 at 3:53 PM
It's been great to work on prototyping this! I'm really excited by typescript-go and looking forward to getting this released as soon as we can. The future is fast ⚡️
oxlint + tsgolint = no slow down!

no-floating-promises completes 4.4k files in 3.2 seconds, in the vscode repo.

typescript-go is the future, all credits to the ts-go team! We just glued everything together 😀

github.com/microsoft/ty...
July 19, 2025 at 4:25 AM
Reposted by Cam McHenry
I am permitted to host tsgolint in Oxc and explore type aware linting!

I am super excited!

We reduced the original scope of tsgolint to be a backend for oxlint, taking the best out of both worlds!

github.com/oxc-project/...
GitHub - oxc-project/tsgolint: Type aware linting for oxlint
Type aware linting for oxlint. Contribute to oxc-project/tsgolint development by creating an account on GitHub.
github.com
July 14, 2025 at 11:01 AM