Software and Tools I Use

A collection of resources I use to build software, stay productive, and learn new things.

Workstation

  • MacBook Pro 16-inch (2019)

    My daily driver for development work. Running on an Intel i7 processor, this laptop has been reliable for all my development needs.

  • Raspberry Pi 4 Model B

    Running Debian, I use this versatile little computer for various projects and learning Linux administration.

Development Tools

  • Zed

    My current favorite IDE. Zed offers a modern, fast editing experience with excellent syntax highlighting and collaborative features.

  • Git

    Essential for version control. I use it through the command line and integrate it with other tools in my workflow.

  • GitHub Copilot

    AI pair programmer that helps with code completion and generation. Particularly useful for boilerplate code and common patterns.

  • Warp

    A modern terminal that enhances productivity with features like AI command search, shared workflows, and built-in documentation.

  • Docker

    Container platform that ensures consistency across development environments and simplifies deployment processes.

  • TablePlus

    Clean and efficient database management tool. Supports multiple database types with a consistent interface.

  • pnpm

    Fast, disk space efficient package manager for Node.js. Great for monorepos and maintaining consistent dependencies.

  • Sourcetree

    Git GUI that makes complex version control operations visual and intuitive. Helpful for reviewing changes and managing branches.

Productivity

  • Obsidian

    My second brain. I use Obsidian for personal knowledge management, note-taking, and connecting ideas through its powerful linking features.

  • Notion

    Perfect for collaboration and shared documentation. I use it for project planning and team coordination.

  • Things 3

    My trusted task manager. Things 3's clean design and powerful organization features help me stay on top of projects and daily tasks.

Tech Stack

  • Next.js

    My go-to React framework for building full-stack web applications. The built-in routing, server components, and deployment features make it incredibly powerful.

  • TypeScript

    I write all my JavaScript with TypeScript. The type safety and improved developer experience are invaluable for building robust applications.

  • Tailwind CSS

    My preferred styling solution. Tailwind's utility-first approach allows for rapid development while maintaining consistency across projects.

  • Prisma

    Modern ORM that makes database work a joy. The type safety and integration with TypeScript create a seamless development experience.

  • PostgreSQL

    My relational database of choice. PostgreSQL is powerful, reliable, and has excellent support for complex queries and data types.

  • AWS S3

    Scalable object storage for static assets and file uploads. I use it for hosting images, videos, and other media.

  • Vercel

    My favorite platform for deploying web applications. Vercel's integration with Next.js and GitHub makes it easy to set up continuous deployment.

Learning Resources

  • Big-O Cheat Sheet

    An excellent reference for time and space complexity of common algorithms and data structures. Great for interview prep and understanding algorithmic efficiency.

  • Neetcode

    High-quality explanations of data structures, algorithms, and coding problems. The roadmap approach makes it easy to progress systematically through topics.

  • Visualgo

    Interactive visualizations of data structures and algorithms. Seeing these concepts in action makes them much easier to understand.

  • Grokking Algorithms

    An illustrated guide that makes complex algorithms accessible through clear explanations and practical examples. Great for visual learners.

  • BaseCS

    A collection of articles that break down fundamental computer science concepts in an approachable way. Perfect for filling knowledge gaps.