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.