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.