Skip to content

Instantly share code, notes, and snippets.

View tigerabrodi's full-sized avatar
😊
❤️ 🌨️ 🥰 🐅 🚀

Tiger Abrodi tigerabrodi

😊
❤️ 🌨️ 🥰 🐅 🚀
View GitHub Profile
@zackradisic
zackradisic / index.ts
Created February 14, 2025 20:42
Visitor pattern vs sum types and pattern matching
// First, let's look at the traditional visitor pattern
// This is how we might implement a simple expression evaluator
// Traditional Visitor Pattern
namespace Traditional {
// Abstract base class for expressions
abstract class Expr {
abstract accept<T>(visitor: ExprVisitor<T>): T;
}
@itsMapleLeaf
itsMapleLeaf / README.md
Last active August 6, 2025 13:35
Typed remix helpers

This is no longer needed! Remix's built-in types have improved significantly. But I'll keep this here for historical reasons.


Typed helpers for low-boilerplate type inference with Remix data.

  • I suffix them with *Typed so I don't accidentally import the core remix helpers.
  • This doesn't support regular Response objects to prevent accidentally using them with the typed helpers.
@vasanthk
vasanthk / System Design.md
Last active September 12, 2025 18:24
System Design Cheatsheet

System Design Cheatsheet

Picking the right architecture = Picking the right battles + Managing trade-offs

Basic Steps

  1. Clarify and agree on the scope of the system
  • User cases (description of sequences of events that, taken together, lead to a system doing something useful)
    • Who is going to use it?
    • How are they going to use it?