Matt Diephouse (@mdiep) profile picture

Changing software with tests and types • https://teapawt.org/t.co/Lqt2nANGjZ @Apple • Formerly @AmericanExpress, @GitHub, @Apple • 🐘 @mdiep@mas.to • All opinions are my own, dummy

Grand Rapids, MI
Joined April 2009
Photo by Matt Diephouse (@mdiep)Photo by Matt Diephouse (@mdiep)Photo by Matt Diephouse (@mdiep)Photo by Matt Diephouse (@mdiep)Photo by Matt Diephouse (@mdiep)Photo by Matt Diephouse (@mdiep)Photo by Matt Diephouse (@mdiep)Photo by Matt Diephouse (@mdiep)Photo by Matt Diephouse (@mdiep)
Compiler-Driven Development: ❗️ Write a little code ✅ Make it compile ♻️ Refactor 🔁 Repeat (Red, Green, Refactor)
5
12
2
73
Amazon results, under $25, sorted low to high.
1
6
Matt Diephouse retweeted
The Swift on Server ecosystem continues to expand with swift-nio-imap, a new, open source package to make parsing and encoding IMAPv4 easier: swift.org/blog/swift-nio-ima…
17
92
This chapter of Real World Haskell, which makes a distinction between concurrency and parallelism, was an interesting read. book.realworldhaskell.org/re…
3
Matt Diephouse retweeted
What’s @‍Sendable? And how does it relate to @‍escaping??? Where @‍escaping allows a function to be passed across asynchronous boundaries, @‍Sendable allows a function to be passed across concurrent boundaries. Learn more: pointfree.co/episodes/ep193-…
4
29
Come work on the Mail Platform team at Apple where we build the APIs and frameworks that support features like Remind me, Undo send, Scheduled send and many more! jobs.apple.com/en-us/details…
2
19
32
Matt Diephouse retweeted
Hot take #3: An unrestricted language can never be secure Purity is the future of language security. So long as your dependencies can run arbitrary code you will never be safe from supply chain attacks
2
4
1
46
Programming: 1. Move build settings to a shared file Engineering: 1. Write script to record resolved build settings 2. Move build settings to a shared file 3. Diff resolved build settings to verify they didn’t change
2
2
10
Replying to @mdiep
Yes 🎯 Accurate types and correctly modeling the domain is extremely underrated. I’ve found @pointfreeco to be extremely helpful in building this muscle. – at San Francisco, CA
2
2
4
How to improve old code: 1. Remove unused code 2. Use more accurate types Accurate types let you prove that a function can’t take or can’t return certain values. These form a virtuous cycle: removing unused code lets you remove unused values lets you remove unused code, etc.
1
8
60
🙌🏻
NEW: Pfizer asks FDA for emergency authorization of vaccine for children 5-11 trib.al/zd90ouj
1
Sometimes computers make me feel like a Rick, but other times they make me feel like a Morty.
1
8
Okay, why does Swift allow 2 dots in a KeyPath? 🤣 (But only before the first key in the path.)
1
5
TIL the term “frecency”. “In computing, frecency is any heuristic that combines the frequency and recency into a single measure.” en.wikipedia.org/wiki/Frecen…
1
1
Matt Diephouse retweeted
Almost missed that Xcode now supports building cross platform frameworks from a single target 🎉. After enabling "Allow Multi-Platform Builds" and setting "Supported Platforms", Xcode 13 offers filter options for conditional compilation and linkage.
4
38
4
205
Matt Diephouse retweeted
We just open sourced a new project: Custom Dump 🎉 Custom Dump is a collection of tools for debugging, diffing, and testing your app’s data structures. It comes with a nicer replacement for XCTAssertEqual, and can be used to build powerful debug tools. pointfree.co/blog/posts/62-o…
2
28
6
106
I can tell when a coworker is younger than me because they share screenshots of errors instead of copying-and-pasting the text of the error.
1
6
TIL some Scheme implementations let you use square brackets instead of parentheses.
1
I built a website to help people choose board games to play from their collection: WantToPlay.Games It’s written in Elm, hosted on S3 behind CloudFront, and makes client-side XML requests to BoardGameGeek (the IMDb of board games). I love that it’s 100% frontend.
10