My Tech Stack
Tags: programming, development, devjournal
Published: 2023-06-05 01:12:12

## My Tech Stack 

In this post, I'll delve into the tech stack I use, discussing both the hardware and software that power my daily work and personal projects. I've found that this combination of tools and equipment greatly improves my productivity and enhances the quality of my output.

## Hardware

Here's a list of my main hardware and why I chose each:

- **Keyboard (Tofu 65%, DZ65 RGB V3, Cherry MX Silent Red, GMK Mitolet Pulse):** The mechanical nature of this keyboard provides excellent tactile feedback, increasing typing speed and reducing errors.
- **Mic (Rode Procaster):** High-quality, professional-grade microphone perfect for crystal clear audio during team meetings and podcast recordings.
- **Audio (HD58x Jubilee / GoXLR Mini):** The HD58x Jubilee delivers fantastic sound reproduction, while the GoXLR Mini is a powerful device for managing audio sources.
- **PC Specs:**
  - **CPU (Ryzen 7 3800x):** Powerful processor capable of handling demanding tasks like development and gaming.
  - **RAM (32gb 3600mhz):** More than enough memory for running multiple applications and VMs simultaneously.
  - **Storage (2x 1tb nvme, 1tb ssd):** Plenty of fast, reliable storage for all my files and projects.
  - **GPU (AMD 5700XT):** Provides excellent graphical performance for gaming and multimedia tasks. Great value for money at 1440p.
  - **PSU (1000w):** Provides stable and sufficient power supply for all my hardware.
- **Case (Cooler Master CSX edition 001 / 300):** Sleek and spacious design allows for optimal component placement and cooling.
- **Monitor (MSI 32" 1440p 144hz, Samsung Odessey G9 49"):** High-resolution, high-refresh rate monitors for a smooth and detailed visual experience. G9 is perfect for productivity.
- **Mouse (Logitech Superlight G Pro):** Lightweight, accurate, and comfortable for long usage.
- **Peripherals (Elgato Streamdeck, Elgato Keylight x2):** The Streamdeck offers customizable shortcut keys, while the Keylights provide professional-grade lighting for video calls or streams, really though, our lights just suck.
- **Servers (2x Dell R720):** Reliable and powerful servers for hosting my home lab and various projects. The true power for when the Pis just don't cut it.
- **Side mount (Work MacBook Pro):** A handy solution for conveniently integrating my work laptop into my setup.
- **Desk (Vivo Electric Standing Desk):** A spacious, adjustable desk that allows me to work comfortably in both sitting and standing positions.

## Cross-Platform Software

These are the apps and tools I regularly use across different platforms and why:

- **NPM (Node Package Manager):** A must for managing JavaScript packages and dependencies.
- **JetBrains / VSCode:** These integrated development environments (IDEs) are feature-rich and highly customizable, making coding more efficient and enjoyable.
- **Zsh:** An interactive shell that improves upon Bash with features like advanced tab completion and shared command history.
- **Edge Dev:** My browser of choice, chosen for its compatibility with modern web standards and integration with Microsoft services. Specifically, I use the Dev channel for the latest features and updates namely split tabs.
- **Teams and Discord:** I use these platforms for team communication and chat; Teams for professional use and Discord for more informal and community-based interactions.
- **Docker Desktop:** This tool allows for the development and deployment of containerized applications, ensuring consistency across environments.
- **GitHub Desktop:** Makes Git operations easier, particularly for quickly resolving issues or performing routine tasks.
- **WakaTime:** A valuable tool for tracking time spent on various projects, aiding in productivity analysis and project management. Waka helps me to balance my time between work and personal projects, and across personal projects.
- **Spaces/Jira:** These tools help manage projects, tracking issues and coordinating team efforts effectively.
- **Python:** A versatile scripting language used for a variety of tasks from automation to web development.
- **Java/Kotlin:** I'm currently developing an Android app, for which Java and Kotlin is a primary language.
- **PHP:** A server-side scripting language that's extensively used in my web development work.
- **TypeScript:** A strongly-typed superset of JavaScript that I use to write safer and more reliable code for web development.
- **Proxmox:** An open-source server virtualization management solution which I use in my home lab.
- **Rancher, k8s/k3s:** These tools are used for managing Kubernetes in my home lab, an essential part of modern cloud and container management.
- **Synergy:** This software allows me to seamlessly use one keyboard and mouse across multiple computers, improving my workflow when multitasking between devices. **YOU SHOULD GET THIS**
- **Atuin:** This tool provides a beautifully styled history for zsh, making it easier to recall and repeat commands.**YOU SHOULD GET THIS**

## Mac-Specific Tools

When I'm on my Mac, these are the tools I rely on:

- **Posthog:** An open-source analytics platform that I use for tracking user interactions and performance on my web projects.
- **Fig:** A command line tool that adds autocomplete functionality to my terminal, boosting productivity.
- **Alt-Tab:** A utility that improves the default Alt+Tab behavior on macOS for smoother application switching.
- **Alfred:** An improvement over Spotlight, adding more functionality and customization options for quickly finding files and launching applications.
- **Diskdiet:** An effective tool for cleaning up my disk, helping to maintain optimal system performance.
- **Background Music:** A useful utility for controlling my music right from the menu bar.
- **ASDF:** A versatile version manager, letting me easily switch between different versions of various programming languages.
- **iTerm2:** A superior terminal emulator with features like split panes and better search functionality.

## Windows-Specific Tools

And on Windows, here's my go-to software:

- **WinZip:** My tool of choice for managing zip files.
- **Winget / WingetUI:** An application installer that helps quickly setup new Windows installations with all the necessary software.
- **Control Center/Streamdeck:** Used for launching applications and managing various system settings.
- **WizTree:** A disk cleanup tool that helps keep my system running optimally by freeing up storage space.
- **GoXLR:** A digital audio mixer that provides advanced control over my audio sources and outputs.
- **WSL Ubuntu:** The Windows Subsystem for Linux allows me to run a full-fledged Ubuntu terminal within Windows, facilitating cross-platform work.
- **Terminal (Windows):** My preferred terminal on Windows, offering features like multiple tabs and customizable themes.
- **PowerToys:** A set of utilities from Microsoft that enhances Windows functionality, like FancyZones for better window management.
- **PowerShell:** A powerful scripting shell for automating tasks and managing system settings.

All these tools, each with its own strengths, combined together make my workflow smooth and efficient.