Skip to Content

Ethan Fann

Senior Software Engineer, AI

Hi. I write apps and stuff. My latest project, cords.chat, is probably the fastest AI chat app you've ever used.

Other hobbies include cooking, cycling, golfing, and photography. 99% of these photos end up being of the family pets:

Experience

2022 - Present

Osano

Senior Software Engineer
Software Engineer

Currently adding LLM-powered features to Osano's consent management platform as well as leading development of React Native, iOS, and Android SDKs.

React
JavaScript/TypeScript
AWS
AWS Bedrock
LangChain
2020 - 2021

Forward

IT Engineer

Built internal tooling with a focus on API integration and automation.

JavaScript
AWS
2018 - 2020

Atrium

Software Engineer
IT Engineer

Developed and maintained legal software for the Atrium LTS platform, which served as the foundation for the company's legal services. Worked on a variety of projects including a document automation tool and Office 365 JavaScript extension.

React
Ruby on Rails
GraphQL
TypeScript
Postgres
2017 - 2018

Linde Group

Desktop Support Engineer

Provided Mac, Windows, and Linux desktop technical support for a variety of Bay Area clients. Maintained the open source AutoPkgr project.

Objective-C
View Full Résumé

Projects

Cords Chat image

Cords Chat

Blazing fast AI chat app with support for models from OpenAI, Anthropic, Gemini, Llama, DeepSeek, and xAI. CMD + K navigation, text-to-speech playback of messages, attachment analysis, and more.

React
TypeScript
Next.js
Tailwind CSS
Stripe
AI-SDK
Tangey image

Tangey

Aesthetic home screen widgets powered by Strava and a custom polyline rendering engine built on top of MapKit.

Swift
SwiftUI
MapKit
Strava API
Avarts image

Avarts

Open-source and self-hostable fitness platform that enables cyclists to track and analyze their workouts. Includes a companion iOS app which served as the foundation for the Tangey project.

React
Ruby on Rails
GraphQL
Swift
SwiftUI
Slackmojis-dl image

Slackmojis-dl

CLI tool for downloading emojis from www.slackmojis.com with optimized async/await supporting up to 300 images per second. Created while working at Atrium so we could populate our Slack instance with a bunch of emoji categories like sports, brands, and mostly importantly, party parrot.

Node.js
React
Ink.js
leaderboards

2016

Top 5 Best "Powered by Strava" Apps

Designed by hand, built with Next.js and Tailwind CSS. Deployed to Vercel. Making the supernova light mode animation was by far my favorite part.