Alex Grad
grad.dev
Alex Grad
@grad.dev
Building macOS & iOS apps in public and sharing everything I learn.
Finally built my dream custom keyboard! Really happy with the result. The feel and sound are super satisfying!

PCB: @wooting.io 60HE+ Module
Case: Tofu60 Redux in Meteorite Gray
Keycaps: GMK MTNU Graphite
Switches: GEON Raw HE
March 20, 2025 at 12:54 PM
Ported dkaraush's rotating ASCII donut GLSL shader to Metal + SwiftUI 🙃

Repo: github.com/graddotdev/S...
February 21, 2025 at 10:31 AM
Just open-sourced NeoShadow, a SwiftUI component for creating smooth shadows! Perfect for neumorphic interfaces.

Check it out: github.com/graddotdev/S...
February 19, 2025 at 10:33 AM
Ported Figma's "Beautiful Shadows" plugin by Alex Widua to SwiftUI. Considering making this open source – would love to hear if there's interest from the SwiftUI community.
February 18, 2025 at 12:26 PM
I've quit my job to build macOS and iOS apps full-time. Excited to build in public, share my learnings, and connect with others on this journey. Wish me luck! 🙃
February 16, 2025 at 2:19 PM
10 days since upgrading from 16" MBP (Intel, 2019) to 14" MBP (M4 Pro, 2024). Hard to express how awesome this machine is — lightweight, beautiful, powerful and truly portable. Perfect for working from the couch.
February 14, 2025 at 12:27 PM
The festivitas.app by @simonbs.dev is awesome!
December 25, 2024 at 5:57 AM
I've completed day 25 of #AdventOfTypeScript.

Merry Christmas!
December 25, 2024 at 5:06 AM
I've completed the main part of day 24 of #AdventOfTypeScript but decided not to finish it since it focuses more on reverse engineering rather than type system knowledge. I've attached that part of the solution for anyone who's interested.
December 24, 2024 at 1:59 PM
Day 23 of #AdventOfTypescript required me to look at HotScript's repo to solve the task. Really like this approach. Definitely learned something new today.
December 23, 2024 at 2:25 PM
Yesterday was busy, so I brute-forced Day 22 of #AdventOfTypeScript. It wasn't hard, just a lot of coding, and I don't want to do that today.
December 23, 2024 at 2:01 PM
I've completed day 21 of #AdventOfTypeScript. Last year's tasks were much harder. I miss those days 😔

adventofts.com/events/2024/21
December 21, 2024 at 5:52 AM
I've completed day 20 of #AdventOfTypeScript.
Same task, same solution. Déjà vu.

adventofts.com/events/2024/20
December 20, 2024 at 7:10 AM
December 19, 2024 at 7:11 AM
I've completed day 18 of #AdventOfTypeScript. Easy one if you know about `NoInfer`.

adventofts.com/events/2024/18
December 18, 2024 at 7:00 AM
I've completed day 17 of #AdventOfTypeScript. It took me some time to realize that `x[0]` is not working with the `string` type.

adventofts.com/events/2024/17
December 17, 2024 at 7:31 AM
I've completed day 16 of #AdventOfTypeScript. I had type-safe and working solution, but it fails t4. This test case forced me to rewrite my solution and wasted a lot of my time. I don't think that test case belongs there.

adventofts.com/events/2024/16
December 16, 2024 at 7:22 AM
I've submitted the solution for day 15 of #AdventOfTypeScript using the cmd + y shortcut. The problem is that submitting using this shortcut accepts any solution, even a blank one. I hope today's scores don't count for the leaderboard.

#AdventOfTypeScript
adventofts.com/events/2024/15
December 15, 2024 at 9:39 AM
I just can't submit the solution today, so my leaderboard position is fucked. There are a lot of errors in the console. What a nice way to start the day. 😡

#AdventOfTypeScript
adventofts.com/events/2024/15
December 15, 2024 at 5:42 AM
I've completed day 14 of #AdventOfTypeScript. Today's task was simple, but I felt too groggy to complete it quickly. 😔

adventofts.com/events/2024/14
December 14, 2024 at 5:45 AM
I've completed day 13 of #AdventOfTypeScript. Today's task was actually pretty easy. You just need to add `in out` before `T`.

adventofts.com/events/2024/13
December 13, 2024 at 6:44 AM
Starting today, I’ll only publish solutions after the top 50 on the leaderboard is filled.
December 13, 2024 at 5:52 AM
Got first place on today's #AdventOfTypeScript challenge! Feeling amazing 😂
December 13, 2024 at 5:08 AM
I've completed day 12 of #AdventOfTypeScript. Spent 40 minutes mostly trying to figure out NaughtyOrNice. In the end, I hardcoded the rating by name. If hardcoding is the only solution, then this task is just nonsense.

adventofts.com/events/2024/12
December 12, 2024 at 6:26 AM
I've completed day 11 of #AdventOfTypeScript. Among the many ways to solve this, this is my favorite: not the shortest, but simple and clear.

adventofts.com/events/2024/11
December 11, 2024 at 5:49 AM