Skip to main content

Uses

A somewhat comprehensive list of tools, apps, hardware, and more that I use on a daily basis to design and code things.

Backend

  • I use Node.js to build scalable network applications.
  • I feel very comfortable using MongoDB as a database. I am also expert with SQL databases like PostgreSQL.
  • Prisma is my ORM of choice for database interactions.
  • I use Redis for caching and session management.
  • My cloud infrastructure is mostly on AWS and Google Cloud, including Firebase for various backend services.
  • For message brokering and event-driven architecture, I use RabbitMQ.
  • Kubernetes is my go-to solution for managing containerized applications at scale. Learn more about Kubernetes.
  • I use Nginx and Apache for web server management, depending on the project requirements.

Containerization

  • Docker is a fundamental part of my development and deployment workflow. It allows me to create, deploy, and run applications in isolated containers.
  • I use AWS EKS and ECS to manage and scale containerized applications in the cloud.
  • I utilize Docker Compose for defining and running multi-container Docker applications in development environments.

DevOps Engineering

  • For CI/CD pipelines, I rely on GitHub Actions to automate testing, building, and deployment processes.
  • For logging and centralized log management, I use Elasticsearch for powerful search and analytics capabilities.
  • I use AWS CloudWatch for monitoring and managing logs, metrics, and alarms across my AWS infrastructure.
  • I use Kubernetes for container orchestration, ensuring that my applications run reliably and can scale easily.

Math and Physics

  • I use Linear Algebra for implementing various computer graphics algorithms, including transformations in 3D space.
  • Calculus is essential for understanding changes in systems and optimizing algorithms, particularly in machine learning and physics simulations.
  • Discrete Mathematics helps in structuring algorithms, data structures, and understanding the theory behind computation.
  • I often apply concepts from Probability Theory in areas like machine learning, statistical analysis, and decision-making processes.
  • Physics plays a crucial role in simulations and graphics, helping to create realistic animations and interactions in virtual environments.
  • For understanding and implementing encryption algorithms, Number Theory is indispensable.

Development

  • I use Visual Studio Code as my text editor, with the Atom One Dark theme and Operator Mono as my typeface of choice.
  • React is my front end Javascript library of choice. The component-centric mental model is the first thing that truly made sense to me as a designer.
  • For 3D effects and image shaders I use three.js. It has a bit of a learning curve but you can do some really powerful stuff with it.
  • For CSS, I use SCSS (Sass) for enhanced CSS preprocessing.
  • For Javascript animations I use Framer Motion, it’s a great way to add spring animations to React and three.js.
  • I also use GSAP for advanced animations and interactions on the web.
  • For building and testing UI components in isolation I use Storybook.
  • I develop mobile apps with React Native, enabling cross-platform development.