My Tech Stack

I get asked a lot about my setup, from the tools I use to build software or things I buy to convince myself that I know what I'm doing. Here's a big list of all of my favorite stuff.

Workstation

  • 16” MacBook Pro, M2 Max, 32GB RAM, 1TB SSD (2023)

    Running large models or projects on Intel-based chips is a nightmare. I made the switch to Apple Silicon and it's been a game changer from every aspect. The M2 Max chip is incredibly powerful and covers everything I need it to do. The battery life is great, the performance is top-notch, and the display is just *chef's kiss*.

  • 34" UltraGear™ OLED WQHD 240Hz 0.03ms G-Sync Compatible 800R Curved Gaming Monitor

    This monitor is an absolute beast. The OLED display is stunning, the 240Hz refresh rate is buttery smooth, and the 800R curve makes for an immersive experience. I feel like I'm in a sci-fi movie cockpit when I'm using it. The width is perfect for multitasking since I can essentially have 3 screens right in front of me.

Languages

  • Python

    Python is my primary language for data science, machine learning, and general-purpose programming. It is my most used language daily, whether for scripting, building models, or automating tasks, and one I can confidently say I am an expert in. Its simplicity and extensive libraries like NumPy, Pandas, and TensorFlow make it ideal for rapid prototyping and complex data analysis.

  • TypeScript/JavaScript

    TypeScript is my go-to for web development. Its type safety and modern features make building complex applications much more manageable. I use it for both frontend and backend development, leveraging frameworks like React and Node.js. JavaScript is still relevant for quick scripts and legacy codebases, but TypeScript is my preferred choice for new projects.

  • C & C Family

    C is my systems programming language of choice for its performance and low-level capabilities. I feel connected to the hardware when coding in C, making it ideal for building operating systems, embedded systems, and performance-critical applications. It helped me understand memory management, pointers, and data structures deeply, essentially making me the Engineer I am today. I've also worked with C++ and C# in various projects around gaming and low latency programs, appreciating their object-oriented features and extensive libraries.

  • Go

    I recently picked up Go for an interview and fell in love with its simplicity and efficiency. Its concurrency model and performance make it ideal for building scalable applications. I use it for backend services, espeically those requiring high performance and low latency.

  • SQL

    I use SQL daily for querying relational databases, performing data analysis, and managing data integrity. Its declarative nature allows me to focus on what data I need rather than how to retrieve it, making complex queries more straightforward. I primiarly use MySQL and PostgreSQL but am familiar with other variants as well.

  • Java

    Though I don't use Java often, I learned its syntax early in my development journey and later in my master's program. I'm also familiar with Kotlin, which I used for API development and pub/sub queues.

  • Swift

    I picked up Swift during my gap year to try something new and then ended up building a few small iOS apps to get familiar with the language and ecosystem during my masters program. While I don't use it often, I appreciate its modern syntax and safety features.

Development tools

  • VS Code

    VS Code is my primary code editor for its versatility and extensive extension ecosystem. I customize it heavily with themes, keybindings, and extensions to suit my workflow. Its integrated terminal and Git support streamline my development process. It is my go to for all coding tasks, from quick scripts to large projects.

  • Docker

    Docker is essential for containerizing applications and ensuring consistent environments across development and production. I am familiar with creating Dockerfiles, managing images, and orchestrating multi-container applications. I use it for local development, testing, and deploying applications in isolated containers. I use DockerHub locally and AWS ECR as registries but can adapt to others as needed.

  • Kubernetes

    I use Kubernetes for orchestrating containerized applications, especially for scaling and managing microservices. I've set up clusters on AWS using custom K3 and K8 implementations, utilizing Helm charts for deployment and managing services with Ingress controllers. AWS EKS and Fargate, as well as GKE on GCP, are also part of my toolkit.

  • AWS

    AWS is my go-to for cloud apps. I'm experienced with services like EC2, S3, DynamoDB, Lambda, SageMaker, and more. I also attended AWS re:Invent in 2023, focusing on advanced topics and skill sessions.

  • Vercel

    I use Vercel for deploying web applications, especially those built with Next.js. Its seamless integration with GitHub and automatic deployments streamline my workflow.

  • Prisma

    Prisma handles all my database needs, from simple queries to complex joins. Depending on the project, I implement Accelerate for live events.

  • Apache Spark

    I use Spark for big data processing and complex data transformations. I've implemented distributed pipelines and leveraged Spark's in-memory processing for performance-critical applications. While SQL works for basic queries, I prefer Spark for complex aggregations and programmatic data manipulation.

  • Databricks

    I use Databricks daily for data extraction, processing, analysis, and troubleshooting. I've built end-to-end workflows that combine notebook-driven development with optimized Spark clusters.

  • Other Cloud Providers

    I have experience with GCP, IBM, and Azure from classes in my Masters and Coursera certificates. While not my primary tools, I can quickly get up to speed with them.

Productivity

  • Notion

    Funny thing is I absolutely hated Notion when I first started using it. I thought it was too complicated and didn't make sense. I ended up uninstalling it. But then I gave it another shot and now I can't live without it. I use it for everything from project management to note-taking.

  • Jira

    Jira is my choice for project management. Agile certified, I adapt to scrum or kanban methodologies as needed.

  • YouTube Red

    YouTube has been a vital tool for learning and debugging. Paying for no ads makes the world of a difference. I use it for learning, background music, and podcasts.