About
I've been working in software for over 12 years, starting from Lab Assistant and Tutor jobs in college, and playing different roles on different teams:
- Building application frameworks at Oracle
- Helping build a Beta product that turned into Numerator's leading business line
- Managing multiple stream-aligned and centralized teams as a Senior Director
- Freelancing at small startups
- Leading Eng and ML teams at Seek AI
I love solving problems and thinking in systems and frameworks. I still live by my old college's motto of "work hard, play hard."
Leadership
I've been fortunate to hold several leadership roles in my career:
- Sr. Engineer with direct reports
- Engineering Manager with a team of 10 engineers
- Sr. Director with multiple teams and managers
- VP of Engineering at an early-stage startup with multiple teams
All of these roles have been different, but with the same common traits:
- B2B SaaS Startups
- Full-stack teams
- Work directly tied to revenue
- Team is exposed to customers and to other functions (Product, Customer, Ops)
I thrive in early-stage startups turning chaos into order while creating or increasing revenue.
System Design
I've played key roles in building several systems, including the Numerator Insights platform, as well as the Seek Native app. Outside of full-time roles, I continue to contribute my expertise in building web applications to my colleagues and to the open-source community.
Tech Debt
I always advocate for a reasonable amount of technical debt: too much or too little, and you miss deadlines (and revenue targets) because you haven't built the right for your customers. In that vein, I've championed (and contributed to):
- A Python 2.7 to 3.6 migration (before containerization)
- Migrating from Vertica to Snowflake as an analytical warehouse
- Moving from AWS Cognito to Okta as a Single Sign-On solution
- Switching from enzyme tests to react-testing-library
FOSS
I truly believe in free and open-source software (FOSS), and I continue to contribute to the community. See the Languages section for examples.
AI
I've worked with AI in several places, most recently at Seek AI where we focused on using language models to understand customers' data. At Seek, I was a leader (manager of managers) and active contributor in both the research & development of the ML systems.
Languages
Python
My bread and butter.I've loved Python since I took 6.01 (Intro EECS) in 2010. We used it at MIT for research, for homework, and for doing Matlab work without Matlab. It's also my default language for scripts and projects. At MIT, I was a Lab Assistant for 6.01, 6.02 (Intro EECS II), and 6.S189 (Intro to Python).
At Numerator (formerly InfoScout), I worked as a Backend Engineer, using working with Django, Celery, SQLAlchemy and pandas. As the company grew, I was moved to lead the Insights and Data Engineering Orgs, but I was still using Python for small tickets and scripts.
At Seek AI, I contributed to the Python codebase (even as a VP of Eng), adding linting, writing tests, reviewing PRs and tackling some of the more obscure bugs.
Throughout my career, I've taken on Open-Source and freelance projects using Python, and continue to contribute to that community.
TypeScript
JavaScript is "dead"; Long live TypeScript.I used to be anti-JS in my high-school days, but jQuery, ES2015 and React started to change my opinion.
Joining the Insights team at Numerator increased my appreciation for React and JavaScript, particularly while I was Senior Director, with the Frontend Team Lead reporting to me (and having to fill that Team Lead role while we hired one).
At Seek, I worked with FE engineers on a React/TS + Next.js UI using Radix UI components.
Since the webpack days, TypeScript has arrived and build tools like Create React App (CRA) and vite have made bundling JS less painful. The React/TS + Python BE stack is very popular these days, so I still continue to take on projects that require TS. @testing-library is one of my favorite installs ever. I've started contributing to open-source TypeScript projects, including rewriting the Ptolemy UI (from a streamlit app) and migrating the Catanatron UI (from Node 16 and CRA to Node 24 and vite).
Rust
Your favorite language's favorite language.The latest trend is to write in Rust, and create bindings for your main language (for example, Python). I'm still very new to Rust, and the idiosyncracies are a little confusing, but I'm learning quickly. I'm currently working on a project with has a lot of Rust code, and so it's given me a chance to practice making small fixes.