Cam McHenry
@camchenry.com
📤 460
📥 289
📝 101
dad | software engineer
@github.com
| core team member of oxc.rs | ✝️ camchenry.com
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.
12 days ago
1
1
0
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`
add a skeleton here at some point
12 days ago
0
27
2
reposted by
Cam McHenry
VoidZero
25 days ago
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 👇
2
23
6
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.
about 1 month ago
5
39
4
reposted by
Cam McHenry
Boshen
about 1 month ago
Announcing Oxlint Type-Aware Preview
oxc.rs/blog/2025-08...
loading . . .
The JavaScript Oxidation Compiler
A collection of high-performance JavaScript tools written in Rust
https://oxc.rs/blog/2025-08-17-oxlint-type-aware.html
2
145
25
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.
add a skeleton here at some point
about 1 month ago
0
7
0
Great news for anyone linting large repositories! Hopefully this will be an easy performance win for teams using ESLint.
add a skeleton here at some point
about 1 month ago
0
5
0
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.
add a skeleton here at some point
about 2 months ago
1
9
1
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!
add a skeleton here at some point
about 2 months ago
0
9
1
reposted by
Cam McHenry
Boshen
about 2 months ago
`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
3
111
18
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 ⚡️
add a skeleton here at some point
2 months ago
0
46
4
reposted by
Cam McHenry
Boshen
2 months ago
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/...
loading . . .
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.
https://github.com/oxc-project/tsgolint
1
103
11
reposted by
Cam McHenry
Arnaud Barré
3 months ago
Introducing tsl, an extension of tsc for type-aware linting! Want to speed up your ESLint time without losing the great type-aware rules from
@typescript-eslint.io
? Run `bunx tsl --migrate` to try it out!
github.com/ArnaudBarre/...
loading . . .
GitHub - ArnaudBarre/tsl: An extension of tsc for type-aware linting
An extension of tsc for type-aware linting. Contribute to ArnaudBarre/tsl development by creating an account on GitHub.
https://github.com/ArnaudBarre/tsl
10
80
21
This is the best explanation of ARIA that I've seen. There is so much practical advice in here as well!
add a skeleton here at some point
3 months ago
0
2
0
reposted by
Cam McHenry
VoidZero
4 months ago
We're thrilled to announce the first stable release of Oxlint - version 1.0! Our Rust-powered JavaScript/TypeScript linter delivers 50~100x faster performance than ESLint with 500+ rules and zero configuration required. Time to give it a try!
voidzero.dev/posts/announ...
loading . . .
Announcing Oxlint 1.0
The first stable version of Oxlint, a fast & easy-to-use Rust-powered linter for JavaScript and TypeScript, is out. Learn about its 50~100x speed advantage over ESLint, support for 500+ rules, real-wo...
https://voidzero.dev/posts/announcing-oxlint-1-stable
10
310
71
reposted by
Cam McHenry
VoidZero
4 months ago
Today we are excited to announce Rolldown-Vite: a technical preview of the version of
@vite.dev
entirely powered by the Rust stack we built over the past year (Oxc +
@rolldown.rs
)
voidzero.dev/posts/announ...
loading . . .
Announcing Rolldown-Vite
We are building the next generation of JavaScript tooling
https://voidzero.dev/posts/announcing-rolldown-vite
3
323
84
reposted by
Cam McHenry
Boshen
4 months ago
For the Oxlint 1.0 announcement, I'd like to show more real world performance numbers on large repos. If Oxlint has been satisfactory, would you be keen to send me the numbers Oxlint reports at the end? If you have never tried Oxlint but has a large repo: `npx oxlint@latest`.
9
53
8
I got involved with oxc because I just showed up, looked at the issues available and suggested solutions, and started making contributions. It was also nice to not have the pressure of being publicly assigned to it so I could take my time and learn as I went.
add a skeleton here at some point
4 months ago
1
28
3
reposted by
Cam McHenry
patak
4 months ago
If you find an OSS issue that calls your attention, go for it. You don't need to ask permission to start working or have it assigned to you. If someone else sends a PR before you, that's great. You can use your knowledge of the issue to help review the PR, add tests, and validate the approach.
3
103
20
reposted by
Cam McHenry
Alexander Lichter
4 months ago
Happy to see Mercedes Benz adopting modern tooling such as
@rolldown.rs
and Oxc in their workflow, as well as going the extra mile and sharing their results! Up to 64% CI pipeline time reduction is impressive 👀 And more per improvements are yet to come 🤯
www.mercedes-benz.io/blog/2025-05...
3
62
9
reposted by
Cam McHenry
Pooya Parsa
4 months ago
Σ Experimental bundle analyzer in the last version of
obuild.unjs.io
@rolldown.rs
is fast enough that we can build a package, generate types, then bundle it again, minify it with OXC, and then bundle again!! (for side-effect check) and still takes <50ms for a small lib!
1
29
2
reposted by
Cam McHenry
Herrington Darkholme
5 months ago
A proof of concept to run ast-grep via OXC parser
1
9
1
reposted by
Cam McHenry
Boshen
6 months ago
On Oxlint JS plugins: we've created a survey to gather requirements and would love to hear your thoughts. The linked discussion includes background information and potential approaches we could take.
github.com/oxc-project/...
loading . . .
Oxlint Plugins Written In JavaScript · oxc-project oxc · Discussion #10342
Oxlint is a pure Rust based JavaScript linter, and the community has been requesting linter plugins written in JavaScript from the very beginning. Now, we're confident that we have solid foundation...
https://github.com/oxc-project/oxc/discussions/10342
3
55
13
reposted by
Cam McHenry
Boshen
6 months ago
I'm starting "This week in Oxc" to improve roadmap visibility. Feel free to subscribe to this thread.
github.com/oxc-project/...
loading . . .
This week in Oxc · Issue #10329 · oxc-project/oxc
This thread serves as our weekly update channel for sharing project developments with the community. Click the subscribe button on the right for updates. For inquiries, please find me on Discord, x...
https://github.com/oxc-project/oxc/issues/10329
0
85
9
In the latest version of the `oxc` VS Code extension (0.16.5), lint fixes now use the provided fix message whenever possible, making it much more clear what the fix will do. Previously, this just appeared as "Fix XYZ problem".
6 months ago
1
35
3
There have been a number of bug fixes and improvements to the editor experience for oxlint recently. If you have run into any bugs or issues with the `oxc` extension in VS Code, we would be interested to hear about it:
github.com/oxc-project/...
6 months ago
0
6
1
reposted by
Cam McHenry
VoidZero
6 months ago
Want to follow all updates + people involved in and around
@voidzero.dev
projects here on Bluesky? Then make sure to check out our starter pack!
go.bsky.app/Sbpuppb
add a skeleton here at some point
2
67
13
Oxlint has now reached a beta version! It's faster than ever, has over 500 rules built-in and we are working on adding lots more features. We are also working towards supporting custom plugins as well 🙏
add a skeleton here at some point
6 months ago
0
10
1
reposted by
Cam McHenry
Boshen
7 months ago
500 Oxlint rules. What a remarkable achievement by everyone who has contributed to OXC. It was only 11 rules when I completed the prototype back in June 2022.
4
85
10
reposted by
Cam McHenry
Boshen
7 months ago
Oxc v0.53.0 now returns an estree for direct consumption in JavaScript through napi and wasm APIs, no more ugly work arounds.
github.com/oxc-project/...
loading . . .
release(crates): v0.53.0 by oxc-bot · Pull Request #9381 · oxc-project/oxc
[0.53.0] - 2025-02-26 Rust Edition 2024 #9289 For napi and wasm APIs, the returned AST to the JavaScript side is now 100% estree (bug otherwise). All AST node spans are now corrected to utf16 for...
https://github.com/oxc-project/oxc/pull/9381
3
51
7
2025 resolution: don't buy any new domain names (challenge level: impossible)
9 months ago
0
5
0
Optimist: The cup is half full Pessimist: The cup is half empty Programmer: The cup should never have anything in it, TODO: figure out why this happens sometimes
add a skeleton here at some point
10 months ago
0
3
0
reposted by
Cam McHenry
Angie Jones
10 months ago
My latest blog post covers how a simple observation at airport security highlights the concept of Betterment and how it applies to engineering teams. Which group are you in?
angiejones.tech/the-betterme...
loading . . .
The Betterment Metric - Angie Jones
A simple observation at airport security highlights the concept of Betterment and how it applies to engineering teams. Which group are you in?
https://angiejones.tech/the-betterment-metric/
51
289
139
in an upcoming oxlint release, overrides will now be resolved relative to the config file location:
github.com/oxc-project/...
so this now works correctly: ``` { "rules": { "no-debugger": "off" }, "overrides": [{ "files": ["src/*"], "rules": { "no-debugger": "error" } }], } ```
loading . . .
fix(linter): make `overrides` globs relative to config path by camchenry · Pull Request #7407 · oxc-project/oxc
fixes linter: overrides path without ** prefix does not seem to work #7365 currently, we are matching globs on the absolute path to the file, which means that in order to properly match, all globs...
https://github.com/oxc-project/oxc/pull/7407
10 months ago
0
3
0
reposted by
Cam McHenry
Ryan Townsend
10 months ago
💯 Principles we should all be living by.
@ericwbailey.website
at
#perfnow
6
151
31
Guys literally want only one thing and it's widely accessible and affordable public transit involving trains and buses
10 months ago
0
2
0
Society if engineers were banned from playing Factorio:
11 months ago
1
5
0
I am now a core member of the oxc team!
github.com/oxc-project
Thanks to
@boshenc.bsky.social
for being welcoming to new contributors like myself and creating a great tool.
loading . . .
oxc
⚓ A collection of high-performance tools for JavaScript and TypeScript written in Rust. - oxc
https://github.com/oxc-project
11 months ago
3
63
4
This is your weekly reminder to run `git gc` and `cargo clean`
11 months ago
1
2
0
reposted by
Cam McHenry
siddharth ☻
11 months ago
this 100% matches my time at github (3 years now!!)
add a skeleton here at some point
1
31
2
TIL about surrogate pairs:
en.wikipedia.org/wiki/UTF-16#...
All things related to text encoding just confuse me, I think 😅
loading . . .
UTF-16 - Wikipedia
https://en.wikipedia.org/wiki/UTF-16#Code_points_from_U+010000_to_U+10FFFF
11 months ago
0
0
0
pov: you are a dog treat being eaten
#corgisky
11 months ago
0
3
0
Welcome
@boshenc.bsky.social
!
add a skeleton here at some point
11 months ago
0
2
0
and in this new country, we shall have 13 different types for text and text shall be known as strings and we shall call lists of things "vectors." what's the difference? nobody knows.
11 months ago
1
4
1
reposted by
Cam McHenry
Paul Butler
11 months ago
Bluesky’s captured tech twitter because it appeals to our innate desire to buy a new domain name.
49
2118
380
Playwright accessibility tip: Prefer using native locators over `.locator()` directly For example: prefer `.getByLabel(...)` instead of `.locator('[aria-label="..."]')`. This focuses the test on accessibility semantics instead of implementation details. This makes it more robust when refactoring.
11 months ago
1
1
0
reposted by
Cam McHenry
Josh W. Comeau
11 months ago
I created a Bluesky Starter Pack! 🎉 It includes ~75 wonderful people in the web dev community who are doing inspiring work. I know I’ve missed some folks; I plan on adding to it over time. Starter packs are such a great idea. Immediately makes Bluesky feel less lonely for newcomers. 😄
add a skeleton here at some point
66
490
138
I recently did some performance optimization work on oxlint and made it up to 33% faster at linting the VS Code repository. It can lint over 5000 files with 100 rules in just about half a second.
github.com/oxc-project/...
loading . . .
perf(linter): apply small file optimization, up to 30% faster by camchenry · Pull Request #6600 · oxc-project/oxc
Theory: iterating over the rules three times has slightly worse cache locality, because the prior iterations have pushed rule out of the cache by the time we iterate over it again. By iterating ove...
https://github.com/oxc-project/oxc/pull/6600
11 months ago
1
16
1
I don't think I realized how bad the X/Twitter website had gotten until I moved here. Bsky website is so much faster and less buggy.
11 months ago
0
1
0
obligatory puppy coworker pics:
11 months ago
0
2
0
Load more
feeds!
log in