Posts

Stanford UG Research Program

Last edited: August 8, 2025

Brian Thomas, the research guy. Don’t start research at Autumn Frosh Freshmen Year.

Getting Started

  1. Think about the Institutes (many of them do not have an UG major)
    • Stanford HAI
    • Stanford HCI?
  2. Find faculty
    • Don’t just ask for a job
    • Research the person’s publications and ask some questions about it: TRY TO ASK FOR A OFFICE HOUR MEETING WITH QUESTIONS: “I read your thing, and I would love to talk more about it”
    • (there is coaching from Brian Thomas’s office, and coaching from UAD)
  3. OR, use a program, but still talk
    • HB-ref?
    • CURIS

Stanford’s grant programs can pay for research needs. There will be people talking about grants later. Don’t worry about them. Get to the point where you need money and then figure it out.

Starting With Why: The Knowledgebase

Last edited: August 8, 2025

Everyone and their dog has a blog at this point. Why not me? You see, I don’t really like the idea of blogging, but I do enjoy taking notes. I take a crap tonnes of notes, and sometimes people want to see a copy of them.

In order to facilitate this, some friends and I created taproot, a collective note-taking effort which also automatically compiled pretty cool previews and an internet site. I still am one of the primary maintainers of taproot.

Startup

Last edited: August 8, 2025

Smol companies

Tips

  • A well-run startup should have 18 month of cash planned, and have a runway of 6 months to ensure you can always get acq-hired and “bail out”

Myths of Startups

  • “Joining Big Tech” vs. “Starting a Startup” are not binary options
  • In between these poles: joining an existing startup

Myth: “90% of startups of fail”

True statement: 90% of SMALL BUSINESSES fail. Venture backed tech startups are very different world: only 1% of small businesses are venture backed.

state

Last edited: August 8, 2025

Lambda Calculus with state:

\begin{equation} e \to (x | \lambda x . e | e e | i | \text{new} | {!e} | e := e) \end{equation}

where:

  • \(new\) allocate a new memory location \(x\) and return pointer (initialize \(x\) to \(0\))
  • \(!e\) deref a pointer
  • \(e := e\), which is assigning the pointee of the memory location at the first argument to the second argument

new

\begin{equation} \frac{l \not \in dom(S)}{E,S \vdash \text{new} \to l, S[l=0]} \end{equation}