gabby Profile picture
Author of @dhall_lang, https://t.co/YzieN4kyo2, and principal engineer at @Mercury I'm a midwife to the hidden beauty in everything she/her 🏳️‍⚧️
Sep 22, 2024 14 tweets 3 min read
So I got a chance to use the GPT-4 base model a few times because one of my friends had access and I wanted to share some anecdotes related to that which I've shared in other contexts

🧵 So what do I mean by the "base model"? Well, if you've ever used ChatGPT, that's not exactly using the base model. ChatGPT is actually using the base model + reinforcement learning from human feedback (or "RLHF" for short)

The RLHF alters the model in a few important ways
Sep 28, 2022 7 tweets 2 min read
Another common question I'm getting is: can people working remotely from a low-cost-of-living area make six figure incomes?

The answer (with a lot of caveats) is: yes, with experience.

There is more geographic discrimination in pay for junior developers than senior developers This is definitely true in the US, where are there no legal barriers to remote work

This also true to a lesser extent in, say, Europe, whether you are a contractor or you work for a satellite office for a big tech company. It's harder, though
Sep 28, 2022 12 tweets 3 min read
A few people have asked me how they can break into the tech industry and get past the constant stream of applying to job sites and getting rejected

My advice is that networking and self-promotion are the most common way to break into an industry, and I'll elaborate on that For example, my own career transition into tech was mainly catalyzed by my self-promotion, specifically my blog. I have a separate thread on that subject here:
Sep 28, 2022 6 tweets 2 min read
A few people have asked me how I pivoted from a Biochemistry PhD to a career in tech

I don't know how much my experience generalizes, but for me the key thing that jumpstarted my pivot in tech was my active technical blog (haskellforall.com) My blog had a far greater impact on my career than even my open source portfolio, and I had a pretty great open source portfolio even back then

Blog posts are also lower maintenance than open source projects, which is a plus
Sep 27, 2022 4 tweets 1 min read
I think people who aren't in tech or who don't compare salaries have no idea how high compensation can go, especially in competitive markets like the Bay Area

For example, at my previous job I was making ~$550,000 / year in total compensation (including liquid equity) … and I'm not even in one of the hot hiring categories (like machine learning). My career has been for niche technologies (e.g. Haskell / Nix) and that was only my second tech job (so it's not like I had to constantly job hop to get that)

I also only have 8 years of experience
Sep 27, 2022 14 tweets 3 min read
Expanding on my previous negotiation thread …

You might be wondering how to phrase a request for a counter-offer, especially if you're a junior engineer and you don't feel you have anything special or unique to rationalize your counter-offer. I also have some tips for that First off, a tried and true method which you'll see a lot of people use is to invoke a third party in the negotiation process

"Oh, I need to run this by my spouse/significant-other/parents"

You can also lie if you don't have such a third party in your life. Recruiters also lie
Sep 27, 2022 14 tweets 3 min read
As someone who has been a hiring manager, here is some basic advice I share with all my friends who are new to negotiating job offers

You should always negotiate every offer, without exception, and I'll explain in more detail why Every compensation offer automatically comes with a certain "flexibility", meaning that the person negotiating on behalf of the company has some leeway to increase the offer without requiring additional approvals
Sep 3, 2022 62 tweets 11 min read
I've been feminizing my voice for a while now and want to created a thread to share some of the things I've learned so far I've been holding off on sharing stuff on this until I felt like I was pretty comfortable with my new voice and on the right track

