Naomi Carrigan

Naomi Carrigan

@naomi.lgbt

Senior software engineer, community manager and developer educator.

1.4K followers3.4K following2.4K posts

Naomi Carrigan reposted

🌸 BIG UPDATE TIME! Our website got a stunning makeover — frosted glass surfaces lit by soft rose light! Plus tons of new features I can't wait to tell you about! ✨

I worked somewhere once where it felt like a male-dominated team. More specifically it felt like ideas from the women and enby folk on the team, including mine, were dismissed at a higher rate than my male colleagues.

View full thread

When I was asked for feedback on my way out, I raised this directly, as one of several points. I care about it because I want to take barriers down for the people who come after me.

Our industry still makes it harder for women, people of colour, LGBTQ+ people, and other under-represented groups to be heard. A policy statement does not change that. Equality in a team is visible in whose ideas get adopted.

I worked somewhere once where it felt like a male-dominated team. More specifically it felt like ideas from the women and enby folk on the team, including mine, were dismissed at a higher rate than my male colleagues.

View full thread

Ask for input in writing before the meeting, so every idea is on the record before anyone can talk over it. Name credit out loud. When an idea is adopted, say whose it was. Credit is cheap to give and expensive to lose.

Then share the numbers with the team and ask what they see. The goal is not blame. It is to make a pattern visible so that people can fix it. The same method works for any group that may be under-represented on your team.

I worked somewhere once where it felt like a male-dominated team. More specifically it felt like ideas from the women and enby folk on the team, including mine, were dismissed at a higher rate than my male colleagues.

View full thread

A feeling is not proof. It is a reason to look. If people on your team say that their ideas are not being heard, treat it as a signal to measure, not as a complaint to manage. Here is a simple way to check.

Record ideas for a month. Note who proposes what, in meetings and in writing, and whether each proposal is adopted, changed, deferred or dropped.

I worked somewhere once where it felt like a male-dominated team. More specifically it felt like ideas from the women and enby folk on the team, including mine, were dismissed at a higher rate than my male colleagues.

I want to be careful with that sentence. I did not have data. I had an anecdotal pattern I noticed over time, and I was not the only person whose ideas it affected.

That is the difficulty with this kind of bias. Nobody announces it. Each dismissal has a reasonable explanation on its own: the timing was wrong, the idea needed more work, someone else had a similar one. The pattern only shows when you step back and count.

I was talking to a friend about gender and all the weird things I felt in my life and my friend goes "girl you might be trans" and turns out it was right. And then I sped-run transitioning.

May “Bunny” Peterson 🦄@goddessblade.bsky.social

Why did you transition? Right answers only

When someone asks how to find the sum of an array, the fast answer is one line of code. I think the fast answer is usually the wrong one. Handing over the code does the reasoning for them. It removes the moment where they work out the answer themselves, and that moment is the point.

View full thread

There are two long-term benefits. The learner can ask themselves the same questions on the next bug. And in a public community, other people reading the conversation learn from it too. I used a courtroom scene from a film to make that point: the questions are for the jury as much as for the witness.

It is slower, and some people get frustrated halfway through. I have never seen anyone upset with the ending: the moment they work out the answer through their own reasoning.

When someone asks how to find the sum of an array, the fast answer is one line of code. I think the fast answer is usually the wrong one. Handing over the code does the reasoning for them. It removes the moment where they work out the answer themselves, and that moment is the point.

View full thread

What is an array? How would you step through it? What does the loop need to do each time? Where does the running total live? By the end, they have described the code themselves.

The first goal is to help someone notice that they know less than they thought. We often assume we know what our code does, so a common question is: what does this line of code do? When the answer is wrong, you ask a smaller question, and you break the problem into pieces.

When someone asks how to find the sum of an array, the fast answer is one line of code. I think the fast answer is usually the wrong one. Handing over the code does the reasoning for them. It removes the moment where they work out the answer themselves, and that moment is the point.

I use the Socratic method instead. I might start with this question: how would you add up a list of numbers on pen and paper, without code? Then each question narrows.

The most striking problem statement I heard at a hackathon came from a veteran who served on a landing ship. He built a real-time, voice-powered incident response system called crisisroom.

View full thread

Three constraints: a place where nobody can type, a voice that software cannot hear and a call where the danger is spoken aloud. In each case, the product was built around voice. Voice was not added afterwards.

The question I now ask is whether the user's hands, eyes or attention are already taken. If they are, voice is not a feature. It is the interface.

The most striking problem statement I heard at a hackathon came from a veteran who served on a landing ship. He built a real-time, voice-powered incident response system called crisisroom.

