Dillon Mulroy λ Profile Banner
Dillon Mulroy λ Profile
Dillon Mulroy λ

@dillon_mulroy

8,053
Followers
2,670
Following
1,639
Media
11,295
Statuses

Software Engineer @vercel ▲ • Tweets about Functional Programming, TypeScript, Neovim, & Formula 1 • •

Raleigh, NC
Joined October 2011
Don't wanna be here? Send us removal request.
Pinned Tweet
@dillon_mulroy
Dillon Mulroy λ
5 months
@ThePrimeagen
ThePrimeagen
5 months
real talk, dillon really is one of the most talented engineers to follow on twitter do it follow him now
11
2
143
4
1
113
@dillon_mulroy
Dillon Mulroy λ
9 months
this is what peak software engineering looks like, i dont make the rules
Tweet media one
68
632
11K
@dillon_mulroy
Dillon Mulroy λ
4 months
accidentally rolled my own auth again
Tweet media one
169
179
5K
@dillon_mulroy
Dillon Mulroy λ
2 months
The book that cost the world more than null
Tweet media one
181
119
3K
@dillon_mulroy
Dillon Mulroy λ
3 months
legend
Tweet media one
11
81
2K
@dillon_mulroy
Dillon Mulroy λ
1 year
Better TypeScript error handling in 54 lines
Tweet media one
80
166
2K
@dillon_mulroy
Dillon Mulroy λ
2 months
.then and .catch are a better api than async/await with try/catch and you can't change my mind
169
45
1K
@dillon_mulroy
Dillon Mulroy λ
10 days
this is what happens when you keep your engineers out of pointless meetings and give them trust and autonomy. they ship.
Tweet media one
56
82
1K
@dillon_mulroy
Dillon Mulroy λ
6 months
eslint
Tweet media one
12
78
988
@dillon_mulroy
Dillon Mulroy λ
8 months
First day ▲
76
16
865
@dillon_mulroy
Dillon Mulroy λ
2 months
If I had any wisdom to teach younger devs it would be this: 1. Program against, consider, and handle the error path first and foremost. Include useful logging, telemetry, and error messages. 2. Utilize your type system, whatever that may be, to make as many invalid states
23
72
819
@dillon_mulroy
Dillon Mulroy λ
25 days
type systems
Tweet media one
@d_feldman
Daniel Feldman
25 days
Which strongly-typed functional language are you using?
22
1
15
27
36
699
@dillon_mulroy
Dillon Mulroy λ
3 months
it breaks my heart to think of all the millions of cpus and petabytes of ram fully dedicated to running eslint in ci/cd eslint has cost the world more than null
10
24
622
@dillon_mulroy
Dillon Mulroy λ
6 months
they even gave him a proper send off
Tweet media one
5
6
606
@dillon_mulroy
Dillon Mulroy λ
2 months
my programming language journey
Tweet media one
52
10
552
@dillon_mulroy
Dillon Mulroy λ
6 months
Vim and Neovim users on OSX, set this in Keyboard settings and thank me later
Tweet media one
48
13
559
@dillon_mulroy
Dillon Mulroy λ
11 months
Woops! Despite doing everything by the books and not using any escape hatches ('as', 'any', or 'non-null assertions') TypeScript let us give a normal 'member' admin permissions! 💥
Tweet media one
73
31
516
@dillon_mulroy
Dillon Mulroy λ
5 months
I was firmly in the merge > rebase camp for over a decade(!) and preached "why add complexity and risk!?" I took an hour one day to really learn about rebase and I've completely flip flopped and actually find merge commits fundamentally more confusing and hard to work with.
@wagslane
Lane || Boot.dev
5 months
Rebase is based. Feat @ThePrimeagen
9
21
195
52
30
526
@dillon_mulroy
Dillon Mulroy λ
2 months
me learning 🦀 and low level memory management
Tweet media one
13
19
472
@dillon_mulroy
Dillon Mulroy λ
5 years
Did you know Array.from accepts a second argument for mapping over your data? Super useful for making test data sets.
Tweet media one
8
90
472
@dillon_mulroy
Dillon Mulroy λ
5 months
Yup. I'm a fan. 🤩
Tweet media one
38
24
460
@dillon_mulroy
Dillon Mulroy λ
11 months
🌶️ React/TS/JS Hot Take🌶️ One thing that drives me crazy about the React ecosystem, and more specifically "tech influencers" and "thought leaders" in the space, is the infantilization of the developers using and working in it. I’m tired of reading takes like TypeScript
41
36
447
@dillon_mulroy
Dillon Mulroy λ
2 months
Rust + sqlx is such a nice experience. The query is even type checked at compile time
Tweet media one
26
14
405
@dillon_mulroy
Dillon Mulroy λ
24 days
there are 3 constants in the universe 1. death 2. taxes 3. the f# reply guy showing up anytime i mention OCaml
31
8
385
@dillon_mulroy
Dillon Mulroy λ
9 months
Finally landed on a tmux, neovim, and ghostty config + setup I'm super happy with
Tweet media one
24
6
373
@dillon_mulroy
Dillon Mulroy λ
10 months
Ya know what’s way more important in being a great software engineer than having strong math skills? Having great catalytic/soft skills. You can be the smartest person on the planet, but if you can’t communicate your ideas, build consensus, and empathize with your stakeholders
@mauricexxvi
maurice
10 months
"you don't need to know math to be good at programming" WRONG! You might be able to program without being good at maths but you certainly would be a better programmer if you were a better mathematician. Fight me!
20
3
47
37
22
352
@dillon_mulroy
Dillon Mulroy λ
10 months
Lets build the Option<T> type and some helpers for it from scratch in TypeScript! First, lets define our types
Tweet media one
21
19
340
@dillon_mulroy
Dillon Mulroy λ
1 month
Over the years I’ve stopped reading the docs and started reading the source more often than not
30
12
342
@dillon_mulroy
Dillon Mulroy λ
2 months
kinda where I'm at
Tweet media one
33
5
332
@dillon_mulroy
Dillon Mulroy λ
4 months
My hot take is that JS has the lowest bar of entry to building and being productive (a good thing) but one of the highest bars of any language and stack to building high quality, stable, and reliable software. Very few devs have the expertise to pull off the latter
@thdxr
dax
4 months
JS ecosystem is weirdly a high judgement required stack - tons of garbage to dodge - noise from the amount of VC funding pushing confusion - infinite solutions for every micro problem tempting their way into your codebase you really need to be good at finding clarity
28
34
509
18
21
339
@dillon_mulroy
Dillon Mulroy λ
4 months
The anatomy of a good error message from the Wix UX/Eng team. So. Good. 🤌
Tweet media one
3
25
338
@dillon_mulroy
Dillon Mulroy λ
2 months
One of my favorite and most used type helpers, UnifyIntersection (also commonly referred to as Prettify)
Tweet media one
5
5
333
@dillon_mulroy
Dillon Mulroy λ
7 months
I can't think of a language where performing a req/resp cycle, including serializations and deserialization, looks this nice and is as simple as this. Gleam is winning my heart
Tweet media one
38
19
324
@dillon_mulroy
Dillon Mulroy λ
2 months
echo -n I will be engaged to @justine_cgrove in 10 hours 😁| shasum -a 256 85416d66705fb334964f111c7921a32dc4c9cd0ea80a3e49521e35835c10fb9c -
Tweet media one
@dillon_mulroy
Dillon Mulroy λ
2 months
85416d66705fb334964f111c7921a32dc4c9cd0ea80a3e49521e35835c10fb9c
6
0
47
49
4
322
@dillon_mulroy
Dillon Mulroy λ
2 months
🥰
Tweet media one
Tweet media two
Tweet media three
15
4
311
@dillon_mulroy
Dillon Mulroy λ
9 months
took an absolute L on stream
Tweet media one
15
4
302
@dillon_mulroy
Dillon Mulroy λ
2 months
i regret to inform y'all that this is the hard truth. i've become a much more well rounded and experienced dev since starting streaming dev content every morning. There are so many things i'd have never learned or explored without being intentional and working the muscles
Tweet media one
14
13
300
@dillon_mulroy
Dillon Mulroy λ
1 year
That time I was trying to verify a JWT in OCaml and found a bug that I thought was in the JWT library, which then lead to thinking there was a bug in OCaml's main crypto library, which then lead to thinking there was a bug in the underlying C library, which then turned into the
9
14
290
@dillon_mulroy
Dillon Mulroy λ
4 months
@lucacicada This is the wisest advice given in this entire thread
2
0
288
@dillon_mulroy
Dillon Mulroy λ
5 months
Okay. I've given @EffectTS_ a real shot and built the app below. It concurrently runs several services for communicating with Twitch and Spotify. I can confidently say Effect is a joy to use and will be a core part of my stack going forward. Take aways below 🧵👇
Tweet media one
5
24
283
@dillon_mulroy
Dillon Mulroy λ
1 month
never deleting this app
Tweet media one
4
8
273
@dillon_mulroy
Dillon Mulroy λ
2 months
really digging using namespaces to organize modules and code in typescript
Tweet media one
Tweet media two
37
6
273
@dillon_mulroy
Dillon Mulroy λ
7 months
Introducing ts-error-translator.nvim 🚀 A Neovim port of @mattpocockuk 's VSCode extension, ts-error-translator, that turns messy and confusing TypeScript errors into plain English. Get it here!
Tweet media one
18
32
267
@dillon_mulroy
Dillon Mulroy λ
10 months
Where do y’all normally load these heavy black pans at in your dishwasher? Every angle I try is awkward
Tweet media one
97
7
265
@dillon_mulroy
Dillon Mulroy λ
2 months
@majdav_ you_dont() .then(haveTo) .then(doThat) .then(bigDawg) .catch(gitgud)
8
4
252
@dillon_mulroy
Dillon Mulroy λ
2 months
the book that cost the Frontend World more than null
Tweet media one
18
5
245
@dillon_mulroy
Dillon Mulroy λ
8 months
Once again I will repeat: The value of tailwind is not inherently the inline utility classes (though, I am a huge fan), it's the underlying design system and API to access that design system in a common sense and predictable way. It makes doing the right thing easy.
11
23
247
@dillon_mulroy
Dillon Mulroy λ
4 months
npm uninstall prettier eslint typescript-eslint && npm install biome
17
8
241
@dillon_mulroy
Dillon Mulroy λ
7 months
If this isn't your answer you're ngmi
Tweet media one
@cristinazltv
Cristina 🦉
7 months
how would you reverse an array during an interview?
652
30
1K
42
15
241
@dillon_mulroy
Dillon Mulroy λ
8 months
Tweet media one
Tweet media two
36
1
238
@dillon_mulroy
Dillon Mulroy λ
1 year
@NoahKahan Chain of sunflower seeds
2
1
230
@dillon_mulroy
Dillon Mulroy λ
1 year
When @ThePrimeagen 's new hyper-fixation is Go instead of OCaml
Tweet media one
5
5
218
@dillon_mulroy
Dillon Mulroy λ
7 months
My #1 TypeScript wish is being able to statically type that a function throws
30
8
223
@dillon_mulroy
Dillon Mulroy λ
1 month
sometimes i talk about things i like in front of other people
Tweet media one
9
4
217
@dillon_mulroy
Dillon Mulroy λ
4 months
Am I a Rust dev now? 🦀
Tweet media one
25
5
209
@dillon_mulroy
Dillon Mulroy λ
22 days
didn’t sleep at all on my flight but got to see this
Tweet media one
14
0
212
@dillon_mulroy
Dillon Mulroy λ
1 year
I can't explain it, but we all know it's true
Tweet media one
4
11
203
@dillon_mulroy
Dillon Mulroy λ
2 months
@WarrenInTheBuff why'd you dox me and my code like this, i thought this was going to stay private
1
0
207
@dillon_mulroy
Dillon Mulroy λ
1 month
My people
Tweet media one
6
9
205
@dillon_mulroy
Dillon Mulroy λ
20 days
just kidding, now the queen has arrived
Tweet media one
Tweet media two
@dillon_mulroy
Dillon Mulroy λ
21 days
The queen
Tweet media one
3
1
74
22
13
207
@dillon_mulroy
Dillon Mulroy λ
1 month
@fasterthanlime my jaw dropped listening to this yesterday. idk how the presenter(s) could have been more clear (and kind!). just in one ear and out the next for that - he was looking for any reason to be a dick about rust
0
1
205
@dillon_mulroy
Dillon Mulroy λ
2 months
ghostty just started falling apart on me @mitchellh @badcop_
14
4
187
@dillon_mulroy
Dillon Mulroy λ
9 months
I never want to work in a language without pattern matching again
Tweet media one
24
14
191
@dillon_mulroy
Dillon Mulroy λ
2 months
🥲 it's happening
Tweet media one
17
4
190
@dillon_mulroy
Dillon Mulroy λ
6 months
Tweet media one
9
20
179
@dillon_mulroy
Dillon Mulroy λ
25 days
The more @EffectTS_ I write, the more I’m sold that it’s the best way to write backend TypeScript. My apps don’t crash, all of the errors that can occur are handled, I have free and seamless OTEL integrations, and I can spin up fibers (green threads) for concurrent work.
12
8
176
@dillon_mulroy
Dillon Mulroy λ
3 months
👏stop👏throwing👏http👏errors👏outside👏of👏the👏http👏layer👏
13
4
172
@dillon_mulroy
Dillon Mulroy λ
2 months
OCaml
@alifarhat79
Not Jerome Powell
2 months
Without Googling, name something France invented
Tweet media one
11K
103
2K
19
9
165
@dillon_mulroy
Dillon Mulroy λ
1 month
Hi, yeah, this is terrible advice. - signed the divorcee of an 8 year relationship that ended due to my ex having an affair
@yacineMTB
kache
1 month
if he makes you sign a prenup he doesn't love you
222
20
835
7
0
164
@dillon_mulroy
Dillon Mulroy λ
4 months
literally tech twitter
@Rothmus
Rothmus 🏴
4 months
Tweet media one
115
3K
25K
0
4
161
@dillon_mulroy
Dillon Mulroy λ
6 months
Most JS dev tools written in Rust would be better off written in OCaml
19
11
159
@dillon_mulroy
Dillon Mulroy λ
2 months
We got a simple pubsub server and worker running with only postgres notify and rust 🦀🚀
Tweet media one
6
4
152
@dillon_mulroy
Dillon Mulroy λ
10 months
Figuring out CJS and ESM in node might be one of the worst experiences across any tech stack
20
5
153
@dillon_mulroy
Dillon Mulroy λ
9 months
Tweet media one
@welltypedwitch
Prophet
9 months
if you want to learn about monads, please read this. seriously! waders paper and "you could have invented monads" are literally the only good monad tutorials I know
14
19
224
7
9
150
@dillon_mulroy
Dillon Mulroy λ
11 months
Don't take my word for it
Tweet media one
@dillon_mulroy
Dillon Mulroy λ
11 months
TypeScript
5
5
57
4
12
148
@dillon_mulroy
Dillon Mulroy λ
2 months
sue me
Tweet media one
@dillon_mulroy
Dillon Mulroy λ
7 months
javascript classes are good, actually
27
2
97
31
0
145
@dillon_mulroy
Dillon Mulroy λ
4 months
Okay so Svelte is web dev on easy mode. So good. So Simple
16
5
147
@dillon_mulroy
Dillon Mulroy λ
2 months
continuing my thoughts on programming languages... what features would my ideal language have?
Tweet media one
38
6
146
@dillon_mulroy
Dillon Mulroy λ
6 months
Date night with this smoke show
Tweet media one
Tweet media two
8
3
143
@dillon_mulroy
Dillon Mulroy λ
7 months
We have contact ✨🚀 Successfully authenticated and made a request to Twitch's API with @gleamlang It really does feel like the Go of functional programming. I'm a huge fan so far.
Tweet media one
Tweet media two
7
6
146
@dillon_mulroy
Dillon Mulroy λ
2 months
we’re about to have Checo off the grid, Danny Ric in a Red Bull, and Lawson in a cash app Venmo PayPal racing bull when we come back from summer break
12
10
144
@dillon_mulroy
Dillon Mulroy λ
2 months
she said yes btw
26
0
145
@dillon_mulroy
Dillon Mulroy λ
1 year
@Cloudn0things These two resources will do a much better job at explaining the important concepts than I would: 1. 2.
2
11
141
@dillon_mulroy
Dillon Mulroy λ
10 months
@wagieeacc One step closer to the promise land of OCaml
Tweet media one
2
1
139
@dillon_mulroy
Dillon Mulroy λ
2 months
you can't hide your private/internal types from me
Tweet media one
12
2
137
@dillon_mulroy
Dillon Mulroy λ
6 months
Tweet media one
3
3
142
@dillon_mulroy
Dillon Mulroy λ
9 days
build cool shit with cool people and ignore everything else
11
17
141
@dillon_mulroy
Dillon Mulroy λ
4 months
The biggest problem with TypeScript/Node backends is that the language makes it far too easy to only ever consider the happy path
10
3
139
@dillon_mulroy
Dillon Mulroy λ
9 months
Announcing create-melange-app 1.0.0
Tweet media one
5
33
136
@dillon_mulroy
Dillon Mulroy λ
25 days
i've peaked received the best peer review feedback of my life: > Dillon is the tech nerd from every 80s movie, except actually fun to be around
8
0
137
@dillon_mulroy
Dillon Mulroy λ
3 months
Building api clients with gleam is such a nice experience client api module
Tweet media one
15
3
133
@dillon_mulroy
Dillon Mulroy λ
1 year
A year ago I had little idea of what OCaml was. I had been writing JavaScript and subsequently TypeScript since I was 13 (17 years for those counting). I loved TypeScript, in fact, I still do - I will always choose it over its untyped predecessor. That being said, OCaml (and
8
20
134
@dillon_mulroy
Dillon Mulroy λ
4 months
@OndrejTucny i dont even have users
2
1
135
@dillon_mulroy
Dillon Mulroy λ
2 months
i've got a fever and the only prescription is more rust 🦀
Tweet media one
6
1
132
@dillon_mulroy
Dillon Mulroy λ
1 year
I wrote a quick little lualine component for @ThePrimeagen 's Harpoon plugin for @Neovim . It will display the current buffer's mark index if it is "harpooned"
Tweet media one
8
6
131
@dillon_mulroy
Dillon Mulroy λ
1 month
Tweet media one
@ChShersh
Dmitrii Kovanikov
1 month
THE LAST MONAD TUTORIAL YOU’LL EVER NEED Imagine a cake. Pretty easy, y’all seen it. (Yes, I’m being intentionally ableist towards people who never saw a cake. Sorry, but you won’t understand monads if you don’t know what a cake is. Stop reading and go eat a cake.) Now,
36
31
278
17
5
132
@dillon_mulroy
Dillon Mulroy λ
2 months
@daveddev It is exceptionally incorrect to laud the identification and use of design patterns and best practices from the Gang of Four book, as they have led to significant misapplication and overuse, resulting in overly complex and rigid codebases. This "pattern obsession" has encouraged
15
4
129
@dillon_mulroy
Dillon Mulroy λ
2 months
modes are implemented 😍
9
3
128
@dillon_mulroy
Dillon Mulroy λ
11 months
i knew it
Tweet media one
2
6
127
@dillon_mulroy
Dillon Mulroy λ
3 months
all of us right now
Tweet media one
8
11
127
@dillon_mulroy
Dillon Mulroy λ
2 months
progress pics
Tweet media one
11
4
123