Sathya Gunasekaran Profile
Sathya Gunasekaran

@_gsathya

Followers
5,847
Following
444
Media
208
Statuses
4,238
Explore trending content on Musk Viewer
Pinned Tweet
@_gsathya
Sathya Gunasekaran
7 months
I talked about React Forget at @react_india ! 👇
@reactjs
React
7 months
React’s programming model makes our compiler, React Forget, possible. Find out how in this talk by our team member, Sathya Gunasekaran ( @_gsathya ):
11
107
556
0
9
69
@_gsathya
Sathya Gunasekaran
5 years
📢 I just shipped Promise.allSettled in Chrome 76 🔥 More info:
Tweet media one
16
242
819
@_gsathya
Sathya Gunasekaran
6 years
✨ I wrote up a straw man for adding a slice notation to ECMAScript: Feedback welcome!
Tweet media one
38
171
663
@_gsathya
Sathya Gunasekaran
5 years
📢 I just shipped Numeric separators in Chrome 75! 🔥 More info:
Tweet media one
4
151
595
@_gsathya
Sathya Gunasekaran
2 years
⚛️ I start on the React core team next week! ✨ Super excited to be back hacking on compilers and JavaScript, but most importantly looking forward to working alongside my super smart team mates!
12
15
460
@_gsathya
Sathya Gunasekaran
7 years
ES6 Modules enabled by default for Chrome 61
4
274
413
@_gsathya
Sathya Gunasekaran
7 years
🚀🔥 Object rest/spread properties has landed in V8 behind a flag!
Tweet media one
9
195
403
@_gsathya
Sathya Gunasekaran
7 years
Object spread coming soooooon to v8
Tweet media one
5
156
383
@_gsathya
Sathya Gunasekaran
6 years
I just staged public class fields behind the 'Experimental JavaScript' flag in latest Chrome canary 🎉
Tweet media one
8
112
362
@_gsathya
Sathya Gunasekaran
5 years
📣 I just shipped private class fields in Chrome 74! 🎉 Try it out in Chrome canary today! 👉 More info by @mathias here:
Tweet media one
7
131
286
@_gsathya
Sathya Gunasekaran
6 years
w00t I've got private class fields working locally in V8
Tweet media one
7
70
262
@_gsathya
Sathya Gunasekaran
6 years
I just staged private class fields behind the 'Experimental JavaScript' flag in the latest Chrome Canary 🎉 Please try it out and file bugs here: Spec:
Tweet media one
12
113
250
@_gsathya
Sathya Gunasekaran
2 months
the react compiler's type system was built to improve memoization but it turned out to be useful for lots of other analyses too! 📝 I wrote about how the type system works here:
Tweet media one
9
32
205
@_gsathya
Sathya Gunasekaran
2 months
📝 Curious about the React Compiler? I wrote about one of the core compiler transformations:
Tweet media one
2
38
176
@_gsathya
Sathya Gunasekaran
7 years
Native ES6 ~4.5x faster than transpiled code on V8 #blinkon
Tweet media one
3
66
167
@_gsathya
Sathya Gunasekaran
5 years
Yay a chrome refactoring award 🎊
Tweet media one
9
6
171
@_gsathya
Sathya Gunasekaran
1 year
Thanks for scaring me LinkedIn?
Tweet media one
4
1
158
@_gsathya
Sathya Gunasekaran
7 years
Dynamic import coming soon to V8!
Tweet media one
4
88
151
@_gsathya
Sathya Gunasekaran
3 years
Last day at Google ✌️
Tweet media one
9
0
128
@_gsathya
Sathya Gunasekaran
7 months
Going live in a few minutes! @react_india
Tweet media one
3
1
111
@_gsathya
Sathya Gunasekaran
6 years
📢 Chrome 72 will be shipping with the new `export * as ns from "mod"` module syntax! 🔥 Chrome Canary 72.0.3584+ already has it! 👀✨
Tweet media one
0
33
107
@_gsathya
Sathya Gunasekaran
6 years
I'm presenting my slice notation proposal this week at TC39. Let's see how this goes 🙌 More info:
@littledan
Daniel Ehrenberg
6 years
Pretty packed agenda for TC39 this week. The agenda gives you a view into what TC39 is actively working on. Agenda items link to repositories which are great places to give feedback about anything about a proposal. See the slides to learn about proposals.
1
43
90
8
15
94
@_gsathya
Sathya Gunasekaran
5 years
I refactored @ChromiumDev 's async key/val storage implementation () to use the new private fields syntax as an example here:
Tweet media one
8
11
88
@_gsathya
Sathya Gunasekaran
5 years
After almost four amazing years, today is my final day in San Francisco. I'll be moving to London and will continue to work on @v8js :)
4
2
84
@_gsathya
Sathya Gunasekaran
6 years
I just shipped Array.prototype.values in Chrome 66 🎉 Chrome is trying to ship this for the third time! We had to unship it because of web compat issues. There's no way to know if apps are still broken, so please file an issue here if there's any problem:
4
20
83
@_gsathya
Sathya Gunasekaran
6 years
It's happening @wafflejs
Tweet media one
1
4
82
@_gsathya
Sathya Gunasekaran
7 years
Almost done implementing Promise.prototype.finally in V8
Tweet media one
4
34
80
@_gsathya
Sathya Gunasekaran
6 years
Made it to Stage1! 🎉
@_gsathya
Sathya Gunasekaran
6 years
I'm presenting my slice notation proposal this week at TC39. Let's see how this goes 🙌 More info:
8
15
94
9
10
77
@_gsathya
Sathya Gunasekaran
3 years
engineering at google: 2 weeks: prototype an idea next 2 quarters: write design docs, suffer analysis paralysis, make ppts, attend meetings, write OKRs, build consensus, write tons of tiny CLs, write more design docs, attend cross org/geo meetings, ship idea, write perf, CME
4
2
77
@_gsathya
Sathya Gunasekaran
7 years
Just added better error messages for destructuring in V8
Tweet media one
Tweet media two
2
8
71
@_gsathya
Sathya Gunasekaran
3 months
Looking forward to my very first React Conf! 🚀
@reactjs
React
3 months
We’re thrilled to announce that @zmofei @potetotes @_gsathya and @en_JS will be speaking at React Conf 2024!
Tweet media one
4
20
228
2
1
71
@_gsathya
Sathya Gunasekaran
7 years
Promise.prototype.finally shipping in Chrome 63 🚀
1
25
70
@_gsathya
Sathya Gunasekaran
3 years
lol Preact is so fast on the speedometer benchmark that the jit never kicks in
0
3
70
@_gsathya
Sathya Gunasekaran
4 months
Oh yeah, it'd be really cool if TypeScript could implement Flow's render types!
Tweet media one
@erikras
Erik Rasmussen 👨‍💻🇺🇸🇪🇸
4 months
It's a shame TypeScript can't *require* a specific kind of React component as children of another. It would make composibility libraries so much more powerful.
Tweet media one
32
7
240
4
7
66
@_gsathya
Sathya Gunasekaran
4 years
When creating object literals, put the computed properties last -- results in faster performance and smaller bytecode.
@_gsathya
Sathya Gunasekaran
4 years
Curious if folks know why there's a difference in performance here?
Tweet media one
Tweet media two
5
0
30
2
17
64
@_gsathya
Sathya Gunasekaran
6 years
I just shipped optional catch binding in Chrome 66 🛳️🚀 Thanks to @bakkoting for the implementation work! Proposal:
Tweet media one
4
18
63
@_gsathya
Sathya Gunasekaran
8 months
I wrote about side effecting a deopt in javascript: well, @v8js in particular but all engines probably do this
3
17
63
@_gsathya
Sathya Gunasekaran
7 years
Intent to ship: Promise.prototype.finally
3
21
59
@_gsathya
Sathya Gunasekaran
6 years
👀
Tweet media one
5
15
58
@_gsathya
Sathya Gunasekaran
5 years
I wrote about the work we've been doing on improving the Internationalization API in @v8js :)
@v8js
V8
5 years
The JavaScript Internationalization API is growing, and its V8 implementation is getting faster! @_gsathya explains the recent improvements:
Tweet media one
1
52
154
2
11
60
@_gsathya
Sathya Gunasekaran
6 years
After 4 years, Array.prototype.values is finally web compatible:
1
3
59
@_gsathya
Sathya Gunasekaran
7 years
V8 Intent to ship: Object rest/spread properties
0
18
59
@_gsathya
Sathya Gunasekaran
6 years
A good compiler tells you good error messages. A better compiler will tell you to eat breakfast
Tweet media one
1
0
55
@_gsathya
Sathya Gunasekaran
7 months
I still remember when we shipped ESM, the Blink folks did a bunch of work but couldn't make it fast enough and just recommended bundling in the end
@cramforce
Malte Ubl
7 months
Been there. Done that. Straight up does not work. In HTTP2 the per-request overhead is still very substantial and there are concurrency limits, plus you get waterfalls and inefficient compression. There is no way around bundling for high performance websites today.
57
114
1K
2
3
55
@_gsathya
Sathya Gunasekaran
6 years
undefined is not a function
@abstractionscon
Abstractions Conference
6 years
What five words best describe programming?
2K
288
788
0
3
51
@_gsathya
Sathya Gunasekaran
6 years
So I gave a talk and survived
Tweet media one
9
0
51
@_gsathya
Sathya Gunasekaran
10 months
first time on-call on the react team ✌️
5
0
46
@_gsathya
Sathya Gunasekaran
8 months
I'll be talking about how the React programming model makes React Forget possible!
@react_india
React India 🇮🇳
8 months
Join @_gsathya for his keynote: "Statically analysing react components for fun and profit". Go deep into React's programming model and discover why it's a goldmine for compilers and static analysis. #ReactIndia2023
Tweet media one
0
1
17
0
3
45
@_gsathya
Sathya Gunasekaran
7 years
I'm actually working on decreasing the memory size for these right now:
1
5
44
@_gsathya
Sathya Gunasekaran
6 years
OH at TC39: "I don't like JavaScript"
3
5
42
@_gsathya
Sathya Gunasekaran
7 months
Landed a bug in @v8js that dropped objects randomly from a Map/Set, if a property was deleted from one of these objects. Took forever to debug and libraries had to work around with a Chrome version check 😅 a Chrome version 62 check is my web legacy
@Aliafonzy43
Gatekeeping Persona(Aveta)👾🇭🇹
7 months
I would love to hear stories from senior+ engineers who pushed fuck ups to prod to know I’m not crazy for feeling some type of way to be told my code quality is poor due to code pushed to prod that I quickly fixed when I found the issues . Just wanna know if this is something…
279
168
2K
2
0
41
@_gsathya
Sathya Gunasekaran
7 years
More destructuring fun
Tweet media one
5
8
40
@_gsathya
Sathya Gunasekaran
8 months
There was a question on r/reactjs recently about why it's taking a while to build React Forget, I wrote a reply explaining _one_ of the challenges:
4
2
39
@_gsathya
Sathya Gunasekaran
7 years
Thanks to awesome work by @jankrems , @v8js has support for import.meta now!
Tweet media one
2
15
40
@_gsathya
Sathya Gunasekaran
7 years
Chrome 63 is going to be awesome: promise.prototype.finally, async iterators/generators and dynamic import
@_gsathya
Sathya Gunasekaran
7 years
Dynamic import: Intent to Ship
0
3
14
1
15
40
@_gsathya
Sathya Gunasekaran
6 years
This was surprising 🤨
Tweet media one
2
6
39
@_gsathya
Sathya Gunasekaran
6 years
At the @v8js HQ
Tweet media one
2
1
39
@_gsathya
Sathya Gunasekaran
6 years
Me reviewing @bmeurer 's 1000+ line CL
1
5
39
@_gsathya
Sathya Gunasekaran
5 years
If you're using Date.prototype.toLocaleString, please look into using Intl.DateTimeFormat instead for better performance. Here's a real world example of such a change: And as always, measure your improvements.
4
9
38
@_gsathya
Sathya Gunasekaran
5 years
About to go on stage now!🤞 #GoogleIO
@v8js
V8
5 years
Join @mathias and @_gsathya for their #io19 talk on modern JavaScript features and @v8js optimizations: Starting in 15 minutes!
1
16
59
2
1
37
@_gsathya
Sathya Gunasekaran
6 months
Wonder if the frontend tooling ecosystem will move back to JS with Static Hermes
@tmikov
Tzvetan Mikov
6 months
We wanted to show the performance and the insane power of the Static Hermes native FFI. But we don't yet support the all language features needed to compile React Native (soon though!), so we improvised. We imported the bindings for DearImGui (a popular C++ imperative game UI…
68
325
2K
1
1
37
@_gsathya
Sathya Gunasekaran
7 years
Hacking on class fields in V8
Tweet media one
1
5
36
@_gsathya
Sathya Gunasekaran
2 months
why do JavaScript features take a long time to get standardised in tc39? @bakkoting explains it so well here:
1
8
36
@_gsathya
Sathya Gunasekaran
5 years
import() is shipping in all the browsers but will probably never be part of the ECMAScript thanks to @TC39 committee politics 😞
@domenic
Domenic Denicola
5 years
@littledan @mikesherov Blockers are committee politics, which are not worth fighting given that import() is shipping in all browsers, fully test262 tested, and mandated to be implemented by the @htmlstandard .
1
0
21
2
9
34
@_gsathya
Sathya Gunasekaran
1 year
the latest on the cool stuff we're working on, including an update on the React compiler!
@reactjs
React
1 year
In React Labs posts, we write about projects in active research and development. Since our last update, we’ve made significant progress on our long-term projects, and we’d like to share what we’ve learned.
15
143
763
1
1
35
@_gsathya
Sathya Gunasekaran
6 years
Hopefully, the new Intl.RelativeTimeFormat proposal will help shave off more of the bundle size:
@addyosmani
Addy Osmani
6 years
Working with dates in JavaScript? Try . Shaved 50%+ off my bundle replacing Moment.js + locales with it. For more info see ✨
Tweet media one
46
706
2K
1
1
33
@_gsathya
Sathya Gunasekaran
6 years
I'm giving a talk at Google I/O with @mathias about the latest JavaScript features in V8!
@v8js
V8
6 years
🔥 Google I/O features not one but *two* @v8js presentations!   @mathias and @_gsathya talk about modern JavaScript features and optimizations:   @ThomasTheDane covers what you can create with WebAssembly:   See you there!
Tweet media one
0
29
120
2
2
32
@_gsathya
Sathya Gunasekaran
6 years
I wrote about the work I did on optimizing hash tables in @v8js here:
@v8js
V8
6 years
In JavaScript, Map/Set/WeakSet/WeakMap all use hash tables under the hood. @_gsathya recently boosted their performance by improving the way V8 stores the keys in hash tables:
Tweet media one
6
108
341
2
8
32
@_gsathya
Sathya Gunasekaran
6 years
Whole bunch of @v8js folks out at @wafflejs tonight!
Tweet media one
5
2
31
@_gsathya
Sathya Gunasekaran
1 year
it's interesting that Forget probably can't exist without hooks `this` is just too hard for a compiler to reason about
2
0
31
@_gsathya
Sathya Gunasekaran
7 years
New job: Faculty in the department of @v8js
Tweet media one
1
0
30
@_gsathya
Sathya Gunasekaran
4 years
Curious if folks know why there's a difference in performance here?
Tweet media one
Tweet media two
5
0
30
@_gsathya
Sathya Gunasekaran
4 years
working on a high performance compiler has led me to some bad coding practices - micro optimization is awesome - clusterfuzz writes my tests - write comments that describe literally what the code does
1
2
29
@_gsathya
Sathya Gunasekaran
5 years
Wow never thought I'd actually break down in the office new life lesson learnt
13
0
29
@_gsathya
Sathya Gunasekaran
6 years
Randomly met up with a redittor from a London subreddit and they turned out to be a Facebook engineer working on a JavaScript VM 🤣 👌
1
1
29
@_gsathya
Sathya Gunasekaran
6 years
This is one of the reasons why we ship new JavaScript language features early behind a feature flag in @v8js -- developers can play with them and provide feedback to the proposal champions.
Tweet media one
0
5
29
@_gsathya
Sathya Gunasekaran
6 years
👀
3
8
28
@_gsathya
Sathya Gunasekaran
1 year
Never have I refreshed my email so much
3
0
28
@_gsathya
Sathya Gunasekaran
1 year
no pressure 👀😅
@mrousavy
Marc
1 year
React Forget is gonna be a gamechanger
10
1
100
4
0
28
@_gsathya
Sathya Gunasekaran
1 year
In sunny ☀️ Krakow 🇵🇱 for @appjsconf !
Tweet media one
0
1
28
@_gsathya
Sathya Gunasekaran
3 years
js in 2010 was all about peak perf js in 2020 is all about that baseline perf
@jandemooij
Jan de Mooij
3 years
@andywingo MIR building is faster, but more importantly: TI only helped code running in Ion, it made other tiers and VM code slower (recording property types etc). OK for micro-benchmarks but terrible trade-off for the modern web (massive amounts of cold-ish code).
0
2
4
2
5
27
@_gsathya
Sathya Gunasekaran
7 years
w00t my first feature implementation in V8
@mathias
Mathias Bynens
7 years
Object rest and spread properties to ship in Chrome 60:
5
134
244
4
3
27
@_gsathya
Sathya Gunasekaran
6 years
Ha it's nice to see @v8js talking in various Indian languages 💥 More info:
Tweet media one
2
3
27
@_gsathya
Sathya Gunasekaran
6 years
👀
Tweet media one
3
7
26
@_gsathya
Sathya Gunasekaran
6 years
I'm working with the Chrome on Android team for a bit and they got me a phone to optimize @v8js for. This phone scares me.
Tweet media one
Tweet media two
2
2
26
@_gsathya
Sathya Gunasekaran
6 years
class X { static ['x'] = function() { return 1; }; static ['x']() { return 2;} } console.log(X.x()); // prints 1 ... 🙃
4
5
26
@_gsathya
Sathya Gunasekaran
3 years
life at goog has made me realize some imp priorities at new job ✅ scored a 3 letter username
2
0
26
@_gsathya
Sathya Gunasekaran
6 years
Wearing my Firefox shirt in honor of the new quantum release. Go web!
Tweet media one
1
0
25
@_gsathya
Sathya Gunasekaran
7 years
Promises be so faaaaast 🚀
Tweet media one
1
3
25
@_gsathya
Sathya Gunasekaran
1 year
tired: auto memoizing compiler wired: auto reactivity compiler
3
1
25
@_gsathya
Sathya Gunasekaran
7 years
"Our real world app is 32% faster, but this synthetic benchmark is 38% slower so turbofan is slow." 🤔
1
3
24
@_gsathya
Sathya Gunasekaran
6 years
Coming soon to @v8js ! 🔥
Tweet media one
0
5
24
@_gsathya
Sathya Gunasekaran
7 years
Shots fired
Tweet media one
1
2
23
@_gsathya
Sathya Gunasekaran
6 years
Whoa @addyosmani is my mentor for a talk I'm giving with @mathias 💯
1
1
24
@_gsathya
Sathya Gunasekaran
7 months
Talk prep with pretty views ⛱️💻 @react_india
Tweet media one
Tweet media two
Tweet media three
1
2
24
@_gsathya
Sathya Gunasekaran
5 years
It's interesting to see how my views on evaluating language features have completely changed, influenced by seeing V8 optimize for startup performance. Performance at the baseline tier (and not the JIT) is my yardstick now.
2
1
23