💻 Software I Use
The apps and platforms I use to design, code, and ship projects — from IDEs and frameworks to CI/CD pipelines and deployment tools that power my daily workflow.
Software is where most of the magic happens. My toolkit blends reliability, speed, and security — covering everything from full-stack web development to firmware compilation and cloud deployments.
🧠 Operating Systems
- macOS – My main operating system for daily development. It provides the perfect balance of Unix flexibility and a clean, stable desktop environment. I do most of my web and mobile work here using Rails, React, and Swift.
- Ubuntu – My preferred Linux distribution for servers, CI/CD runners, and Docker environments. It’s fast, lightweight, and perfectly aligned with most of my backend stacks.
- Kali Linux – Used occasionally for penetration testing and network analysis when I’m validating security layers or testing authentication systems.
🧩 Core Development Stack
- Ruby on Rails – My main framework for building secure and maintainable full-stack applications with clean architecture and rapid iteration.
- React + TypeScript – My go-to combo for modern front-end work. Type safety, modular components, and reliable builds keep large projects clean and predictable.
- Next.js – Used for my personal site and projects that need a fast, SEO-friendly, and dynamic frontend.
- Spring Boot (Java) – For enterprise-grade web services and REST APIs that need high performance and strong type safety.
- C# .NET – Used for building backend services, automation tools, and some legacy integrations that require the .NET ecosystem.
- Swift & SwiftUI – My preferred stack for iOS apps, combining performance and simplicity with modern UI patterns.
- Hotwire & Stimulus – For Rails projects that need a reactive UX without relying on heavy front-end frameworks.
- PostgreSQL – My standard database engine — reliable, scalable, and production-ready.
⚙️ DevOps & Deployment
- Docker & Docker Compose – Every project runs in containers for consistent environments.
- Kamal – My default deployment tool for Rails — fast, secure, and Docker-native.
- GitHub Actions – Handles automated tests, builds, and deployments for most of my projects.
- AWS, Linode & Vercel – My main hosting platforms. AWS for large-scale infrastructure, Linode for smaller deployments, and Vercel for fast static and Next.js hosting.
- Tomcat / Jetty – For hosting Spring Boot and Java-based web applications.
- Solid Queue & Solid Cache – For background jobs and caching in Rails 8 applications.
🛠️ Developer Utilities
- Visual Studio Code – My main code editor for Rails, React, and TypeScript projects.
- Xcode – Essential for iOS development with Swift and SwiftUI.
- CubeMX IDE – For STM32 embedded development and firmware generation.
- iTerm2 + Oh My Zsh – A powerful terminal combo that keeps my workflow efficient and organized.
- Git & GitHub – Version control, collaboration, and CI all in one place.
- Postman & Bruno – For quick API testing and debugging.
- TablePlus – Clean, intuitive interface for managing SQL databases.
🔐 Security & DevSecOps
- Securial – My own open-source Rails engine for secure authentication, multi-tenancy, and access control.
- ProtonVPN – Used for secure access to remote environments and client systems.
- Dependabot & Brakeman – Automated tools for keeping dependencies and security scans in check.
🧾 Documentation & Collaboration
- GitHub Wikis – For project documentation and shared technical notes.
- Apple Notes – For quick thoughts, ideas, and on-the-go documentation synced across devices.
- Linear – My task management hub for tracking development cycles and project roadmaps.
🧪 Embedded & IoT Tools
- Atmel Studio / PlatformIO – For AVR and ARM microcontroller development.
- CubeMX IDE (STM32) – Used for firmware configuration and embedded project builds.
- EasyEDA – My preferred PCB design and prototyping software.
- Serial Monitors & Logic Analyzers – For debugging and testing communication protocols in hardware projects.
These tools form the backbone of my work — helping me move fluidly between web, mobile, and embedded systems. Each one plays a specific role in keeping my development workflow fast, secure, and adaptable.