View full thread

The team fine-tuned a model on a dysarthric speech dataset, then used a language model to reconstruct the meaning and a text-to-speech voice to respond. A full speech-to-speech system, built at a hackathon.

aintercept listens on a call and alerts someone as soon as it detects the patterns of a scam in progress. The builder had seen a close family member fall for a fake police officer scam. He explained it, then showed me what he had built.

The most striking problem statement I heard at a hackathon came from a veteran who served on a landing ship. He built a real-time, voice-powered incident response system called crisisroom.

View full thread

He built the system because he had lived with the cost of not having one. It was not the only project at that event that started from a real constraint.

voxaid is a speech pipeline for people whose voices existing recognition software does not understand, such as people with ALS, cerebral palsy or stroke. It is meant for people who currently depend on a human interpreter.

The most striking problem statement I heard at a hackathon came from a veteran who served on a landing ship. He built a real-time, voice-powered incident response system called crisisroom.

He described damage control at sea. A steel passageway. Strobing lights. Smoke filling the space. Water rising past your boots. A general alarm so loud that you cannot hear the person next to you.

A grease pencil on a plexiglass board was the only shared source of truth for everyone making life-or-death decisions. That is not an environment for typing.

Naomi Carrigan reposted

Big news!! 💜 NHCarrigan is officially open for new engagements! We've rebuilt everything so you can see exactly what you're getting before reaching out~ #CommunityManagement #OpenSource

I do not judge a sponsor track by its submission count. At the AI Hackathon at Berkeley, ours received 141 submissions, third-most of any sponsor. The count alone hides most of what happened.

View full thread

The prize was four games consoles. Other sponsors offered cash, credits or an office hour. A track that asks for more has to give more help, so I ran a workshop and shared starter repositories for it.

I do not judge a sponsor track by its submission count. At the AI Hackathon at Berkeley, ours received 141 submissions, third-most of any sponsor. The count alone hides most of what happened.

View full thread

Ours sat at the high end. A team had to capture a microphone stream, connect speech-to-text or a voice agent, and handle real-time audio. That is a whole new modality.

Our criteria also said voice must be essential, not added on. That works as a quality filter. 141 teams, 35 percent of the event, cleared it when nothing forced them to.

I do not judge a sponsor track by its submission count. At the AI Hackathon at Berkeley, ours received 141 submissions, third-most of any sponsor. The count alone hides most of what happened.

View full thread

So I compare tracks by adoption rate against integration effort. I rate effort on four levels: none, low, medium and high. Then I read each track's adoption against its level.

The track with the most submissions asked teams to build with a coding assistant most already used. Another asked for a backend addition to an app that already existed. Neither added a new part of the user's experience.

I do not judge a sponsor track by its submission count. At the AI Hackathon at Berkeley, ours received 141 submissions, third-most of any sponsor. The count alone hides most of what happened.

The event had 398 projects, and each team could enter as many tracks as it liked. A submission count measures how easy a track was to enter as much as how appealing it was.

Before I run a workshop, I give every resource its own short link: signup, the guide, the docs, each repository, the deck and the Discord invite. Then I can see what people do after the session.

View full thread

I look for what people did next. There were 56 documentation visits and 65 repository clicks, so people built after the session. About 74 percent of the repository clicks were for Python.

The data changes my plan. I now write workshop content for Python first. A workshop's reach is set by its links, not by its room.

Before I run a workshop, I give every resource its own short link: signup, the guide, the docs, each repository, the deck and the Discord invite. Then I can see what people do after the session.

View full thread

I report tracked numbers as floors. Some tables also had generic QR codes that I could not measure, so real engagement was higher. Every untracked code is engagement I cannot count.

I also do not stretch a number past what it shows. The careers and internship links had generic codes beside them, so I draw no recruiting conclusion from either.

Before I run a workshop, I give every resource its own short link: signup, the guide, the docs, each repository, the deck and the Discord invite. Then I can see what people do after the session.

View full thread

The guide was the second most-used link, with 209 clicks, ahead of the documentation. I write it to work without me in the room, and the numbers suggest people used it that way.

The links travelled. They were shared in Discord, placed in repository READMEs and passed around a hackathon of almost 400 projects. A session of 50 people reached several times its own size.

Before I run a workshop, I give every resource its own short link: signup, the guide, the docs, each repository, the deck and the Discord invite. Then I can see what people do after the session.

At the AI Hackathon at Berkeley, I ran a workshop for about 50 people. The tracked signup link recorded 243 signups, close to five times the size of the room.