Software I use, technologies I build with, and tools I rely on.
Here’s a practical look at the software, frameworks, cloud tools, and development setup I use for backend engineering, AI applications, data systems, and full-stack product development.
Workstation
MacBook Pro
My main machine for development, backend work, and running full-stack and AI projects locally. I use it for everything from API development to deployment workflows and day-to-day engineering.
VS Code
My primary editor for Python, JavaScript, TypeScript, and web development. It gives me a fast workflow for backend APIs, React apps, and debugging distributed systems.
Terminal + SSH
A big part of my workflow lives in the terminal, whether I’m working with servers, containers, logs, Git, cloud environments, or automation scripts.
Docker Desktop
I use Docker constantly for containerized development, reproducible environments, and testing services locally before deployment.
Local Kubernetes / Homelab Setup
I like experimenting with distributed systems and observability in realistic environments, especially for backend services, monitoring pipelines, and recovery scenarios.
Development tools
Python
The language I use most for backend systems, APIs, ETL pipelines, automation, and AI application development. A lot of my production and project work is centered around Python.
FastAPI and Flask
My go-to frameworks for building APIs and backend services. I’ve used them for internal tools, production services, ML endpoints, and data-driven applications.
Node.js and Express
I use Node.js when building lightweight backend services and JavaScript-first applications, especially alongside React and Next.js projects.
GitHub Actions, Jenkins, and CI/CD
I rely on CI/CD pipelines to automate testing, deployments, and release workflows so projects move faster and stay reliable as they grow.
PostgreSQL, MySQL, MongoDB, and Firebase
Different products need different storage layers, so I work across relational and document databases depending on the app, the data shape, and the scaling needs.
AI and data
OpenAI API and LangChain
I use these to build AI-enabled applications, internal tools, and workflows that connect language models to real product use cases.
scikit-learn and TensorFlow
These are my main ML tools for experimentation and applied machine learning, especially classification workflows, model evaluation, and production-minded prototypes.
Geospatial ML tooling
I’ve worked with satellite imagery, classification pipelines, and data processing using tools like Rasterio, GeoPandas, and Pandas for applied computer vision and geospatial analysis.
SQL and ETL pipelines
A lot of useful software starts with good data plumbing. I spend a lot of time designing ETL pipelines, query flows, and reliable backend data movement.
Frontend
React.js and Next.js
These are my preferred tools for building modern user interfaces, portfolio sites, dashboards, and full-stack product experiences that need to move quickly.
TypeScript and JavaScript
I use both heavily across frontend and backend work. TypeScript is especially helpful when products start growing and need stronger structure.
Tailwind CSS
My default choice for shipping polished UI quickly. It makes it easy to keep interfaces clean, responsive, and consistent without slowing development down.
D3.js and Chart.js
When a product needs analytics or custom visualization, I use these for dashboards, reporting interfaces, and data-heavy frontend experiences.
Cloud and deployment
AWS
I’ve used AWS services including EC2, S3, and Lambda for application hosting, data workflows, and backend systems that need flexible cloud infrastructure.
Docker and Kubernetes
I use containers for packaging applications and Kubernetes for orchestration, scaling experiments, and learning how systems behave in more realistic distributed environments.
Vercel and Netlify
For frontend apps and rapid product deployment, these make it easy to ship quickly, test ideas, and iterate without adding unnecessary overhead.
Monitoring and observability
I care a lot about reliability, so I spend time on logs, dashboards, alerting, and visibility into how systems behave under real load.