Software engineer & researcher of developer tools, merge conflicts, and HCI. PhD @OSUEECS. Former intern @Microsoft, @HPE, and @Intel.

Joined April 2009
101 Photos and videos
Nicholas Nelson retweeted
Gemini Genie 3 are helping @Waymo simulate long tail scenarios to make driving safer.
Feb 6
We’re excited to introduce the Waymo World Model—a frontier generative mode for large-scale, hyper-realistic autonomous driving simulation built on @GoogleDeepMind’s Genie 3. By simulating the “impossible”, we proactively prepare the Waymo Driver for some of the most rare and complex scenarios—from tornadoes to planes landing on freeways—long before it encounters them in the real world. waymo.com/blog/2026/02/the-w…
40
91
1,209
119,813
Nicholas Nelson retweeted
Replying to @miracsa @omgubuntu
Our next major release will do exactly that! Here's a preview.
79
72
455
Say it isn't so @oregonlive, defrauded for 18 whole dollars? Glad @Google news feeds know where to clip off a title without altering the narrative 😜 Btw, original article here: oregonlive.com/business/2024…
70
Nicholas Nelson retweeted
13 Aug 2024
GREAT NEWS! | Portland Public Schools has announced that all of its students will be able to eat school-provided breakfast and lunch free of charge for the 2024-2025 school year. katu.com/news/local/portland…
102
29
281
21,668
I want to say "no sweat", but my heart was racing through that shotout! #ARSPOR
David Raya = hero for The Arsenal ❤️ #UCL
187
3:1 finish to Arsenal vs Liverpool! Go Gunners!!! @Arsenal onefootball.com/match/239054…

