Here's where I'm currently most effective:
➀ Programming Language (TypeScript)
TypeScript serves as my main programming language for developing scalable and maintainable applications. I take advantage of its robust typing system to improve code quality and minimise runtime issues.
➁ Frameworks (Express.js & NestJS)
Express.js has been utilised for backend APIs since the start of my career. For API development, I combine Express.js with TypeScript to build resilient and high performing server side applications.
NestJS is a progressive Node.js framework I actively use for building scalable, enterprise grade backend services. I leverage its modular architecture and TypeScript integration to develop clean, maintainable APIs with built in support for dependency injection and testing.
➂ API Architectural Styles (RESTful API & GraphQL API)
I design and implement APIs following RESTful principles, ensuring resource oriented architecture, stateless communication, and predictable endpoints for scalability and maintainability.
For scenarios requiring flexibility and efficient data fetching, I adopt GraphQL to provide clients with precise data queries, reducing over fetching and improving performance.
➃ Databases (MongoDB, Redis, PostgreSQL, Prisma & TypeORM)
MongoDB is my preferred NoSQL database for its flexible, document oriented storage.
Redis plays a crucial role in caching and session management, ensuring optimal performance.
PostgreSQL is my choice for a relational database when dealing with intricate data relationships and queries.
Prisma facilitates database management, supporting type safe queries, smooth migrations, and TypeScript integrations.
TypeORM also help define relational databases in TypeScript. I use it to define entities, manage migrations, and perform seamless database operations with a clean, type safe approach that integrates well into scalable backend architectures
➄ Version Control (Git & GitHub)
I rely on Git for version control, following best practices such as feature branching and semantic commits.
GitHub is my preferred platform for collaboration, continuous integration and deployment workflows, and code reviews.
➅ Testing & Docs (Jest, Postman & OpenAPI)
Jest is my framework of choice for unit and integration testing, guaranteeing the reliability and performance of the code.
I utilise Postman for testing and debugging APIs, developing detailed collections for collaborative backend testing.
I leverage OpenAPI (Swagger) for designing and documenting RESTful APIs, ensuring clear specifications and smooth integration across teams.
➆ Cloud Computing (AWS)
AWS is my preferred cloud platform for deploying scalable solutions. I use EC2 for compute, S3 for storage, and EKS for orchestrating containerised applications using Kubernetes. Additionally, I build serverless architectures with AWS Lambda to deliver efficient, event-driven applications without server management.
➇ Container Orchestration (Docker & Kubernetes)
Docker allows me to package applications into containers for consistent deployment across various environments.
Kubernetes is the tool I use for scaling and managing containerised applications in a production setting.
➈ Monitoring, Observability & Alerting (Prometheus, Grafana, Loki & Alertmanager)
I use Prometheus to collect and monitor key metrics across services, helping me stay ahead of performance issues and track system health over time.
Grafana is my go-to for creating clear, interactive dashboards that turn raw metrics and logs into visual insights teams can act on quickly.
I rely on Loki for lightweight log aggregation, making it easy to centralise and search logs without the heavy overhead of traditional logging tools.
With Alertmanager, I set up smart alerting pipelines that notify the right channels like Slack or email so we can respond to issues before they impact users.
➉ CI/CD & GitOps (GitHub Actions & AgroCD)
GitHub Actions automates my CI/CD pipelines to streamline deployment processes.
I use ArgoCD to implement GitOps driven continuous delivery for Kubernetes applications. It allows me to automate deployments, maintain environment consistency, and roll back safely when needed. By syncing application state with Git, I ensure faster, more reliable releases without manual intervention.
⑪ infrastructure as Code (Terraform)
Terraform is my go to tool for infrastructure as code (IaC). I use it to provision, manage, and version cloud resources efficiently across platforms like AWS. Its declarative syntax and modular design allow me to define reproducible and scalable infrastructure environments that integrate seamlessly into CI/CD pipelines.
⑫ Technologies (Kafka, RabbitMQ, Nginx, WebSockets & Socket.IO)
Kafka and RabbitMQ are employed for managing asynchronous messaging within event=driven architectures.
Nginx serves as my reliable reverse proxy and load balancer for high performance web applications.
WebSockets & Socket.IO enables me to develop realtime, interactive applications.