Software I use, gadgets I love, and other things I recommend.

I get asked a lot about the things I use to build software, stay productive, or buy to fool myself into thinking I'm being productive when I'm really just procrastinating. Here's a big list of all of my favorite stuff.

Development Tools

  • Visual Studio Code

    My primary code editor with extensions for all the languages I work with including JavaScript, TypeScript, Python, Go, and more. The integrated terminal and Git support make it indispensable.

  • Android Studio

    For Android development, Android Studio provides all the tools I need for building, testing, and debugging mobile applications.

  • Postman

    Essential for API development and testing, allowing me to design, build, and test APIs quickly and efficiently.

  • Docker Desktop

    Containerization is crucial for my development workflow, allowing me to create consistent environments across different projects and deployment targets.

  • Git & GitHub

    Version control is fundamental to my work. I use Git for local version control and GitHub for collaboration and remote repositories.

Languages & Frameworks

  • JavaScript & TypeScript

    Core languages for both frontend and backend development. TypeScript adds type safety that helps catch errors early in the development process.

  • Rust

    A systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety. I use Rust for performance-critical components and system-level programming tasks.

  • PHP & Laravel

    For PHP-based web applications, Laravel provides an elegant syntax and robust features for building modern web applications with features like routing, authentication, and ORM.

  • React & Next.js

    My go-to frontend framework for building modern, responsive web applications with excellent performance and developer experience.

  • Vue & Nuxt.js

    Progressive framework for building user interfaces, with Nuxt.js providing opinionated defaults and conventions for server-side rendering and static site generation.

  • Node.js & Express

    For lightweight backend services, Node.js with Express provides a minimalist yet powerful foundation for REST APIs and web applications.

  • NestJS

    A progressive Node.js framework for building efficient, reliable and scalable server-side applications, heavily inspired by Angular with dependency injection and modular architecture.

  • Python

    Used for scripting, data processing, automation tasks, and machine learning projects.

  • Go

    My preferred language for building high-performance backend services and system tools.

  • Java & Kotlin

    For Android development and enterprise applications, these languages provide the reliability and ecosystem I need.

  • Dart & Flutter

    For cross-platform mobile application development, Dart with Flutter allows me to build beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.

Databases

  • PostgreSQL

    My primary choice for relational databases, offering advanced features and reliability for complex applications.

  • MySQL

    A reliable and widely-used relational database, perfect for web applications and projects requiring robust data storage with excellent performance.

  • MongoDB

    For document-based storage needs, MongoDB provides flexibility and scalability for various project requirements.

  • Redis

    Essential for caching and session management, significantly improving application performance.

  • SQLite

    My go-to embedded database for local development, mobile applications, and small-scale projects where simplicity and portability are key.

Cloud & DevOps

  • AWS & Google Cloud

    For cloud deployments, I leverage these platforms for their comprehensive services and global infrastructure.

  • Kubernetes

    For container orchestration in production environments, Kubernetes provides the scalability and management capabilities I need.

  • Vercel

    For frontend deployments, Vercel offers seamless integration with Next.js and excellent performance optimizations.

  • Docker

    Containerization ensures consistent environments from development to production, simplifying deployment processes.

Design

  • Material 3

    Google's design system for creating beautiful, intuitive, and functional user interfaces across all platforms with comprehensive guidelines and components.

  • Livewire

    A full-stack framework for Laravel that makes building dynamic UIs as simple as writing HTML, CSS, and JavaScript without leaving the comfort of Laravel.

  • Tailwind CSS

    My preferred CSS framework for rapidly building custom, responsive user interfaces without leaving my HTML.

  • Other Tailwind Frameworks

    Various component libraries and frameworks built on top of Tailwind CSS that accelerate UI development with pre-built components and design systems.

  • Jetpack Compose

    Android's modern toolkit for building native UI with less code, powerful tools, and intuitive Kotlin APIs for creating responsive and dynamic mobile interfaces.

Productivity

  • Linux Terminal

    Essential command-line interface for development tasks, system administration, and automation on Linux systems.

  • Linux OS

    Primary operating system for development work, offering powerful command-line tools, containerization support, and excellent performance for software development.

  • Terminal (PowerShell/Zsh)

    Command-line interfaces are essential for development tasks, automation, and system administration.

  • Notion

    For documentation, project planning, and knowledge management, Notion provides a flexible platform that adapts to my needs.

  • Obsidian

    For technical note-taking and knowledge base creation, Obsidian's linking capabilities help me connect ideas and concepts.