skills
Day-to-day comfort
- Frontend
- Next.js, React, Svelte
- React Hooks & Recompose
- CSS-in-JS
- Framer Motion
- Jest & React Testing Library
- Playwright & Cypress
- Storybook
- Backend
- GraphQL
- Node.js
- Express & Koa
- Neo4j/Graph Databases
- Prisma
- TypeScript/JavaScript
- Micro Frontends
- HTML5
- CSS
- GIT + Stacked Diffs
Experience with
- React Native, Vue, SolidJS, Ember
- D3
- Docker
- Flux/Redux Architecture
- AWS
- DataDog
- MVP Architecture
- GWT
- Java/Kotlin
- jQuery and jQuery-esque libraries
- Figma, Sketch, and Photoshop
- CMS platforms like Contentful
- Build tools
- ESBuild
- Vite
- Rollup
- Webpack
- Babel
- Gulp
experience
Square
Senior Software Engineer
June 2022 - PresentOne of three engineers to lead the migration of Square's signup flow from Ember to Next.js. This was lengthy process that involved authoring a 40 page technical document, getting engineering feedback, meeting with leadership, and convincing stakeholders of the benefits, tradeoffs, and estimated timelines. The project was recently launched as an MVP, leading to an increase in Lighthouse's performance scores from Ember's 15 points to Next.js's 80 points.
Contributed to the migration of Square's public-facing website from Ruby to Svelte, which can be seen on www.squareup.com/us/en/sales
Helped to create an onboarding flow that enabled users to sign up for multiple Square products at once, resulting in more effective product upselling.
Better.com
Senior Software Engineer
November 2020 - April 2022Introduced GraphQL Code Generator for type safety when using GraphQL on the frontend. Previously, developers were manually adding types to GraphQL queries and mutations, leading to errors or inaccurate types. In addition, created a set of standards for using GraphQL on the frontend to reduce code duplication and leverage caching. Lastly, set up GraphQL precompilation to convert GraphQL documents into a JSON AST for faster page loads.
Held workshops on GraphQL, teaching topics that ranged from cache normalization on the frontend, to writing backend resolvers and avoiding common pitfalls like the N+1 problem. Also evangelized GraphQL Scalars from The Guild for proper data formatting standards like E.164 for phone numbers and ISO-3166 for country codes.
Worked on the shopping experience for Better.com's home purchasing funnel. Created a property search page with typeahead completion and debouncing using SmartyStreets. Also created the subsequent page for showing property details and rendered it serverside for a faster Time to Interactive (TTI). Lastly, implemented saving and unsaving of properties with the bonus of an optimistic UI for a better user experience and to compensate for slow network calls.
Mentored junior engineers and helped with their professional development. In addition, also oversaw the team's summer intern, providing guidance and pacing for her project.
Acorns
Senior Software Engineer
June 2019 - November 2020Deduplicated Acorn's internal libraries into a monorepo using Lerna for semantic versioning and auto publishing. Refactored component library for scalability and introduced design patterns for better code reuse and extensibility.
Created a micro frontend platform to enable teams to independently code and deploy new features. The platform allows Acorn's web app to move away from a monolithic architecture while maintaining an SPA look and feel, all while allowing each micro frontend to share dependencies with the main web app to reduce bundle size. Functionality matches what can now be achieved using Webpack 5's module federation.
Held classes to teach design patterns to other frontend developers since a majority came from coding bootcamps.
Software Engineer
May 2018 - June 2019Helped rewrite the Acorns web app from the ground up using modern technologies like GraphQL and Recompose. Established standards and pioneered good practices for using TypeScript. Created key features in Acorn's new product lineup like debit card activation, ATM finder, and multifactor authentication, all of which were bug free during tenure at Acorns.
In additional, started initiative outside of work hours to create a component library in order to deduplicate code and enable teams to have a centralized component library.
Workday
Software Engineer
June 2016 - March 2018Kickstarted the React migration by creating the initial setup for Workday's React component library. This included setting up Storybook, addons, custom decorators for Workday specific dependencies, and configuring Jest + Enzyme. In addition, migrated several components from GWT to React that served as a blueprint for how to migrate components for future engineers.
Associate Software Engineer
September 2014 - June 2016Worked with the UX team to modernize and redesign the UI for Workday's charts. This included rethinking the color scheme, typography, shapes, and animations. The results can still be seen on the front page of Workday's website today. In addition, created a variety of data visualizations and infographics that better displayed non-tabular data in an easier to digest way for customers. Examples include the candidate funnel visualization for job requisitions and dot matrix graph for number comparisons.
Software Engineer Intern
June 2013 - September 2013Coverted part of the Workday app from Adobe Flex to HTML5/Javascript. Created Javascript framework using D3 to replace IBM iLog Library which was previously used for several data visualizations.
Quake Global
Software Engineer Intern
April 2012 - September 2012Created a test framework to fix the lack of automated testing. Tested and debugged Quake's device software. Completely rewrote and extended Quake's API documentation.
education
University of California, San Diego
Located on the outskirts of La Jolla, UCSD is where I spent my college years. Originally starting off as an electrical engineering major until realizing that having an interest in electronics does not make the science behind it fun. Instead, coding unexpectedly turned out to be much more enjoyable and interesting challenge.