Sign in

Kyle McDonald

@kpm.sh
123 followers 191 following 69 posts

eng @ knock.app // kpm.sh // ✶ ✶ ✶ ✶ chicago

PostsRepliesMedia
Kyle McDonald @kpm.sh · 12/04/2026
i got tired of my homelab always breaking when i tried to use it. ended up building an AI loop to proactively fix these issues before I ran into them. now i’m not doing on call for my own house. kylemcd.com/posts/buildi...
kylemcd.com
Building a self healing homelab
Kyle McDonald's personal site where you can find his writings, projects, and other fun stuff.
000
Kyle McDonald @kpm.sh · 19/02/2026
i've been a lazy lazy boy and subjecting myself to keurig coffee lately. broke out the aeropress this morning instead and i forgot how good this is. definitely worth the extra little bit of effort.
000
Kyle McDonald @kpm.sh · 13/02/2026
engineers are terrible at validating the correctness which is why we needed QA in the first place.
000
Kyle McDonald @kpm.sh · 13/02/2026
so surely AI code + engineer's inability to properly review the drastic increase in code written is the cause for these outages plaguing the tech industry yeah?
100
Kyle McDonald @kpm.sh · 12/02/2026
people listen to what they want to hear i guess 🙃
010
Kyle McDonald @kpm.sh · 12/02/2026
still not over how cool it is to see the vinyl i currently have spinning in real time on my personal site. going to write a blog post about how i accomplished this soon.
010
Kyle McDonald @kpm.sh · 09/02/2026
this pencil is a work of art
010
Kyle McDonald @kpm.sh · 04/02/2026
a single 16:9 monitor is peak productivity
000
Kyle McDonald @kpm.sh · 31/01/2026
wow this looks like an awesome "dumb phone". love that you don't have to have a second line or need to sim swap. wish there were more phones in this category that did this. www.meadow.so
meadow.so
Meadow
Off your phone.Into the moment.
001
Kyle McDonald @kpm.sh · 31/01/2026
oh good info. once i get bored of my current hobbies / games this will be next up i think.
000
Kyle McDonald @kpm.sh · 31/01/2026
i've been thinking about getting into that or satisfactory but I think it would consume my life.
100
Kyle McDonald @kpm.sh · 31/01/2026
a completely normal way to spend a saturday relaxing
000
Kyle McDonald @kpm.sh · 29/01/2026
first race back on iracing after a little break and I decided to do porsche cup at monza (clearly i'm sadistic). guy behind forced us 3 wide into ascari on the last lap and it ended up with me in the wall. glad to see nothing has changed 🙂
000
Kyle McDonald @kpm.sh · 28/01/2026
2026* !!
010
Kyle McDonald @kpm.sh · 28/01/2026
can always do it in vanilla like const BUTTON_TYPE = { PRIMARY: "primary", SECONDARY: "secondary" } so you get the same benefits but not relying on the LSP to catch the issues. though, you are relying on engineers to use the constants. also why tf are you writing vanilla JS in 2025 👀👀
110
Kyle McDonald @kpm.sh · 28/01/2026
when building react components I basically never utilize boolean props anymore. this is substituted by patterns like component parts, <Tag copyable={true}/> vs <Tag.Copy/> or "enum" string types, isEditing vs mode="editing | idle". makes things WAY more extensible in the future.
010
Kyle McDonald @kpm.sh · 28/01/2026
just one more mac mini and you'll find product market fit. just one more mac mini bro.
000
Kyle McDonald @kpm.sh · 27/01/2026
this, exactly this. there is nothing more fun to me than the period of time from starting something new to actually getting competent at it. right now, society tell us we need to ingest every bit of information from X influencer in your latest hobby. but like, don't, it's more fun that way.
youtube.com
Why You Should Start Doing That Thing You Want to Do
It’s fun and really nice to do things that you love and that you’re good at—BUT it’s perhaps even better and more fun to do things that you’re bad at. And not just because you learn how to do them.…
000
Kyle McDonald @kpm.sh · 26/01/2026
how is sonos touted as this "premium" whole home audio system when everytime I use it the app crashes, the music starts skipping, or better yet, stops playing entirely. honestly, what a giant flaming pile of shit.
000
Kyle McDonald @kpm.sh · 26/01/2026
the engineer brain in me keeps over optimizing the things in my life that I enjoy. lately, to a point where the activity I did enjoy I no longer do because I’ve hit some sort of impassable barrier of optimization. reminder to ENJOY and be SATISFIED by the things you love.
000
Kyle McDonald @kpm.sh · 23/01/2026
this was a banger. tons of new thoughts and perspective on the subject of privacy that has never crossed my mind before. will be thinking about this book for years to come.
000
Kyle McDonald @kpm.sh · 23/01/2026
we're fine... everything is fine.
010
Kyle McDonald @kpm.sh · 23/01/2026
never wanted to take my camera anywhere since then lenses I had were big and bulky, so got this 27mm fixed lens. loving reaching for this instead of my phone to snap a shot and also the creative confines of a fixed lens. (also enjoy a preview of some of my reading list for the year)
000
Kyle McDonald @kpm.sh · 22/01/2026
god, you're here too... nvm
010
Kyle McDonald @kpm.sh · 22/01/2026
arm's length was by far my favorite music discovery of 2025. also they're incredible live. pumped for their headline tour later this year.
pictured is a record player and 2 boxes of records, each containing an arm's length album.
000
Kyle McDonald @kpm.sh · 22/01/2026
hi i want to start posting over here again 👋
020
Kyle McDonald @kpm.sh · 07/03/2025
Finally found an OG image setup that 𝘫𝘶𝘴𝘵 𝘸𝘰𝘳𝘬𝘴. Instead of generating them dynamically, I switched to using satori + resvg locally. No more random breakage or edge/node complexities. Simple, reliable, done. Check out the code if you’re curious 👇 github.com/kylemcd/pers...
github.com
personal-site/generate-og.tsx at main · kylemcd/personal-site
Re-doing my personal site with a new design in Next 13 + Typescript - kylemcd/personal-site
020
Kyle McDonald @kpm.sh · 07/03/2025
I spent the past year exploring sim racing, starting with a borrowed wheel—and spinning out in half the corners. Over time I found a vibrant community, experienced wheel-to-wheel battles, and realized how close virtual racing can come to the real thing. www.kylemcd.com/posts/my-fir...
kylemcd.com
My first year sim racing: a journey of learning and community — Kyle McDonald
010
Kyle McDonald @kpm.sh · 05/03/2025
Just wrote a new article about composability in React component libraries—why breaking things into smaller, reusable pieces makes everything more maintainable. Oh, and I finally finished rebuilding my personal site! www.kylemcd.com/posts/react-...
kylemcd.com
Kyle McDonald
Kyle McDonald's personal site where you can find his writings, projects, and other fun stuff.
010
Kyle McDonald @kpm.sh · 29/01/2025
I guess they can’t really get jobs after cs but besides that pretty good 😝
010
Kyle McDonald @kpm.sh · 29/01/2025
I swear I always miss one. This should be a linter rule or something 🤔
210
Kyle McDonald @kpm.sh · 27/01/2025
This is what it looks like when ran through a code formatter...
000
Kyle McDonald @kpm.sh · 27/01/2025
Would prob go with something more like this personally
type ColorStringForLanguageParams = {
  color: ColorItem
  language: SupportedLanguage
}

function colorStringForLanguage(params :ColorStringForLanguageParams){
  let color = params.color.color
}
100
Kyle McDonald @kpm.sh · 27/01/2025
What if your entire static site was 2 pages?
const PostPage = (props: BlogPostProps) => (
  <Page
    components={{ Button }}
    render={({ content, frontmatter }) => (
      <>
        <h1>{frontmatter.title}</h1>
        <div>{content}</div>
      </>
    )}
    {...props}
  />
);


const AdminPage = (props: AdminPageProps) => {
  return <Admin {...props} />;
}
020
Kyle McDonald @kpm.sh · 26/01/2025
Registering a .is domain was perhaps the weirdest domain purchasing experience I’ve ever had. (Deets on what its for soon)
020
Kyle McDonald @kpm.sh · 25/01/2025
Prettier and ESLint monorepo support has been a mixed bag. It’s been a while since I last tried it (maybe it’s fixed now), but despite a lot of tinkering, I couldn’t get auto-format on save to work reliably in a monorepo, the way you get it out of the box in VSCode.
100
Kyle McDonald @kpm.sh · 25/01/2025
I think 2025 is the year I finally write a form library that’s actually a joy to use.
010
Kyle McDonald @kpm.sh · 21/01/2025
If anyone else here is into sim racing 1) Would love to hang 2) I took a great picture of my setup for you to appreciate
140
Kyle McDonald @kpm.sh · 21/01/2025
My algo on YT is honestly way more addicting. Lots of history facts, race cars, and, building architecture. My TikTok algo was mostly brain melt humor.
010
Kyle McDonald @kpm.sh · 21/01/2025
Honestly just spend most of my time on Discord and YT these days
010
Kyle McDonald @kpm.sh · 21/01/2025
Welp, 3 social media platforms now deleted.
010
Kyle McDonald @kpm.sh · 21/11/2024
The first snow of the year! 🌨️
A dog standing in the snow
030
Kyle McDonald @kpm.sh · 20/11/2024
Wasn’t me this time 🫡
110
Kyle McDonald @kpm.sh · 20/11/2024
My fiancé gives the best gifts 🏎️
An image of a neon sign on a wall of an office that says “it’s lights out and away we go”
050
Kyle McDonald @kpm.sh · 18/11/2024
Thank you!!! Figured it was about time!
010
Kyle McDonald @kpm.sh · 18/11/2024
Oh neat 🙃
000
Kyle McDonald @kpm.sh · 18/11/2024
Turned 30 and the love of my life said yes! What a weekend 🥹
7211
Kyle McDonald @kpm.sh · 18/11/2024
I was just thinking this morning about how mild it’s been so far this fall 🙈
110
Kyle McDonald @kpm.sh · 15/11/2024
Really proud of this pic I took
Man biking down a street in Chicago with lots of traffic coming up behind him
020
Kyle McDonald @kpm.sh · 11/11/2024
Yeah this thing is going to be fuuuun
030