Languages I speak
Typescript
My language of choice for large scale projects. I love the efficiency and clarity Typescript brings to collaborating with others as well as the ability to write the full stack in one language.
Python
I love Python for quick scripting, glue for infrastructure, data processing, and smaller general purpose applications.
Go
My go-to systems language for infra and backend services. I love the speed and simplicity of Go for building scalable services.
Front End
React / React Native
React is my front-end framework of choice. I write very clean and modular components and exercise best practices in state management. I am fluent in modern features of React 18+
Styled Components
I have leveraged Styled Components primarily through EmotionJS and CSS Modules.
HTML5
I am comfortable developing in simple HTML/CSS/VanillaJS when appropriate. I am a strong believer in doing more with less by only leveraging third-party libraries and modules when necessary.
Back End
NodeJS
I am most fluent in NodeJS as a backend language and also use NodeJS on the regular for quick scripts and making painstaking manual tasks into CLI's to automate workflows.
ExpressJS
I have used ExpressJS in most of my applications that require a well-structured, scalable backend. I have a refined discipline for writing Express servers using MVC architecture. Leveraging best practices in separating of business logic, data models, and controllers
PostgreSQL
I have used Postgres to add persistence to applications that require relational data models or read-heavy use-cases.
MongoDB
I've used mongoDB as a quick solution for adding a persistence layer on top of my application where relational data structures are not required.
Tooling + Ops
Kubernetes
I've achieved massive workflow and scalability improvements with Kubernetes. I've contributed to existing k8s setups and implemented ground up builds at Asana
AWS
AWS has dominated the cloud-native market for enterprises. At Asana I re-platformed the enterprise data pipeline stack onto dedicated AWS accounts from the ground up.
Docker
I've used Docker in the deployment and development of almost every application I have developed. I choose Docker for the modularity and scalability it allows for.
Git + Github
I always use git flows in my applications to manage changes and collaborate with others. I rely on git best practices to organize the codebase and manage updates efficiently
Linux
I also have experience deploying on bare metal instances and Alpine Linux environments
Jest
Jest is my go-to framework for testing. I always ensure that the modules I build are well tested with an aim for 90%+ coverage.