For reference, here is a recording contrasting my new voice and my old voice: soundcloud.com/gabriella-gonz…
Aug 29, 2022 6 tweets 2 min read
We recently rewrote nix-serve internally in Haskell (which we're going to open source soon) and we're seeing dramatic efficiency improvements

Specifically:

≈1.6-1.8x faster for NAR info lookups

≈29x faster for NAR retrieval (not a typo!)

I double-checked that last number This says more about how slow nix-serve is than about how fast the Haskell rewrite is (although we did take precautions to do things as efficiently as possible)

The nix-serve implementation is leaving so much performance on the table by doing grossly inefficient things
Aug 28, 2022 15 tweets 3 min read
A question I sometimes get is: why do you use Nix even for pure Haskell projects?

The short answer is: I tap into a much larger ecosystem by virtue of using Nix Nix is designed to be a polyglot build tool that addresses a larger target market of developers than Haskell-specific tools

Consequently, Nix benefits more from network effects and greater mindshare than Haskell-centric approaches do
Aug 28, 2022 10 tweets 2 min read
I'm beginning to recognize that I have cultivated essentially three broad coping mechanisms for ADHD

These three mechanisms correspond roughly to short-term planning, medium-term planning and long-term planning strategies Short-term planning is easy: ADHD people can typically respond to short-term needs and/or crises quite well. This video describes ADHD as essentially being "nearsighted in time":

Aug 27, 2022 12 tweets 3 min read
A lot of people are hardwired to process their own pain/anger/frustration by harming others In particular, they will tend to focus their aggression on those that society gives them permission to harm

For example, if authority figures stigmatize a certain minority group then those people are more likely to take out their anger on that minority group
Aug 26, 2022 28 tweets 5 min read
My hot take is that Nix actually has great syntax In particular, the way Nix handles record syntax is exemplary and more languages should copy what Nix does in this regard

I'll elaborate on what I mean
Aug 21, 2022 30 tweets 9 min read
So once y'all try out the GPT-3 playground, you'll probably have a lot of burning questions about what you can do with it or what you can get away with

Fear not! I've been actively exploring all sorts of cringe or risky things that you can do with AI (for fun, I swear) First off, OpenAI is not the only game in town. They have all sorts of rules in place and safeguards to prevent misuse of their AI API, but honestly the cat is out of the bag at this point and they're just posturing when they act like they hold the keys to the kingdom
Aug 21, 2022 10 tweets 3 min read
A few people have asked me how to experiment with GPT-3 themselves, so here is a quick "Getting started" guide

Step 0: Visit this page and click "GET STARTED" or "SIGN UP"

openai.com/api/ That will take you to this page, where you can create a new account or reuse, say, your Google account if you already have one Screenshot of sign-up page
Aug 20, 2022 52 tweets 12 min read
The central idea behind most of my writing and open source programming is that essentially everything can be treated as functional programming expressions

And I mean *EVERYTHING* To motivate this, I'll begin with a small and illustrative example: imagine if a filesystem were modeled as JSON

In other words:

- You treat directories as records where keys are filenames
- Subdirectories are nested records
- You treat files as scalar values
Aug 6, 2022 20 tweets 4 min read
I'm going to dump a few thoughts related to correlation and causation

Okay, so everyone is familiar with "correlation does not imply causation". I want to dissect that a bit further … Suppose that two things, A and B, are correlated. What are all of the possible explanations for that correlation?

Explanation #0: Coincidence

If you measure enough things then statistically some of them will have spurious correlations

See: tylervigen.com/spurious-corre…
Aug 5, 2022 11 tweets 2 min read
For some reason my focus and creativity improves dramatically (at least an order of magnitude) when I communicate with myself "out loud"

This includes literally talking with myself out loud but it also includes writing in a diary or tweeting my internal monologue like right now This is one of the reasons I've always performed well in interviews because interviewers typically ask you to think out loud to better understand your thought process and doing so also brings out my best performance
Aug 4, 2022 17 tweets 3 min read
One of my pet peeves: when people confuse "marketing" with "advertising"

It's a common, understandable, but tragic mistake that a lot of tech evangelists make One example of this on my mind recently is the Nix marketing team: nixos.org/community/team…

If you look at their responsibilities, goals, prior activities, and they way they describe themselves it's clear that they view marketing as essentially advertising
Jun 17, 2022 24 tweets 4 min read
I have a new type-checking brain worm that I need to get out of my head:

What if you built a type inference algorithm without any unification variables?

I know that sounds silly, but hear me out on this … 🧵 (1/24) The motivation behind this is my search for the "holy grail" of type-checking algorithms that's both simple/compact to implement but also gives okay type inference

The inference needs to be better than, say, Dhall but it doesn't have to be great: some type annotations are okay
Jun 9, 2022 16 tweets 3 min read
I've been trying to write a blog post explaining the difference between functional and imperative programming and I've failed multiple times due to writer's block

Instead, I'm going to dump my thoughts here on a Twitter thread to finally get this out of my head 🧵 (1/16) Okay, so the difference is:

Imperative programming is a style that predominantly uses linear programs and linear data structures

Functional programming is a style that predominantly uses tree-like programs and tree-like data structures

I'll explain …