Skip to content
View courier-new's full-sized avatar
🍵
🍵

Block or report courier-new

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
courier-new/README.md

Doodle of Kelli, smiling and sitting behind a laptop and cup of boba milk tea, with a cat and text that says 'Hello, I'm Kelli!'

👋 I'm a full stack software engineer with a penchant for type systems, scalable state management, and effective documentation. I have about 7 years professional engineering experience, most of which time I’ve spent working with startups on full stack end-to-end projects.

Building telehealth for mental healthcare at Grow Therapy
Previously built cool stuff at Sourcegraph, Grio, American Physical Society, eBay
Nerding out with SquiggleConf, CascadiaJS CascadiaJS, TypeScript TypeScript Congress
Frolicking around Seattle ← San FranciscoLos AngelesPhoenix

I consider myself a generalist and love working across the whole stack; you can see a breakdown of some of the languages I've used the most below. I also care a lot about inclusive engineering culture and believe that great technical leadership is as much about empowering your teammates as it is about building great software. Talk to me about using TypeScript, your favorite tea to pair with boba, or whether or not there's a pipeline problem in tech.

💞 Likes

  • Strongly-typed languages
  • Boba/bubble tea
  • Fluffy cats
  • Singing harmonies
  • Intersectional feminism
  • Typography (like my username's namesake!)
  • Code reviews

👎 Dislikes

  • Naming variables
  • Carbonated beverages
  • Sensationalism
  • Spicy food
  • Bad kerning
  • Defaulting to cynicism

Stats on my work

My top languages

My GitHub contribution stats


Advent of Code

Year Completed On
2023 50/50 Feb 29, 2024

Things I have used
Software Tools Adobe Photoshop Adobe Illustrator Affinity Photo Affinity Designer Arc Bitwarden Discord Excalidraw Figma Google Calendar Hoppscotch Insomnia Jira Microsoft To Do Notion Raycast Slack Spotify
Frontend Apollo GraphQL CSS Modules CSS3 Electron ESLint Expo HTML5 JavaScript jQuery Lodash Next.js PWA Qwik React React Query Redux Remix Sass Sentry Solid.js Storybook Svelte Tailwind CSS Tauri TypeScript XState
Backend Bun Datadog Deno Elixir Flask Go Grafana GraphQL Kafka Node.js Phoenix PHP Python Ruby Ruby on Rails Rust tRPC
Databases DuckDB Elasticsearch Fauna Firebase MongoDB MySQL PostgreSQL Prisma Redis SQLAlchemy SQLite Supabase TablePlus
AI/ML/Data Jupyter Kaggle NumPy Pandas scikit-learn TensorFlow
IDE Codeium EditorConfig GitHub Copilot Prettier Starship VSCode Warp
Building + Testing Bazel Chromatic Docker Jest Playwright Puppeteer Testing Library
CI/CD Buildkite CircleCI GitHub Actions
Analytics Google Analytics Looker Plausible Analytics
Documentation Docusaurus LaTeX Markdown MDX Mermaid
Version Control Bitbucket Git GitHub Graphite
Cloud AWS Google Cloud Heroku Netlify Render Vercel
More about me

In this section, I hope to convey to you a "user manual" for working with me, including what's important to me and how I like to work. Like most manuals, you may never need it, but you're probably still better off if you have it! It's also one way that I practice self-reflection and think about what will bring me the most joy and fulfillment in my life.

Guiding principles

  • Pave the way for those who come after us: We live in a time of great abundance and innovation, but also great inequity. I believe that coding and computation are to this era what writing and reading were to the last one. Written communication has propelled us all forward in incalculable ways, but it was once only accessible to the wealthy and powerful. Writing software also has nearly limitless potential to improve human quality of life, but today, less than 1% of the population can really tap into that potential. I believe in using technology to lift others up, break down barriers, and make technology itself more accessible, so that the day may soon come when everyone has the power to change the world with the code they write.
  • Reject the notion that people are lazy: I don't believe in laziness; I think people choose to do with their time what they feel motivated and empowered to pursue, what they have the energy and physical+mental capacity to accomplish, and what they believe is in their best interest. Rather than criticize others or ourselves for being "lazy", I believe that extending empathy and grace can help us understand what holds us back. When evaluating someone's choices or actions, I always try to assume that they are doing the best that they can, given the resources and knowledge that they currently have. We're all capable of doing amazing things when our needs are met and our motivations are aligned.
  • Focus on sustainable systems, not goals: g = f(x). Goals (g) are outputs of a system (f) applied to a series of inputs (x). Achieving a goal once doesn't mean we're set up to achieve the next one we set; it still depends on f and x. Many of the inputs (x) are out of our control: you get sick, you hit a setback, or the goalpost moves midway through. But the system is in our control, and a good system -- one that is sufficiently resilient and adaptive -- can help get us to our goals, no matter what they are. Developing good goals can give us a lens through which to evaluate and improve our systems, but I believe successful individuals and teams focus more on developing the system itself.

How I work

  • I default to asynchronous communication. I personally express myself better in writing than in speaking. To me, asynchronous communication in practice means tending towards over-communication, creating artifacts, and enabling everyone to access and contribute to a shared knowledge graph. I believe in using synchronous communication to complement, rather than supplement, this work: for example, when realtime feedback can enable faster iteration towards an objective, or when face-to-face connection can motivate trust and kindness in difficult conversations.
  • I need time to answer questions. I have poor recall and don't do well being put on the spot, so sometimes if I "trust my gut", I will get something wrong or leave a different impression than I mean to. If this happens, I ask for understanding and an opportunity to correct myself. However, I can provide much higher quality answers if I'm given time to review the context, organize my thoughts, and prepare an answer first. If it's a question I've thought about or answered before, I may be able to answer it more quickly.
  • I don't look or act like your stereotypical technical leader. I'm a goofy, nerdy, easily-excitable introvert and rather physically-diminutive girl who doesn't have many strong opinions, is not particularly eloquent when speaking, and would rather drink boba than beer. I don't exude the coolness and confidence of a tech bro, nor do I brandish the battle scars and cynicism of a graybeard sysadmin. There's no one recipe for what makes a good leader, but I think that the ways that I break from the mold actually make me a great one.
  • I don't interrupt or talk over others. That means that if a conversation is flying by, I may need your help creating an opening! In these moments, I try to use body language to make it clear when I have something to contribute. Or, if it's a virtual setting, I will write down and share my thoughts over chat so that they're added to the group's collective task queue and can be picked up by a background process as soon as one is available. 😉
  • If you have a question for me or want to get my advice, it's never a bother, and you're never taking up too much of time. I believe one of the most valuable ways I can spend my time as a technical lead is by enabling my teammates to be even 1% more effective at what they're working on, because progress compounds.
  • I do my best work at night. My brain's processing speed before 10AM is 30-50%. I will struggle to lead meetings or even just contribute in them before this time! It slowly ramps up to 90-100% by mid-afternoon but somehow kicks into overdrive and peaks at 150-200% after dinner. I often do my best work and get into a flow state late in the night.
  • I try to underpromise and overdeliver. While I tend to be an optimist in most other aspects of my life, ask me about a timeline and I'll absolutely incorporate pessimistic buffers into my estimations. Ask me about how difficult a proposal sounds and I'll definitely lay out all my concerns and qualify every statement before telling you it's feasible. Do I get the balance right every time? Absolutely not! But I'll sure try my best to revise my estimates and appraisals and share them with you as progress is made.
  • Being a technical generalist means I'm very good at unblocking myself, but I often need to consult with "experts" to work out the details. I love learning and exploring new technology, and as a result, I have broad exposure to many different types of problems, tools, design patterns, and domains. But I'm only really an expert in a few of them!
  • I struggle with mental health and imposter syndrome. Please remember that I'm just a human who is trying her best, too! 💚 I love being pushed to pursue things outside of my comfort zone, but I appreciate this the most in an environment where I know it's safe to fail. I don't need to be coddled, but I benefit from explicit positive feedback when you can offer it. When I'm struggling to believe in myself, encourage me to believe in you who believes in me!
  • My biggest failure mode is that I just want to be liked by everyone! 😭 Partly it's societal conditioning, partly it's my personal upbringing, and partly it's the external validation I use to cope when my mental health is tanking (see last bullet). I think this holds me back and makes it hard for me to contribute ideas or focus on what's actually important in situations where I'm interacting with people who I worry don't like me. I'm working on it, but it's probably something I will continue to struggle with to some degree for the rest of my life, and I am grateful for your patience with it.

Fun facts

  • 🥧 I memorized 314 digits of pi as a contest with my friend in high school. I still remember them and even built myself a toy app to practice with!
  • 🎮 I've probably dumped more hours into RimWorld than any other hobby, and that includes even training as a classical pianist for ~14 years!
  • 🎨 I collect paint samples and create patterns of artwork on the walls of my home out of them.
  • 👃 I lost my sense of smell as a teenager. While I sometimes miss the smell of bread and pine trees, I don't mind no longer having to endure the smells of yuckier things.
  • ✏️ My sketches of Katniss Everdeen and Peeta Mellark from The Hunger Games series briefly went viral and wound up on the first page of Google search results for either character, before casting for the movie adaptations was decided. If you do some real internet sleuthing, you can probably still find them! 🕵️
  • 💅 My first "paid" job was building HTML+CSS layouts and website designs for my friends on Neopets in exchange for Neopoints, before I was even old enough to babysit!

Pinned Loading

  1. pilon pilon Public

    Pi learning game!

    TypeScript 3

  2. statecharts-presentation statecharts-presentation Public

    Slides for talk on modeling UI with statecharts, September 2020

    TypeScript 1

  3. dotfiles dotfiles Public

    My personal collection of dotfiles

    Shell 3

  4. named-colors named-colors Public

    Explore, filter, play with, and enjoy the unique set of named colors in CSS.

    TypeScript 1

  5. sourcegraph/sourcegraph-public-snapshot sourcegraph/sourcegraph-public-snapshot Public archive

    Code AI platform with Code Search & Cody

    Go 10.1k 1.3k

  6. advent-of-code advent-of-code Public

    My solutions for advent of code problems! ❄️🎄☃️

    TypeScript