dillon_mulroy Profile Banner
Dillon Mulroy λ Profile
Dillon Mulroy λ

@dillon_mulroy

Followers
11K
Following
83K
Media
2K
Statuses
14K

domains guy @vercel ▲ • tweets about functional programming, typescript, neovim, & formula 1 • https://t.co/6Vr6DiQmze • https://t.co/4c0WNBRDIp

Joined October 2011
Don't wanna be here? Send us removal request.
@dillon_mulroy
Dillon Mulroy λ
1 year
@ThePrimeagen
ThePrimeagen
1 year
real talk, dillon really is one of the most talented engineers to follow on twitter. do it. follow him now.
4
2
156
@dillon_mulroy
Dillon Mulroy λ
1 year
this is what peak software engineering looks like, i dont make the rules
Tweet media one
63
591
10K
@dillon_mulroy
Dillon Mulroy λ
1 month
just failed an interview for a typescript dev position b/c i don't know what something called useState is :(.
204
101
8K
@dillon_mulroy
Dillon Mulroy λ
1 year
accidentally rolled my own auth again
Tweet media one
161
174
5K
@dillon_mulroy
Dillon Mulroy λ
5 months
Tweet media one
74
33
3K
@dillon_mulroy
Dillon Mulroy λ
6 months
i have joined the 1 monitor club. before and after
Tweet media one
Tweet media two
308
17
3K
@dillon_mulroy
Dillon Mulroy λ
11 months
The book that cost the world more than null
Tweet media one
160
114
3K
@dillon_mulroy
Dillon Mulroy λ
11 months
legend
Tweet media one
11
76
2K
@dillon_mulroy
Dillon Mulroy λ
6 months
hey. don’t do this this or be like this guy. 1. don’t be an asshole, just a good goal in life. 2. don’t ruin future opportunities. it might be edgy and funny on twitter, but it if i found this for a candidate i was interviewing for my team (and i would), it’d be an immediate.
@IroncladDev
IroncladDev
6 months
Submitted my first issue to @gleamlang
Tweet media one
56
43
2K
@dillon_mulroy
Dillon Mulroy λ
2 years
Better TypeScript error handling in 54 lines
Tweet media one
77
168
2K
@dillon_mulroy
Dillon Mulroy λ
18 days
how it started vs how it's going
Tweet media one
Tweet media two
33
37
2K
@dillon_mulroy
Dillon Mulroy λ
8 months
this is what happens when you keep your engineers out of pointless meetings and give them trust and autonomy. they ship.
Tweet media one
54
81
1K
@dillon_mulroy
Dillon Mulroy λ
10 months
.then and .catch are a better api than async/await with try/catch and you can't change my mind.
157
43
1K
@dillon_mulroy
Dillon Mulroy λ
1 month
you can take advantage of the fact that javascript maps preserves their keys in insertion order to build a really simple LRU cache in 40 lines of code. don't npm install the world
Tweet media one
28
81
1K
@dillon_mulroy
Dillon Mulroy λ
7 months
how do you if there's a functional programmer on your team?. there will be signs
Tweet media one
45
21
1K
@dillon_mulroy
Dillon Mulroy λ
1 year
eslint
Tweet media one
10
73
945
@dillon_mulroy
Dillon Mulroy λ
2 months
i thought this was a @terminaldotshop ad at first.
@PicturesFoIder
non aesthetic things
2 months
Freddie Mercury having a sleepover with some close friends. Circa 1980
Tweet media one
33
13
976
@dillon_mulroy
Dillon Mulroy λ
7 months
i once crashed an on prem bitbucket server for multiple days by committing an emoji.
@effectfully
effectfully
7 months
Tweet media one
22
22
880
@dillon_mulroy
Dillon Mulroy λ
1 year
First day ▲
73
13
846
@dillon_mulroy
Dillon Mulroy λ
10 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.
20
69
775
@dillon_mulroy
Dillon Mulroy λ
8 months
i’d rather have no unit tests than unit tests that are simply testing a bunch of mocked dependencies. just creates tech debt and patterns/code others will mindlessy copy.
@ptr_to_joel
Joel 🇦🇺
8 months
are you testing the code or the mocks brother.
46
38
783
@dillon_mulroy
Dillon Mulroy λ
1 month
@warptux why is this in a typescript interview
Tweet media one
7
8
783
@dillon_mulroy
Dillon Mulroy λ
9 months
type systems
Tweet media one
@d_feldman
Daniel 🦋
9 months
Which strongly-typed functional language are you using?.
25
29
663
@dillon_mulroy
Dillon Mulroy λ
11 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.
9
21
598
@dillon_mulroy
Dillon Mulroy λ
1 year
they even gave him a proper send off
Tweet media one
5
5
576
@dillon_mulroy
Dillon Mulroy λ
7 months
they don't teach this kind of big brain strategy in college
Tweet media one
16
19
578
@dillon_mulroy
Dillon Mulroy λ
1 year
Vim and Neovim users on OSX, set this in Keyboard settings and thank me later
Tweet media one
44
11
538
@dillon_mulroy
Dillon Mulroy λ
10 months
my programming language journey
Tweet media one
47
10
520
@dillon_mulroy
Dillon Mulroy λ
4 months
chatgpt o1-mini randomly started reasoning in chinese this morning. i've never input any sort of chinese text or cultural references before. 🤔
Tweet media one
44
12
529
@dillon_mulroy
Dillon Mulroy λ
2 years
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
66
29
497
@dillon_mulroy
Dillon Mulroy λ
1 year
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
1 year
Rebase is based. Feat @ThePrimeagen .
50
28
498
@dillon_mulroy
Dillon Mulroy λ
5 months
Forget Tailwind. Forget utility classes. You have no idea what’s coming. Forget everything you know. Forget everything you think you know. Forget Bootstrap. Forget Foundation. Nothing can prepare you for what my friend saw someone talking about and described to me. If you.
96
14
487
@dillon_mulroy
Dillon Mulroy λ
3 months
we’re so back. OCaml mentioned btw 🐫
Tweet media one
Tweet media two
16
1
489
@dillon_mulroy
Dillon Mulroy λ
10 months
me learning 🦀 and low level memory management
Tweet media one
12
14
448
@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
7
88
452
@dillon_mulroy
Dillon Mulroy λ
1 year
Yup. I'm a fan. 🤩
Tweet media one
36
23
451
@dillon_mulroy
Dillon Mulroy λ
3 months
typescript/javascript happy path blindness is real. go through a critical code path in your application and note every single place an error can be thrown. are you handling each appropriately?. we did this with part of our domain renewal flow. from 3 errors to 17
Tweet media one
Tweet media two
20
13
458
@dillon_mulroy
Dillon Mulroy λ
2 years
🌶️ 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.
36
36
425
@dillon_mulroy
Dillon Mulroy λ
4 months
i'm old enough to remember that this is just what javascript looked like pre TS/Zod/IoTS/etc.
@muningis
muningis
4 months
You don't need @valibot @zodtypes or even @arktypeio. You can just rawdog it and go clinically insane.
Tweet media one
20
1
427
@dillon_mulroy
Dillon Mulroy λ
6 months
the most important typescript feature is discriminated unions and everyone should be using them more.
23
10
417
@dillon_mulroy
Dillon Mulroy λ
10 months
Rust + sqlx is such a nice experience. The query is even type checked at compile time
Tweet media one
24
13
393
@dillon_mulroy
Dillon Mulroy λ
9 months
there are 3 constants in the universe. 1. death.2. taxes.3. the f# reply guy showing up anytime i mention OCaml.
29
6
364
@dillon_mulroy
Dillon Mulroy λ
1 year
Finally landed on a tmux, neovim, and ghostty config + setup I'm super happy with
Tweet media one
21
5
358
@dillon_mulroy
Dillon Mulroy λ
1 year
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.
33
22
334
@dillon_mulroy
Dillon Mulroy λ
2 years
Lets build the Option<T> type and some helpers for it from scratch in TypeScript!. First, lets define our types
Tweet media one
20
17
332
@dillon_mulroy
Dillon Mulroy λ
9 months
Over the years I’ve stopped reading the docs and started reading the source more often than not.
24
12
320
@dillon_mulroy
Dillon Mulroy λ
10 months
kinda where I'm at
Tweet media one
32
4
316
@dillon_mulroy
Dillon Mulroy λ
1 year
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
1 year
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.
16
21
323
@dillon_mulroy
Dillon Mulroy λ
1 year
The anatomy of a good error message from the Wix UX/Eng team. So. Good. 🤌.
Tweet media one
3
25
328
@dillon_mulroy
Dillon Mulroy λ
10 months
One of my favorite and most used type helpers, UnifyIntersection (also commonly referred to as Prettify)
Tweet media one
4
4
321
@dillon_mulroy
Dillon Mulroy λ
1 year
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
35
18
307
@dillon_mulroy
Dillon Mulroy λ
10 months
echo -n I will be engaged to @justine_cgrove in 10 hours 😁| shasum -a 256.85416d66705fb334964f111c7921a32dc4c9cd0ea80a3e49521e35835c10fb9c -
Tweet media one
@dillon_mulroy
Dillon Mulroy λ
10 months
85416d66705fb334964f111c7921a32dc4c9cd0ea80a3e49521e35835c10fb9c.
48
4
303
@dillon_mulroy
Dillon Mulroy λ
10 months
🥰
Tweet media one
Tweet media two
Tweet media three
15
4
298
@dillon_mulroy
Dillon Mulroy λ
1 year
took an absolute L on stream
Tweet media one
14
4
286
@dillon_mulroy
Dillon Mulroy λ
6 months
@VoxelPrismatic my brother in encoding protocols, your problem is with utf 8.
1
3
299
@dillon_mulroy
Dillon Mulroy λ
3 months
btw
Tweet media one
7
7
301
@dillon_mulroy
Dillon Mulroy λ
10 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
13
12
285
@dillon_mulroy
Dillon Mulroy λ
5 months
Tweet media one
@reallyrawn
rawn
5 months
@1owroller yes bro. i haven’t opened my terminal in months. what am i using the terminal for? npm run dev? pip install? make? why would I need a separate piece of software for that it just lives in vscode.
15
8
293
@dillon_mulroy
Dillon Mulroy λ
2 years
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
13
281
@dillon_mulroy
Dillon Mulroy λ
2 months
i successfully tricked a room of 500 typescript/react devs into learning about monads and they didn’t even know it.
34
6
288
@dillon_mulroy
Dillon Mulroy λ
1 year
@lucacicada This is the wisest advice given in this entire thread.
2
0
279
@dillon_mulroy
Dillon Mulroy λ
1 year
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
279
@dillon_mulroy
Dillon Mulroy λ
9 months
never deleting this app
Tweet media one
4
8
262
@dillon_mulroy
Dillon Mulroy λ
10 months
really digging using namespaces to organize modules and code in typescript
Tweet media one
Tweet media two
35
4
260
@dillon_mulroy
Dillon Mulroy λ
4 months
if err != nil is good actually.
41
9
260
@dillon_mulroy
Dillon Mulroy λ
4 months
i responded to devdad privately, but i want to share my take on this publicly. This is what leads to slop JS/TS software. Treating errors generically like this is a mistake. It leads to fragile software, poor telemetry/observability/debugging, and as a result worse experiences.
@thedevdad_
The Dev Dad
4 months
just rage quit neverthrow. whatever happened to the good ole try/ catch anyway. (dm-ing dmmulroy for help).
24
17
268
@dillon_mulroy
Dillon Mulroy λ
1 year
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
16
31
250
@dillon_mulroy
Dillon Mulroy λ
5 months
TIL
Tweet media one
54
0
263
@dillon_mulroy
Dillon Mulroy λ
2 years
Where do y’all normally load these heavy black pans at in your dishwasher? Every angle I try is awkward
Tweet media one
81
6
239
@dillon_mulroy
Dillon Mulroy λ
4 months
how much soap am i supposed to use when i wash my rice
Tweet media one
80
4
254
@dillon_mulroy
Dillon Mulroy λ
10 months
@majdav_ you_dont(). then(haveTo). then(doThat). then(bigDawg). catch(gitgud).
8
4
241
@dillon_mulroy
Dillon Mulroy λ
10 months
the book that cost the Frontend World more than null
Tweet media one
18
5
233
@dillon_mulroy
Dillon Mulroy λ
1 year
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
20
242
@dillon_mulroy
Dillon Mulroy λ
3 months
using typescript enums is fine btw, i promise you’re writing worse code than what is generated for them.
19
6
247
@dillon_mulroy
Dillon Mulroy λ
1 year
npm uninstall prettier eslint typescript-eslint && npm install biome.
17
7
227
@dillon_mulroy
Dillon Mulroy λ
19 days
why would you use redis when you can use dns txt records.
28
11
246
@dillon_mulroy
Dillon Mulroy λ
1 year
If this isn't your answer you're ngmi
Tweet media one
@cristinazltv
Cristina 🦉
1 year
how would you reverse an array during an interview?.
39
12
232
@dillon_mulroy
Dillon Mulroy λ
5 months
tech im excited for in 2025:. - @EffectTS_ by @MichaelArnaldi and Co. - libghostty by @mitchellh .- Porffor ( by @CanadaHonk .- Picos ( by Vesa Karvonen.- @ladybirdbrowser by @awesomekling .- @gleamlang by @louispilfold and team.
8
10
249
@dillon_mulroy
Dillon Mulroy λ
1 year
Tweet media one
Tweet media two
35
1
231
@dillon_mulroy
Dillon Mulroy λ
2 years
@NoahKahan Chain of sunflower seeds.
2
0
215
@dillon_mulroy
Dillon Mulroy λ
8 months
now would be a great time to start a consultancy/agency specialized in Wordpress to NextJs migrations.
28
8
215
@dillon_mulroy
Dillon Mulroy λ
2 years
When @ThePrimeagen's new hyper-fixation is Go instead of OCaml
Tweet media one
5
4
204
@dillon_mulroy
Dillon Mulroy λ
1 year
My #1 TypeScript wish is being able to statically type that a function throws.
29
7
211
@dillon_mulroy
Dillon Mulroy λ
25 days
we can peak harder
Tweet media one
Tweet media two
@ZachWarunek
Zach Warunek
26 days
like it or not, this is what peak react server components looks like
Tweet media one
17
11
223
@dillon_mulroy
Dillon Mulroy λ
9 months
sometimes i talk about things i like in front of other people
Tweet media one
9
3
208
@dillon_mulroy
Dillon Mulroy λ
1 month
@Yugandhar_19 you and me both, brother.
0
0
217
@dillon_mulroy
Dillon Mulroy λ
4 months
yup, decided. i'm ditching nix. i still think that there is no better solution, but i only use a small portion of it and when it breaks its too much work to justify.
33
1
214
@dillon_mulroy
Dillon Mulroy λ
2 months
i will never recover from this
Tweet media one
12
0
214
@dillon_mulroy
Dillon Mulroy λ
9 months
didn’t sleep at all on my flight but got to see this
Tweet media one
13
0
206
@dillon_mulroy
Dillon Mulroy λ
1 year
Am I a Rust dev now? 🦀
Tweet media one
23
5
194
@dillon_mulroy
Dillon Mulroy λ
2 years
I can't explain it, but we all know it's true
Tweet media one
4
11
195
@dillon_mulroy
Dillon Mulroy λ
10 months
@WarrenInTheBuff why'd you dox me and my code like this, i thought this was going to stay private.
1
0
196
@dillon_mulroy
Dillon Mulroy λ
9 months
just kidding, now the queen has arrived
Tweet media one
Tweet media two
@dillon_mulroy
Dillon Mulroy λ
9 months
The queen
Tweet media one
21
11
199
@dillon_mulroy
Dillon Mulroy λ
10 months
My people
Tweet media one
5
8
200
@dillon_mulroy
Dillon Mulroy λ
9 months
@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
191
@dillon_mulroy
Dillon Mulroy λ
10 months
ghostty just started falling apart on me @mitchellh @badcop_
13
3
176
@dillon_mulroy
Dillon Mulroy λ
1 year
I never want to work in a language without pattern matching again
Tweet media one
21
13
186
@dillon_mulroy
Dillon Mulroy λ
2 months
finally got around to fixing the keybinds on my personal site lol
20
3
190
@dillon_mulroy
Dillon Mulroy λ
6 months
@PraveenPerera 1. i'm not crying about it, i'm not even offended. but if this is your idea of fun, it's in complete contrast with your admission of my third point being fair. 2. not sure how that's a threat, just blanket advice that freedom of speech !== freedom of consequences. 3. yup.
3
0
183
@dillon_mulroy
Dillon Mulroy λ
10 months
🥲 it's happening
Tweet media one
17
4
181