Ben Lesh Profile Banner
Ben Lesh Profile
Ben Lesh

@BenLesh

63,684
Followers
1,598
Following
4,524
Media
52,026
Statuses

#RxJS core team lead. Dad. Art Lover. Literally not paid by the observable, or for anything RxJS-related. My views actually belong to @_jayphelps . he/him

Austin, TX
Joined March 2009
Don't wanna be here? Send us removal request.
Pinned Tweet
@BenLesh
Ben Lesh
3 months
Zack lost his little girl tragically in a housefire. In this unfair world, he’s now faced with the financial burden of this tragedy. I’m offering an 8hr RxJS training to anyone that sends me proof they donated $200 or more. This is half as much as you would pay at a conference
@zackderose
Zack DeRose
3 months
“Don't worry Sadie, daddy's going to walk you home darling. I'm so sorry that you're going to be there alone, my sweet girl - I still have to be strong for your brothers and sisters. But I promise when my time here is done, I will come find you. Daddy will find you, and then…
29
51
341
3
76
210
@BenLesh
Ben Lesh
5 years
1/ Me at age 38, versus me at age 42. Today is my birthday. I'm not posting this just to show off. (I mean I am proud) I'm posting this because I am hoping it inspires somebody to do something to take care of themselves consistently.
Tweet media one
Tweet media two
149
210
4K
@BenLesh
Ben Lesh
3 years
I seriously don't understand how people are parents, employees, do open source, and have time for hobbies and other interests. My life is on autopilot, barely a gap in time where I'm not exhausted. Especially during this pandemic.
128
238
3K
@BenLesh
Ben Lesh
6 years
If you're a complete beginner starting off in JavaScript, there is nothing wrong with just learning a framework up front. Don't listen to people that say you have to master fundamentals first. You have to master them *eventually* but you need to have fun and be productive first.
124
724
3K
@BenLesh
Ben Lesh
3 years
When I first flew out to interview at Netflix in 2014, I didn't think I was qualified. I found myself -- an overweight, 37 year old father of 3, with no college degree -- sitting next to two bright, young fresh college grads. One from MIT, the other Carnegie Melon.
53
374
3K
@BenLesh
Ben Lesh
3 years
You have years to learn the minutiae of web development. The first thing you should learn is whatever gets you paid.
@zenorocha
Zeno Rocha
3 years
Junior developers these days...
Tweet media one
122
2K
7K
39
312
3K
@BenLesh
Ben Lesh
6 years
Open Source is such a strange thing. The open source work I do is clearly the most impactful work I do, but no one wants to pay me to work on it. Yet I'm asked to speak about it, and the work I'm actually *paid* to do no one really wants to hear about. 🤔
57
629
2K
@BenLesh
Ben Lesh
4 years
PSA: THIS IS NOT WHAT "WORKING FROM HOME" IS LIKE I've been working from home for nearly a year. What's going on now is very different. Kids are home. Everything is shut down. Supplies are critical. Stress is high. Worries are high. WFH is usually more streamlined than this.
37
531
2K
@BenLesh
Ben Lesh
5 years
If you'd have told me 15 years ago, when I was a Windows developer writing C#, and using GUIs for everything, that I'd now be writing JavaScript on a Linux machine with a text editor and spending hours a day in terminal, I'd have thought you were crazy. Keep an open mind in tech
40
366
2K
@BenLesh
Ben Lesh
5 years
After a bad experience on Twitter a while back, about 80% of the time I type up a tweet, usually to say something fun, help, or even encourage someone else, I delete it and walk away, out of fear that something I don't see in it will offend someone.
125
299
2K
@BenLesh
Ben Lesh
5 years
Folks, changing names away from things like "master" and "slave" or "whitelist" and "blacklist" is about making everyone feel welcome MATTERS + Inclusion DOES NOT MATTER + Your feelings on "what the world is coming to" + Your "slippery slopes" + Your "well actually" etymologies
139
465
2K
@BenLesh
Ben Lesh
5 years
Friends: JSX, CSS-in-JS, just say no! SEPARATE YOUR CONCERNS! Separation of concerns by file IS NOT ENOUGH. Concerns must now be in separate docker containers. Ideally in different AWS regions. Don't let that HTML touch your JavaScript! Don't do it! Just think of the concerns!
73
346
2K
@BenLesh
Ben Lesh
3 years
Add comments about WHY code exists, not what it does. The code is right there, we know what it does. Developers that can't or don't write good comments aren't great developers yet.
Tweet media one
Tweet media two
65
357
2K
@BenLesh
Ben Lesh
3 years
Dear JavaScript `str.split('')` users of the world: Please consider the following: `[...str]` Use cases and mileage may vary.
Tweet media one
28
258
2K
@BenLesh
Ben Lesh
6 years
StackOverflow usage pattern: 1. Find a question related to your needs 2. Find the accepted answer 3. Scroll down to find the BETTER answer that wasn't accepted. 4. Wish you could change the accepted answer.
41
409
2K
@BenLesh
Ben Lesh
4 years
- Visual Studio Code - GitHub - npm - Edge is now Chromium-based @Microsoft used to be the closed-source "M$" back in the day. Now I have to say I'd actually want to work for them, as they seem like good stewards of open source. Time will tell, I guess.
57
194
2K
@BenLesh
Ben Lesh
2 years
From Reddit
Tweet media one
24
217
2K
@BenLesh
Ben Lesh
5 years
Folks, DO NOT STOP using console.log. Stepping through code and logging are two different things, with different use cases. One gives you a few into what's happening at a specific time, the other gives you a view into what's happening over time.
@calebporzio
Caleb Porzio
5 years
🔥 STOP USING console.log() in JavaScript. There's something just as easy and WAY more powerful!
148
1K
4K
63
350
2K
@BenLesh
Ben Lesh
5 years
I've often seen people getting the first item out of an array using `filter(fn)[0]`, when the really wanted `find(fn)`. The former will loop over *all* the items, *and* create an additional array. The latter will find the first one, return it, and stop. Should be a lint rule 🤔
Tweet media one
38
347
2K
@BenLesh
Ben Lesh
4 years
I disagree with this advice. Start with whatever makes you happy and productive and learn from there. Don't let people tell you how you should be learning, you need to figure that out on your own (You should learn fundamentals eventually)
@themarcba
Marc Backes
4 years
A gentle reminder to learn #JavaScript before jumping in a framework ☺️
Tweet media one
90
693
4K
130
224
2K
@BenLesh
Ben Lesh
4 years
Redux: You know EXACTLY where your state is. ...You just don't know where the code that manages your state is.
52
228
2K
@BenLesh
Ben Lesh
5 years
.. And their families.
Open Source isn't free; it's paid for by the maintainers.
41
845
3K
8
273
2K
@BenLesh
Ben Lesh
3 years
People have a really bad habit of criticizing open source software they once benefited from, or possibly never even used. It's free software. If you prefer something else, that's great. But you don't need to crap on someone else's hard work. Make the world better, not worse.
44
206
2K
@BenLesh
Ben Lesh
5 years
I just realized in 21 years, I've never worked at a company where I saw an engineer get a promotion except Google. And at Google, you basically have to move a mountain to get one if you're senior. I think everywhere else people just find new jobs for promotions. 🤔
115
188
1K
@BenLesh
Ben Lesh
6 years
After 20 years of web development I finally can stop rolling my own dialogs! 🎉🎉🎉 HTML 5.2 features a <dialog> element. It's already supported in #Chrome , and Chrome was nice enough to provide a polyfill for it as well! 💕
18
649
1K
@BenLesh
Ben Lesh
5 years
Last day! Goodbye Google! 👋 This was an amazing experience!
Tweet media one
31
47
1K
@BenLesh
Ben Lesh
8 months
Today I learned that node's EventEmitter suffers from an issue called "producer interference". That's where an error thrown by a synchronous consumer (whomever called `on`) prevents the producer (the `EventEmitter`) from notifying subsequent other consumers. This is something…
Tweet media one
31
178
1K
@BenLesh
Ben Lesh
5 years
That moment when you first look inside an old code base you're unfamiliar with.
@sofain
So Fain
5 years
A look inside a tree that has been struck by lightning.
3K
118K
455K
13
265
1K
@BenLesh
Ben Lesh
4 years
Over-engineering is a serious problem. In my opinion, the more brilliant and ambitious somebody is, the more guilty they are of over-engineering solutions and overstating the benefits of it.
67
218
1K
@BenLesh
Ben Lesh
6 years
IMO, the #JavaScript pipeline operator is the single most important proposal on the #TC39 's docket, whether they know it or not. It will unlock so many powerful new functional patterns in JavaScript, and even drastically improve #TypeScript
Tweet media one
64
553
1K
@BenLesh
Ben Lesh
3 years
Here's a proposal that is at stage 3, that I think will surprise people when they start seeing it in code soon-ish. The `at` method on indexables will allow you to do negative selections that start in the back of the indexable (arrays).
Tweet media one
42
210
1K
@BenLesh
Ben Lesh
4 years
🚨🚨🚨🚨🚨🚨 Are you a web developer? Do you wish you could do SOMETHING about the pandemic? Then contribute to this OPEN SOURCE project that helps hospitals plan for #COVID19 !
20
607
1K
@BenLesh
Ben Lesh
5 years
Since I did not have a classic CS background, having dropped out of art school. I had to learn CS vernacular "the hard way". I'm pretty solid after 21 years. But imagine where I'd be without patient coworkers willing to explain things. BE KIND. ♥️
13
167
1K
@BenLesh
Ben Lesh
5 years
Pro-tip: When you need to kill a process in Terminal, mash CTRL + C over and over and over again obsessively until the process stops. This works _exactly_ like up buttons on elevators and crosswalk buttons. THE FASTER AND HARDER YOU PRESS IT, THE FASTER IT WORKS!
48
245
1K
@BenLesh
Ben Lesh
4 years
Anyone that looks at existing code and thinks "What is this garbage?" and criticizes the previous author is probably missing context, and just doesn't have the experience to know how this happens. Old code bases, months or years of quick fixes, long nights. It happens. 1/2
62
245
1K
@BenLesh
Ben Lesh
3 years
IMO, the best programming language is the one that I get paid to write.
36
115
1K
@BenLesh
Ben Lesh
5 years
If you want to move your family to Silicon Valley today, and you want to own a (modest*) home you must: + Have > $300K in the bank + AND have a collective, liquid (not stock), household income of > $200K/year + AND Ideally be under 35* Otherwise, turn back. (1/5)
55
271
1K
@BenLesh
Ben Lesh
9 months
Open source is fun and rewarding.
Tweet media one
42
49
1K
@BenLesh
Ben Lesh
6 years
The pipeline operator could be the single best feature since destructuring added to JavaScript if it lands IMO. If I had to choose between this and Observable landing in JS, I'd honestly choose the pipeline operator, @littledan . I'm a big fan
Tweet media one
56
420
1K
@BenLesh
Ben Lesh
3 years
How to spot a React app in the wild.
Tweet media one
Tweet media two
45
80
1K
@BenLesh
Ben Lesh
4 years
Cyberturk
Tweet media one
18
225
1K
@BenLesh
Ben Lesh
5 years
So today was the first day where I was working from home, and I got to have lunch just me and my 8yo son. He chose McDonald's. I wouldn't trade that lunch for a thousand free lunches at Google, et al. #remotework is the best.
24
91
1K
@BenLesh
Ben Lesh
3 years
My 12 year old daughter has opinions about my opinions
Tweet media one
17
35
1K
@BenLesh
Ben Lesh
5 years
Hot take: Jenkins is awful, its docs are awful, and configuring it is a dumpster fire.
86
104
1K
@BenLesh
Ben Lesh
3 years
Friday #JavaScript hot take `export default` is bad. Don't do it. Ever.
74
139
1K
@BenLesh
Ben Lesh
5 years
Mantis is probably one of the most impressive things in Netflix's tech stack. I never thought they'd open source this. I worked on one of the first tools to consume it. Real-time, streaming events at scale!
10
228
1K
@BenLesh
Ben Lesh
3 years
TIL that Error objects in #JavaScript will leak closures until you read `stack`. So don't keep them around. In other words, everything in the closure at the point `new Error` was called, will stick around for as long as you have a reference to the error until you read `stack`.
Tweet media one
15
263
1K
@BenLesh
Ben Lesh
4 years
git reset origin/2014 --hard
20
195
1K
@BenLesh
Ben Lesh
7 months
Async await is super awesome... until it's not and it's not obvious to newer developers. Lint your code, folks.
Tweet media one
119
54
985
@BenLesh
Ben Lesh
4 months
I just saw a form with a DROP DOWN LIST for the MIDDLE INITIAL!!! 🤣☠️
Tweet media one
62
36
981
@BenLesh
Ben Lesh
3 years
Thinking about the Nigerian government blocking Twitter: They have no idea that Nigerians were making serious headway getting recognition in American tech twitter. That's a gateway to a LOT of money and jobs. It's all about the Nigerian president's pride. SMH.
38
390
940
@BenLesh
Ben Lesh
5 years
Dear developers, you don't have to know everything. That said, you really should *try* everything you can. And do it with an open mind and as little bias as you can. You owe it to yourself and your team. Just understand the difference between knowing and trying. Fight "fatigue"
12
305
953
@BenLesh
Ben Lesh
5 years
z-index: 99999999 !important
34
176
953
@BenLesh
Ben Lesh
5 years
💥React Suspense is SO SIMPLE!💥 I played with it for less than 30 minutes and I completely understand every single aspect of it. In fact, I can explain the entire concept in as little as two tweets. To start, the very first thing that you need to understand about Suspense is...
41
123
902
@BenLesh
Ben Lesh
4 years
Cancellation with promises and async-await is deceptively complicated in #JavaScript These two code examples are equivalent. RxJS wrapping a `getData()` that returns a promise, vs using async-await and accounting for cancellation.
Tweet media one
Tweet media two
27
208
886
@BenLesh
Ben Lesh
6 years
#RxJS 6.0.0 is released! Highlights - cleaner imports, smaller API - backwards compat package (update without changing your code!) - automatic code migration for TypeScript ❤️ THANK YOU TO ALL THE WONDERFUL PEOPLE THAT HELPED WITH THIS RELEASE! ❤️
19
480
872
@BenLesh
Ben Lesh
5 years
Things I've done several times in the past and never want to do again: - Setting up a network - Building computers - Configuring JS builds/bundlers - Arguing on social media - Drinking until I throw up They all start off fun, but are totally regrettable experiences in the end.
28
94
871
@BenLesh
Ben Lesh
4 years
Short rant: async/await is cool, but it is FULL of footguns. It makes complicated problems look so simple you can fall on your face and not see it. I submit to you all that this is bad code waiting to happen. (Shown in "react-esque" psuedo code) 1/
Tweet media one
73
199
859
@BenLesh
Ben Lesh
5 years
VS Code, Prettier, and format on save ...but for cleaning my room.
24
114
840
@BenLesh
Ben Lesh
5 years
I decided to build a box fort for my 4 yr old out of some of our moving boxes... And maybe it got out of hand. 😅
Tweet media one
Tweet media two
Tweet media three
27
26
815
@BenLesh
Ben Lesh
1 year
“Content” on LinkedIn.
Tweet media one
Tweet media two
32
15
780
@BenLesh
Ben Lesh
4 years
I'm a Vim user. I know I'm a Vim user because I've been stuck in Vim, unable to leave, for the last 6 years.
43
87
785
@BenLesh
Ben Lesh
4 months
Sigh. Fine. Tailwind is good. Like... actually good. If you're reading this and you're happy... I hate you.
70
26
789
@BenLesh
Ben Lesh
4 years
My method of developing with flex-box: Try every combination of settings on every element I think matters until something is close enough. ...and sometimes... Give up and go back to ancient CSS strategies where I know what I'm doing.
46
69
777
@BenLesh
Ben Lesh
4 years
Things I care about when it comes to tech leadership, and tech folks in general: 1. That you're kind Things I don't care about: 1. What framework/libs you use 2. Your lighthouse score 3. Your views on "the platform" 4. Your intellectual prowess
20
126
779
@BenLesh
Ben Lesh
5 years
I'm really excited to announce that I'm moving to Austin, TX in July to pursue my next opportunity. I barely know anyone in Austin, and I've literally never been there, haha. But I'm pumped about this change of scenery, nonetheless. Any meetups or groups I should know about?
139
20
771
@BenLesh
Ben Lesh
4 years
#TypeScript 4.0 will add support for marking APIs as deprecated in your IDEs! (This is a big deal for library authors)
Tweet media one
5
168
773
@BenLesh
Ben Lesh
7 years
I'm excited to announce that I'm joining @Google ! Looking forward to a new chapter in my career.
106
64
764
@BenLesh
Ben Lesh
1 year
This is my favorite bit of code I've found in a bit. @brian_d_vaughn 👏👏👏
Tweet media one
22
59
771
@BenLesh
Ben Lesh
1 month
A lot of smart folks have been working on this proposal to bring native signals to JavaScript. …Also I’ve been helping the smart people. Have a look.
25
138
774
@BenLesh
Ben Lesh
6 years
In the picture on the left, I'm 40. On the right, 38 (maybe 37?). It was hard learning to care for myself, eat right, exercise, treat myself and my mental and physical health as important. Thanks for making me feel good this morning, @ladyleet
@ladyleet
Tracy Lee | ladyleet
6 years
@benlesh made you a thing.
Tweet media one
4
1
66
32
48
765
@BenLesh
Ben Lesh
4 years
When you've already committed your changes, and you realize you want to add just one more last finishing touch to your last commit, but you don't want to type up your commit message again. (This happens to me all the time) You can do the following...
Tweet media one
28
159
758
@BenLesh
Ben Lesh
4 years
@EmmaBostian I used to do this all the time and give up and delete the local and reclone... but I've learned things. You can use `git reflog` to find where it was happy and `reset --hard` to that. Then try again. (I know you weren't looking for an explainer, but just incase anyone else is)
24
55
754
@BenLesh
Ben Lesh
10 months
Folks... this is a BIG DEAL. Things to know: 1. This is NOT "adding RxJS to the browser". There's a limited but solid set of functionality here. Not operator hell. 2. Adding observables to the platform means that many, many frameworks and libraries can leverage them instead of…
@domfarolino
Dominic Farolino
10 months
Hey reactive JS folks! I'm working to bring Observables to the web platform by reviving a @thedomstandard proposal that got some attention a while ago. @BenLesh and I would love your feedback, so check out if you want to do things like this soon:
Tweet media one
37
121
800
28
124
743
@BenLesh
Ben Lesh
4 years
Apparently, someone did a find and replace of "var" 5 years ago... 🤣🤣🤣🤣🤣 "constying"
Tweet media one
18
33
726
@BenLesh
Ben Lesh
4 years
I finally got around to writing about some things I wish I'd have done better and communicated better about #RxJS and observables.
27
205
732
@BenLesh
Ben Lesh
3 years
The point of this story is this: This industry can be intimidating to anyone. Every now and then I'm lumped into a group like that makes it sound like I always belonged, or weirder, that I expected to belong in tech. In truth, I am always worried I'd be outed as a mistake.
7
29
721
@BenLesh
Ben Lesh
3 years
Frameworks with first-class support for RxJS: + Angular + Svelte + Vue* Frameworks that don't: - React Frameworks I use at work: - React 🤦‍♂️
43
51
714
@BenLesh
Ben Lesh
5 years
Quite often I feel I'm watching engineers engineer things for the sake of engineering things. It just seems like there's a lot of "isn't this cool?" and not enough "should we be doing this?"
28
143
701
@BenLesh
Ben Lesh
6 years
I'm frequently asked by beginners, "Where do I start?" Start with fun, start with curiosity. Cramming knowledge is all well and good, but you'll burn yourself out doing that. The path to success isn't *all* blood and sweat. If it's not fun, you'll either give up or suck at it.
22
166
700
@BenLesh
Ben Lesh
4 years
FYI: In #JavaScript can spread and destructure more than just Arrays. This works with any iterable. That means you can destructure or spread strings, generators, Sets, Map values, etc. Even custom types that implement `[Symbol.iterator]`!
Tweet media one
Tweet media two
Tweet media three
11
192
693
@BenLesh
Ben Lesh
1 year
I have been laid off. I’m looking for a role where I can have impact. I especially like developing things that make other developers' lives easier. (Insert RxJS joke). I have a lot of experience in canvas, language parsing, data visualization, perf, and low level JS/TS.
67
162
690
@BenLesh
Ben Lesh
6 years
#JavaScript fun fact: You can pass arguments to setTimeout or setInterval's callbacks: function logThings(a, b, c) { console.log(a, b, c); } // calls logThings('arg1', 'arg2', 'arg3') after 1 second setTimeout(logThings, 1000, 'arg1', 'arg2', 'arg3');
9
167
679
@BenLesh
Ben Lesh
4 years
This was the primary driver for me leaving Google. Best decision I've ever made. I'll never, ever return to Silicon Valley. The "culture" at big tech companies wasn't so fundamentally "different" or "good" that it was worth cramping my family into a tiny upstairs apartment.
27
60
661
@BenLesh
Ben Lesh
3 years
This is where I'm at with anti-mask rhetoric. I've got one kid quarantining at home who was exposed because of anti-mask, anti-vaccine nonsense. In an area where the ICUs are full. Never meet your heroes.
Tweet media one
48
44
668
@BenLesh
Ben Lesh
2 years
Absolutely nothing can cost your company more than tech managers that suck They can stagnate projects, create massive amounts of tech debt and bugs that you will have to pay for, drive off talent/business knowledge, and repel new talent. All without typing a single line of code.
16
123
660
@BenLesh
Ben Lesh
2 years
Ligatures are unnecessary. Don’t use them when teaching others.
Tweet media one
40
60
656
@BenLesh
Ben Lesh
4 years
Default exports are stupid and shouldn't exist. muteThread();
47
73
637
@BenLesh
Ben Lesh
4 years
I've FINALLY started writing a comprehensive guide to #RxJS for the documentation! My goal is to dump every bit of knowledge I can convey, as simply as possible, for everyone: It's about 30% complete and it's a WIP:
17
121
639
@BenLesh
Ben Lesh
1 year
My 8yr old made herself a bookmark. I haven’t seen the bookmark, but these are the scraps I found on the counter. 🤣
Tweet media one
40
5
641
@BenLesh
Ben Lesh
3 years
A horror story. Just wait until the even more terrifying sequel: CSS
Tweet media one
18
66
629
@BenLesh
Ben Lesh
4 years
Whenever I type conditionals checking to see if a value is between two other values, I always make sure they read right-to-left. This is a personal preference thing, but I think it helps readability.
Tweet media one
29
90
634
@BenLesh
Ben Lesh
5 years
I couldn't be more excited to be moving to Austin, TX. I wake up like a little kid waiting for Christmas, every day it gets closer. Just thinking about giving my kids a yard to play in (TX hot or not) has me giddy.
58
5
623
@BenLesh
Ben Lesh
4 years
Facebook is basically where you go to communicate with elderly family members, and argue with low-level racist, right-wing distant relations.
29
41
621
@BenLesh
Ben Lesh
3 years
Or... just use a for loop. 🤷‍♂️
@coderitual
coderitual
3 years
🤔 How to short circuit Array.forEach like calling break? 🌈 Use Array.some #javascript #fantasyland #functionalprogramming
Tweet media one
24
79
431
35
45
615
@BenLesh
Ben Lesh
2 years
Just put everything in a setTimeout and add more delay until it works.
31
38
617
@BenLesh
Ben Lesh
6 months
I saw a CyberTruck driving down the road today! Honestly, it looks better in promo photos than in real life. My girls didn’t know what a CyberTruck was, and literally laughed at it. Rolling down the road next to normal cars, it looked like it was a community college science…
Tweet media one
Tweet media two
106
43
618
@BenLesh
Ben Lesh
5 years
My 4 year old girl just yelled "zoology, bitch!" in the context of playing with toys animals. I'm uncertain how I should proceed. 🤔
32
25
617
@BenLesh
Ben Lesh
5 years
Here is a quick doodle I did today of my daughter Lily, in her favorite pajamas, riding a velociraptor. Probably the only #inktober you will see out of me. I don't often share what I draw or paint. But @coderinheels told me I should
Tweet media one
42
19
615
@BenLesh
Ben Lesh
4 years
Everyone has these swank job titles now. VP, Principal Something-Something Architect. I'm sorta jealous. I'm just a "Software Engineer" (I think?) at 23 years in. Actually, I have no idea what my title is, so I just say "Software Engineer".
44
26
613