sophie alpert Profile Banner
sophie alpert Profile
sophie alpert

@sophiebits

65,013
Followers
949
Following
623
Media
17,592
Statuses

be kind, be curious 🏳️‍🌈 she/her

san francisco
Joined May 2007
Don't wanna be here? Send us removal request.
Pinned Tweet
@sophiebits
sophie alpert
2 years
logging lets you travel through time debuggers let you travel through space
18
75
533
@sophiebits
sophie alpert
5 years
Timeless software engineering skills: 1. Not feeling scared to change code you didn't write 2. Empathy for your users and for your collaborators 3. Ability to communicate ideas clearly I'd hire someone with these skills any day.
105
2K
7K
@sophiebits
sophie alpert
4 years
no I actually did not want to search google for `localhost:8080`, thank you
60
459
6K
@sophiebits
sophie alpert
6 years
life hack: console log function that auto-indents based on the depth of your call stack
Tweet media one
71
1K
5K
@sophiebits
sophie alpert
3 years
Knuth check
Tweet media one
103
267
5K
@sophiebits
sophie alpert
6 years
To the YouTube commenters saying me being a “thing in a dress” takes away from the content of my keynote: I was React’s #1 committer for its first 5 years, and now I manage the team. This content wouldn’t _exist_ without me. Would be cool if you respected me as a person too.
226
654
5K
@sophiebits
sophie alpert
2 years
365/365
Tweet media one
Tweet media two
124
86
4K
@sophiebits
sophie alpert
2 years
concept: german bakery named Gluten Tag
60
296
4K
@sophiebits
sophie alpert
5 years
Just got out of an interview during which the candidate searched Stack Overflow and copy-pasted some code… from an answer I wrote. (They didn’t notice.)
137
255
4K
@sophiebits
sophie alpert
1 year
I have 10 years of react experience
Tweet media one
75
130
4K
@sophiebits
sophie alpert
4 years
Last week, I was promoted to head of engineering at work!
137
24
4K
@sophiebits
sophie alpert
5 years
Today's my last day at Facebook. I'm gonna miss working on React full time, but I'm excited to try something smaller and new: I'm joining @humuinc next week as an engineer.
215
140
3K
@sophiebits
sophie alpert
6 years
Today's props go to Airbnb, who kindly edited my new name and pronouns into all the past reviews I've received from hosts – so new hosts who read them aren't confused. I feel appreciative of processes that aren't garbage to trans people.
15
253
3K
@sophiebits
sophie alpert
6 years
My programming strategy: if something can be fixed or made better in less than 15 minutes, don’t file a task for later or for someone else: just do it!
89
524
2K
@sophiebits
sophie alpert
4 years
Unpopular opinion: moving "constants" that are used once to the top of the file is often less readable/maintainable than leaving them inline
124
141
2K
@sophiebits
sophie alpert
5 years
I’m 26 today! 🎂 happy birthday to me
Tweet media one
258
19
2K
@sophiebits
sophie alpert
4 years
The real “clean code” is code that is easy to understand, verify, and change. Which often means more repetition and less abstraction.
34
378
2K
@sophiebits
sophie alpert
5 years
Don't listen to people who tell you your tools are bad. If you're happy with your tools and they're helping you build great stuff, that's all you need.
30
346
2K
@sophiebits
sophie alpert
5 years
my rule for .reduce(): only use it when the result has the same type as the items and the reducer is associative, like .reduce((a, b) => a + b, 0) ✅ summing some numbers ✅ multiplying some numbers 🚫 building up a list or object 🚫 just about anything else (use a loop)
106
285
2K
@sophiebits
sophie alpert
5 years
My one tip for organizing code: If two files are usually edited together, combine them into one. That is, organize your code to minimize the number of files (or directories) that the average commit needs to touch.
72
292
2K
@sophiebits
sophie alpert
5 years
> aGkgdHdpd… me: I have no idea what this is > aGkgdHdpdHRlcg== me: oh it’s base 64
26
210
2K
@sophiebits
sophie alpert
6 years
In this community we respect all people. If you have a problem with that, you don’t have to use React.
32
146
2K
@sophiebits
sophie alpert
3 years
Simply have no feelings, write clean code, and you will be successful here
26
80
2K
@sophiebits
sophie alpert
4 years
if I was starting a new company I’d seriously consider using Rails not because I agree with most of their technical decisions (I actually disagree with a lot of them!) – but because having a Polished, Proven Universe That Works is _super_ valuable
55
141
2K
@sophiebits
sophie alpert
5 years
dinner with the @reactjs team!! first time I’ve seen the whole team in one place since 2016 💖💖
Tweet media one
25
40
2K
@sophiebits
sophie alpert
3 years
instead of frontend vs backend as the two Main Types Of Engineers maybe we should talk about low-level code vs high-level product vs infra external users vs internal users
30
160
2K
@sophiebits
sophie alpert
7 years
Really excited to share with all of you: I'm trans! Today is a great day because I get to start being me. 💖
154
51
2K
@sophiebits
sophie alpert
5 years
Good API design is the hardest part of building libraries.
29
195
1K
@sophiebits
sophie alpert
3 years
at facebook someone told me, “coding is the most important part of being an engineer, which is why 2/4 of the onsite interviews are coding”, which only seems like a worse and worse take as I think about it each passing year
40
60
1K
@sophiebits
sophie alpert
4 years
Someone asked me today about the differences between Google’s and Facebook’s engineering cultures. Based on what I know, here’s what I said:
18
260
1K
@sophiebits
sophie alpert
5 years
hey it’s been two whole years since I came out! 🥳💖🏳️‍🌈
35
5
1K
@sophiebits
sophie alpert
5 years
literally just got an email offering me $600 if I send a pull request to their project because of the visibility it’ll give them what is the world coming to
Tweet media one
82
182
1K
@sophiebits
sophie alpert
6 years
Happy 5th birthday, React!
Tweet media one
17
204
1K
@sophiebits
sophie alpert
5 years
After getting back into app dev, I feel like the React team has * underestimated how much code in apps is related to data fetching/management * overestimated how complex data reqs for most apps are. At least, I did! Now feeling like a read only react-fetch pkg _would_ cover 95%.
52
111
1K
@sophiebits
sophie alpert
5 years
you can see me today because it’s #TransDayOfVisbility ! being me is one of the best things I’ve ever done 🏳️‍🌈
Tweet media one
13
33
1K
@sophiebits
sophie alpert
1 month
he didn’t notice 500ms of latency in his own workflow; he was investigating the source of high sshd CPU usage reported in performance monitoring tools
Tweet media one
7
49
1K
@sophiebits
sophie alpert
5 years
I think it's time for a new profile picture
Tweet media one
39
4
1K
@sophiebits
sophie alpert
7 years
React v16 is out! 😄 Read my post going behind the scenes of how we rewrote the whole thing: .
31
524
1K
@sophiebits
sophie alpert
3 years
google cloud support, week 1: are you sure you’re not using it wrong week 2: ok we’re looking into your problem week 3: we’re still looking week 4: still looking week 5: it’s been a month so we don’t have the logs any more to investigate. case closed! ✅
28
46
1K
@sophiebits
sophie alpert
3 years
What you should take away from this: In a typical app, tons of components only rerender when there’s new data. This will let you run those components on the server instead. Which reduces client bundle size. A lot.
@reactjs
React
3 years
As 2020 comes to an end we wanted to share a special Holiday Update on our research into zero-bundle-size React Server Components. The demo is available now whether you want to play with it during the holiday, or when work picks back up in the new year.
Tweet media one
163
1K
5K
23
191
1K
@sophiebits
sophie alpert
3 years
Returning from a 1-week vacation is the worst length because everyone will have just waited for you to come back instead of figuring their shit out another way…
13
44
1K
@sophiebits
sophie alpert
4 years
That React Component Right Under Your Context Provider Should Probably Use `React.memo`
35
152
1K
@sophiebits
sophie alpert
2 years
who do I need to bribe to make the next apple watch have a co2 sensor? it would be a gift to global public health
20
65
966
@sophiebits
sophie alpert
5 years
using a monorepo solves many code management problems, and in turn it does introduce some of its own. but ime, the problems caused by a monorepo can be tackled by a single centralized team, whereas the downsides of many repos end up slowing everyone on a team down slightly
40
156
957
@sophiebits
sophie alpert
5 years
Hi! Watch my talk from last week's React Conf! It's about how to build your own React renderer. React DOM? React Native? React <whatever you want>!
30
161
951
@sophiebits
sophie alpert
11 months
Excited to say I'm now considering new job opportunities! I was an early user of React, managed the team at FB, and recently finished a VP Eng role at Humu. Now I'm looking to join a diverse, kind, hypercompetent team, with a role where I can empower and upskill engineers.
19
128
922
@sophiebits
sophie alpert
6 years
👀 Looks like the React Devtools extension on the Chrome webstore now has over 1,000,000 users. That's over a million developers using @reactjs ! 🎉
18
149
901
@sophiebits
sophie alpert
6 years
Using fancy words instead of simple, common ones makes things harder to understand. Your writing will be clearer if you stick with a small vocabulary.
48
163
892
@sophiebits
sophie alpert
5 years
Working at a 50-person startup, I feel like the most important things I can spend time on are building the right culture and habits on our team for the future. Feels way more important to me than any of the actual product decisions.
26
88
910
@sophiebits
sophie alpert
4 years
I'm shocked global calendar optimization is still Not A Thing. * Need a room all day, but it has a 30min block already? * Need to meet w/ 7 people, but every slot has _1_ person with a conflict? * Back-to-back mtgs on opposite sides of an office? Computers should solve this. 🙈
32
59
852
@sophiebits
sophie alpert
5 years
TIL: `background-color: currentColor` pulls the element's text color! Works on all modern browsers (IE9+).
13
96
821
@sophiebits
sophie alpert
5 years
my new favorite thing is how every language has its own little abbreviation of "for example" e.g. – English p.ej. – Spanish p.ex. – French z.B. – German
84
79
803
@sophiebits
sophie alpert
3 years
instead of making a rainbow logo for pride month, make it so people can easily change their name *everywhere* it appears in your products looking at you @Spotify with the unchangeable usernames 😠
16
96
802
@sophiebits
sophie alpert
4 years
Some people seem impressive on the internet but are disappointing when you get to know or work with them. Dan's the real deal. A great person, and talented too. A++, would work with again
2
30
787
@sophiebits
sophie alpert
5 years
At Facebook we often ended up preferring GraphQL types based more around a "view model" rather than a pure, normalized "model" for a few reasons:
13
153
762
@sophiebits
sophie alpert
4 years
New blog post: "Fast and maintainable patterns for fetching from a database"
15
131
748
@sophiebits
sophie alpert
4 years
what
Tweet media one
43
24
737
@sophiebits
sophie alpert
6 years
sure React 16.6 is good but just wait until you see what we’ve got for 16.7! I think I’m more excited about 16.7 than any release before it 😀
24
89
733
@sophiebits
sophie alpert
5 years
More than anyone else I know, I like to fix stuff. Especially in code I didn't write. In this post, I explain why and how.
33
113
732
@sophiebits
sophie alpert
6 years
luv 2 find a stack overflow answer I wrote 7 YEARS AGO that tells me exactly what I want to know
17
33
726
@sophiebits
sophie alpert
6 years
How to build a good test suite: 1. Every time you fix a bug, add tests that would have caught it 2. Wait a year or two (There is no step 3.)
11
246
723
@sophiebits
sophie alpert
5 years
Instead of Google forcing AMP on people, someone should make guidelines for writing fast webpages and a way to statically verify if pages follow them. Then G can add an icon in search results to mark fast pages. You could call that standard Accelerated Mobile Pages or something.
23
72
718
@sophiebits
sophie alpert
6 years
If we wrote official React guides with examples and “best practices” for topics like: animations, forms, error handling, data management… what would you most want us to cover? (More specific suggestions are better!)
149
71
707
@sophiebits
sophie alpert
5 years
If I have to choose between building a community that attracts (a) a diverse group that cares about the consequences of their words and actions, and (b) only people who aren’t offended by anything, I know I’ll choose the former every time.
25
101
684
@sophiebits
sophie alpert
5 years
ah yes, the six genders
Tweet media one
16
57
685
@sophiebits
sophie alpert
5 years
Looks like about 1 in 4 developers (professional or not) use @reactjs according to the @StackOverflow survey. And 3/4 of them would happily use it again! 😎
18
66
681
@sophiebits
sophie alpert
6 years
Heading to Google HQ this afternoon to host a Q&A with their engineers about building with React!
28
54
682
@sophiebits
sophie alpert
5 years
Whenever a rule is added in a team, first ask: Will the existence of this rule discourage future people from using their human judgement to make smart decisions in nuanced situations?
11
157
671
@sophiebits
sophie alpert
5 years
people say “manager readmes” are cocky+prescriptive, but if I want to tell things like * your health is more important to me than your work, or * if you’re unhappy please lmk and I’ll try to help even if that means you leaving the team why _shouldn’t_ I write in a durable doc?
30
44
671
@sophiebits
sophie alpert
5 years
I’m really enjoying my new job, but I miss working on React a lot
17
6
658
@sophiebits
sophie alpert
5 years
oh yeah so you’re a feminist? go ahead, name three women
56
79
637
@sophiebits
sophie alpert
5 years
good day to be a woman
Tweet media one
11
2
647
@sophiebits
sophie alpert
5 years
and may I present: the fix I just wrote.
Tweet media one
28
55
643
@sophiebits
sophie alpert
6 years
You should apply for jobs that list some qualifications you don’t have. But also: if you do meet all of the preferred qualifications in a job ad, there’s a good chance you are overqualified.
9
126
644
@sophiebits
sophie alpert
5 years
25% of professional developers use @reactjs . At least, according to Stack Overflow's 2019 Developer Survey (17,800 out of 72,500). Wow.
12
82
638
@sophiebits
sophie alpert
4 years
is there anything worse than a mobile website that scrolls horizontally (just a little bit)
32
17
637
@sophiebits
sophie alpert
6 years
feeling grateful this weekend for all the amazing devs on my team. in alphabetical order:
11
32
627
@sophiebits
sophie alpert
6 years
when you try out React 16.7 alpha I think you‘re gonna be totally hooked
21
57
622
@sophiebits
sophie alpert
3 years
new profile pic! photo credit @emilymhorsman
Tweet media one
16
1
622
@sophiebits
sophie alpert
1 year
in uncertain times, remember to focus on the important questions
Tweet media one
5
65
623
@sophiebits
sophie alpert
6 years
I can’t believe I missed the date but: as of this past weekend, it’s been a year since I came out as trans! I’m much happier now. 💖 (Supporting trans folks is good and saves lives!)
15
5
616
@sophiebits
sophie alpert
4 years
Tweet media one
14
49
611
@sophiebits
sophie alpert
5 years
Feelin' bored tonight so I just wrote and published a new post: why do code reviews?
18
193
603
@sophiebits
sophie alpert
4 years
What if React errors had the full props objects in each component stack?
Tweet media one
35
20
604
@sophiebits
sophie alpert
4 years
I used to say "I believe in capitalism" to mean "I think markets are sometimes good at optimizing for things" but then I realized that most other people who say that mean closer to "if you're starving, you deserve it" – so I stopped saying it
18
47
603
@sophiebits
sophie alpert
3 years
tell me you use z-index without telling me you use z-index
Tweet media one
15
22
585
@sophiebits
sophie alpert
5 years
if A players hire A players but B players hire C players… who hires B players?
68
52
571
@sophiebits
sophie alpert
4 years
WTB a lint rule that detects const [processedData, setProcessedData] = useState(); useEffect(() => { let processed = /* do something with data */; setProcessedData(processed); }, [data]); and tells you to use useMemo instead.
18
62
571
@sophiebits
sophie alpert
5 years
is this what it feels like to be an influencer
12
4
561
@sophiebits
sophie alpert
5 years
¯\\\_(ツ)\_/¯ that's how you shrug in markdown
13
54
560
@sophiebits
sophie alpert
5 years
the jar of pickles I just bought says Serving size: 1/2 pickle so I’m not convinced the person who wrote it actually knows what a pickle is
16
27
552
@sophiebits
sophie alpert
5 years
I wonder if React should warn against <button> without a type. it's type="submit" by default but that's often not what you want!
55
42
541
@sophiebits
sophie alpert
5 years
Email in my inbox. Think I should take them up on it? 🤔
Tweet media one
25
18
537
@sophiebits
sophie alpert
6 years
Why does everyone claim GitLab is the obvious GitHub alternative? My mind goes to BitBucket.
70
71
511
@sophiebits
sophie alpert
6 years
Making your code unnecessarily general can really hurt maintainability because it's less likely to fit your future needs. Corollary: Third-party libraries, unless supremely well designed, also often hurt maintainability because you're likely to outgrow them.
17
105
524
@sophiebits
sophie alpert
5 years
1. first full year of being a manager (imo it went pretty well)! 2. first full year of being a lady (or rather, being treated as one)! 3. made some new friends (whom I love a lot)!
14
5
517
@sophiebits
sophie alpert
3 years
shot 2 ✅ please get it if you can – and I’m hoping that our government decides to offer help to folks in India and elsewhere who desperately need it
Tweet media one
16
3
517
@sophiebits
sophie alpert
5 years
if you watch the position of the blue bubbles here, you can see they lag behind the window resizing 🙈 if you can, make your 'resize' handlers 60fps so you don't need to throttle!
19
44
512
@sophiebits
sophie alpert
6 years
me, putting raw spinach in a pan: maybe this‘ll be too much spinach… narrator: it wasn’t.
13
25
502