85
Nicholas Nelson retweeted
youtu.be/khnz-1LDHOM?feature… imagine if your timeline was totally yours, merged across social networks and email and notes apps, and tried to support you throughout the course of your day. @alexobenauer made a unified timeline for himself which I've envied for months now. it's the seed of a more personal computer. while each company wants to make its own "app," people don't organize actions and ideas around apps in their head. my grandma doesn't understand the difference when I send her an email or a text—it's just a message. she's smarter than all of us. our brains don't organize anything into apps or folders, but rather: meaning & time. @plexusearth (the public benefit company I run) centers meaning; Alexander's experiment here (Ollos) centers time. making natural software can make life simpler. I hope folks follow alexander's lead.
1
2
11
1,217
Nicholas Nelson retweeted
23 Jan 2024
components / hooks / types / utils (and constants) is the split I'm seeing in many codebases, yet it's the one I dislike the most. It groups by type, not by domain. "useTheme" will live next to "useTodo", but not next to ThemeProvider ... why?
138
179
1,779
514,594
Nicholas Nelson retweeted
At Cursor, we’re fascinated by the problem of deeply understanding codebases. One useful primitive we’ve been focused on is code graph construction and traversal. Here's how/why we're tackling this... (1/12)
16
61
834
247,078
Nicholas Nelson retweeted
CSS Tip! 🤯 You can create a CSS-only version of this balance slider using a scroll animation on the underlying input[type=range] 🚀 ::-webkit-slider-thumb { view-timeline: --thumb inline; } Scroll animation driven by the slider thumb animates a number between the "min" and "max" of the range 😅 @​property --value { inherits: true; initial-value: 0; syntax: '<integer>'; } @​keyframes sync { to { --value: 100; }} Tie that up to the contain animation-range ⚡️ .control { animation: sync both linear reverse; animation-timeline: --thumb; animation-range: contain; } Hoist the view timeline so all the parts of the control can use it! .control { timeline-scope: --thumb; } Use that value in a counter which is used for the labels. Create a low and a high for each side 😇 .control__label { counter-reset: low var(--value) high calc(100 - var(--value)); } .control__label::before { content: "COFFEE " counter(low) "%"; } .control__label::after { content: counter(high) "% MILK"; } That's the magic of updating the label values ✨ For the big track, it's a fake track. You can make use of the same --value property and do some calc() to work out the width of each part. <div class="control__track"> <div class="control__indicator"></div> </div> .control__track::before { width: calc(var(--value) * 1% - 0.5rem); background: var(--coffee); border-radius: 4px; transition: width 0.1s; } The width leaves a little gap for the indicator piece 🤙 The color calculation for --coffee isn't too wild but again you can use the same --value .control__track { --coffee: hsl(24 74% calc( 24% (30% * ((100 - var(--value, 0)) / 100)) / 1 ) / 0.4); } Now for the last piece. Making the track change height. You could set up another custom property and animate its value using the --thumb timeline too 🔥 @​property --shift { initial-value: 0; inherits: true; syntax: '<integer>'; } @​keyframes shift { 0%, 31%, 61%, 100% { --shift: 0; } 32%, 60% { --shift: 1; } } Then use that --shift to update the translation of the label and height of the track 🤓 .label { transform: translateY(calc(var(--shift) * 50%)); transition: transform var(--speed) var(--timing); } Cool part here is that you can use the control to work out the @​keyframes percentages 😅 Oh. And the timing for that little bounce? Use the linear() function 😎 :root { --timing: linear( 0, 0.5007 7.21%, 0.7803 12.29%, 0.8883 14.93%, 0.9724 17.63%, 1.0343 20.44%, 1.0754 23.44%, 1.0898 25.22%, 1.0984 27.11%, 1.1014 29.15%, 1.0989 31.4%, 1.0854 35.23%, 1.0196 48.86%, 1.0043 54.06%, 0.9956 59.6%, 0.9925 68.11%, 1 ); } Should probably do a video on this one. Lots of little custom property tricks for sure! 💯 It's not too far off the range slider with the tooltip that came up previously As always, any questions, let me know! Also, this one only works in Chrome currently ✅🥲 This one's a bit rocket science ha 🚀 @CodePen link below! 👇
20 Jan 2024
Prototyped a balance slider today ✨ How do you like your coffee?
40
283
2,931
377,487
Nicholas Nelson retweeted
12 Dec 2023
Unit's top down navigation helps me finding the code behind something by following visual clues alone. I can always go directly to the component I want to focus on.
32
73
849
135,515
Well isn't that a sight! 6-0 in Champions League for Arsenal. It's been a minute. #ARSLEN
29 Nov 2023
Six of the best ✨
124
Nicholas Nelson retweeted
What if collaborative whiteboards could do physics? Here's a Rust/WASM physics sim inside of a multiplayer @tldraw canvas. All in realtime, happening in the background. Let your diagrams fall to the floor, make dominoes on your state charts, put rejected ideas into a pile...
6
12
165
25,189
Nicholas Nelson retweeted
Just a reminder that the deadline for the IDE workshop, co-located with @ICSEconf 2024, is in two weeks (December, 7th). Anything related to IDEs, 4 1 pages short papers, 1 or 2 1 pages position papers. Let's build the coolest community together! All info: ide-workshop.github.io/
8
10
1,255
🔥TypeScript Origins: The Documentary youtu.be/U6s2pdxebSo?si=jPA8… via @YouTube

42
Nicholas Nelson retweeted
Remix Development Tools v2.4.0 🎊 - ErrorBoundary on RoutesTab now tells you if it's covered by a parent ErrorBoundary and where that boundary is! - Panel position setting - allows you to set the panel to top or bottom Follow me for more updates!
2
7
42
7,717
Nicholas Nelson retweeted
Confused about TSConfig? Here's a cheat sheet that will get you 90% of the way there.
46
431
3,058
250,542
Nicholas Nelson retweeted
8 Sep 2023
Introducing Bun v1.0 - a fast, all-in-one toolkit for running, building, and testing JavaScript and TypeScript bun.sh/blog/bun-v1.0
176
1,158
5,945
969,499