<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Muhammad Huzaifa Abdulahad — Blog</title>
    <link>https://www.huzaifaa.club/blog</link>
    <description>Field notes on building, shipping and running software — backends, DevOps and cloud infrastructure.</description>
    <language>en</language>
    <atom:link href="https://www.huzaifaa.club/rss.xml" rel="self" type="application/rss+xml" />
    <lastBuildDate>Fri, 16 Oct 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>Reverse Engineer Anything: the viral AI tool, taken apart</title>
      <link>https://www.huzaifaa.club/blog/rea-reverse-engineer-anything</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/rea-reverse-engineer-anything</guid>
      <pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate>
      <description>REA (Reverse Engineer Anything) hit 285K GitHub stars in ten days. I read its code and the tests: what it does, where it fails, and what it means for you.</description>
      <category>AI</category>
      <category>REA</category>
      <category>Reverse Engineering</category>
      <category>AI Agents</category>
      <category>MCP</category>
      <category>Ghidra</category>
      <category>Application Security</category>
      <category>Claude Code</category>
      <category>Open Source</category>
    </item>
    <item>
      <title>Building a scalable SaaS backend with NestJS and PostgreSQL</title>
      <link>https://www.huzaifaa.club/blog/nestjs-postgresql-saas-backend</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/nestjs-postgresql-saas-backend</guid>
      <pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate>
      <description>A NestJS and PostgreSQL SaaS backend that scales: structure, multi-tenancy, ORM and pooling, migrations, query speed, jobs, caching, auth and a growth path.</description>
      <category>Backend</category>
      <category>NestJS</category>
      <category>PostgreSQL</category>
      <category>SaaS</category>
      <category>Backend Architecture</category>
      <category>Scalability</category>
      <category>TypeScript</category>
      <category>TypeORM</category>
      <category>Multi-Tenancy</category>
      <category>Node.js</category>
    </item>
    <item>
      <title>Multi-tenant SaaS in PostgreSQL: schema vs row-level</title>
      <link>https://www.huzaifaa.club/blog/multi-tenant-postgresql</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/multi-tenant-postgresql</guid>
      <pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate>
      <description>Multi-tenant PostgreSQL compared: schema per tenant vs a shared schema with row-level security, the trade-offs, and a working RLS setup for NestJS.</description>
      <category>Backend</category>
      <category>PostgreSQL</category>
      <category>Multi-Tenancy</category>
      <category>SaaS</category>
      <category>Row-Level Security</category>
      <category>Database Design</category>
      <category>NestJS</category>
      <category>TypeORM</category>
      <category>Data Isolation</category>
    </item>
    <item>
      <title>NestJS project structure for large SaaS apps</title>
      <link>https://www.huzaifaa.club/blog/nestjs-project-structure</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/nestjs-project-structure</guid>
      <pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate>
      <description>NestJS project structure best practices for a growing SaaS: feature modules, clear boundaries, config, database, jobs, and CI rules that keep it clean.</description>
      <category>Backend</category>
      <category>NestJS</category>
      <category>Project Structure</category>
      <category>Architecture</category>
      <category>TypeScript</category>
      <category>Modular Monolith</category>
      <category>Node.js</category>
      <category>Best Practices</category>
      <category>TypeORM</category>
    </item>
    <item>
      <title>How I made legacy queries 30% faster with EXPLAIN ANALYZE</title>
      <link>https://www.huzaifaa.club/blog/postgresql-query-optimization-explain-analyze</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/postgresql-query-optimization-explain-analyze</guid>
      <pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate>
      <description>PostgreSQL query optimization on a legacy SaaS: find slow queries with pg_stat_statements, read EXPLAIN ANALYZE plans, and fix indexes, N+1s and estimates.</description>
      <category>Backend</category>
      <category>PostgreSQL</category>
      <category>Query Optimization</category>
      <category>EXPLAIN ANALYZE</category>
      <category>Indexing</category>
      <category>pg_stat_statements</category>
      <category>Performance</category>
      <category>NestJS</category>
      <category>TypeORM</category>
    </item>
    <item>
      <title>AWS infrastructure for small SaaS teams: what you actually need</title>
      <link>https://www.huzaifaa.club/blog/aws-architecture-for-startups</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/aws-architecture-for-startups</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description>AWS architecture for startups, stage by stage: what a small SaaS team needs at launch, what to add with paying customers, what to skip, and what it costs.</description>
      <category>Cloud</category>
      <category>AWS</category>
      <category>AWS Architecture</category>
      <category>Startups</category>
      <category>SaaS</category>
      <category>Cloud Infrastructure</category>
      <category>Linux</category>
      <category>DevOps</category>
      <category>Cost Optimization</category>
    </item>
    <item>
      <title>How we cut infrastructure costs by 35%</title>
      <link>https://www.huzaifaa.club/blog/reduce-aws-costs-startup</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/reduce-aws-costs-startup</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description>Reduce AWS costs without hurting reliability: how our startup cut its bill by 35% with rightsizing, Graviton, Savings Plans, NAT, storage and log fixes.</description>
      <category>Cloud</category>
      <category>AWS</category>
      <category>Cost Optimization</category>
      <category>FinOps</category>
      <category>Startups</category>
      <category>EC2</category>
      <category>Graviton</category>
      <category>Savings Plans</category>
      <category>NAT Gateway</category>
      <category>CloudWatch</category>
    </item>
    <item>
      <title>Ubuntu server hardening checklist for a fresh EC2 instance</title>
      <link>https://www.huzaifaa.club/blog/ubuntu-server-hardening-checklist</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/ubuntu-server-hardening-checklist</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description>Ubuntu server hardening checklist for a fresh EC2: SSH, automatic security updates, UFW and Docker, IMDSv2, kernel settings and audits, with every command.</description>
      <category>DevOps</category>
      <category>Ubuntu</category>
      <category>Linux</category>
      <category>Server Hardening</category>
      <category>Security</category>
      <category>AWS</category>
      <category>EC2</category>
      <category>SSH</category>
      <category>UFW</category>
      <category>Docker</category>
    </item>
    <item>
      <title>VPCs, subnets and security groups explained for developers</title>
      <link>https://www.huzaifaa.club/blog/aws-vpc-subnets-security-groups-explained</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/aws-vpc-subnets-security-groups-explained</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description>AWS VPCs, subnets and security groups explained for developers: CIDR ranges, public vs private subnets, NAT, endpoints and NACLs, with a layout to copy.</description>
      <category>Cloud</category>
      <category>AWS</category>
      <category>VPC</category>
      <category>Subnets</category>
      <category>Security Groups</category>
      <category>Networking</category>
      <category>NAT Gateway</category>
      <category>NACL</category>
      <category>Terraform</category>
      <category>Cloud Infrastructure</category>
    </item>
    <item>
      <title>S3 and CloudFront: signed URLs and caching done right</title>
      <link>https://www.huzaifaa.club/blog/s3-cloudfront-signed-urls</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/s3-cloudfront-signed-urls</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description>Serve private S3 files through CloudFront with signed URLs: Origin Access Control, key groups, signing in Node.js, signed cookies, cache keys and Cache-Control.</description>
      <category>Cloud</category>
      <category>AWS</category>
      <category>S3</category>
      <category>CloudFront</category>
      <category>Signed URLs</category>
      <category>CDN</category>
      <category>Caching</category>
      <category>Node.js</category>
      <category>Security</category>
    </item>
    <item>
      <title>CloudWatch logs, metrics and alarms for a Node.js API</title>
      <link>https://www.huzaifaa.club/blog/cloudwatch-nodejs-logging</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/cloudwatch-nodejs-logging</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description>CloudWatch logging for a Node.js API: JSON logs with pino, the awslogs Docker driver, Logs Insights queries, metric filters and alarms that reach a person.</description>
      <category>Cloud</category>
      <category>AWS</category>
      <category>CloudWatch</category>
      <category>Node.js</category>
      <category>Logging</category>
      <category>Monitoring</category>
      <category>Observability</category>
      <category>Docker</category>
      <category>pino</category>
      <category>Alerting</category>
    </item>
    <item>
      <title>AWS ALB vs Nginx load balancing: when you need which</title>
      <link>https://www.huzaifaa.club/blog/aws-alb-vs-nginx</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/aws-alb-vs-nginx</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description>AWS Application Load Balancer vs Nginx for a Node.js app: features, cost, high availability and TLS compared, when each one wins, and when to run both.</description>
      <category>Cloud</category>
      <category>AWS</category>
      <category>ALB</category>
      <category>Nginx</category>
      <category>Load Balancing</category>
      <category>Node.js</category>
      <category>High Availability</category>
      <category>Elastic Load Balancing</category>
      <category>DevOps</category>
    </item>
    <item>
      <title>Bash scripts to automate Postgres backups to S3</title>
      <link>https://www.huzaifaa.club/blog/bash-script-postgres-backup-s3</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/bash-script-postgres-backup-s3</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description>A production Bash script to back up PostgreSQL to S3 with pg_dump: verified dumps, a systemd timer, write-only IAM, lifecycle rules and a tested restore.</description>
      <category>DevOps</category>
      <category>PostgreSQL</category>
      <category>Bash</category>
      <category>AWS</category>
      <category>S3</category>
      <category>Backups</category>
      <category>pg_dump</category>
      <category>Linux</category>
      <category>Disaster Recovery</category>
      <category>systemd</category>
    </item>
    <item>
      <title>Do you actually need Kubernetes?</title>
      <link>https://www.huzaifaa.club/blog/do-i-need-kubernetes</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/do-i-need-kubernetes</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description>Do you need Kubernetes? What it gives you, what it really costs on EKS, the simpler options that fit most startups, and a checklist for when it pays off.</description>
      <category>DevOps</category>
      <category>Kubernetes</category>
      <category>EKS</category>
      <category>ECS</category>
      <category>Fargate</category>
      <category>Docker</category>
      <category>Docker Compose</category>
      <category>Startups</category>
      <category>DevOps</category>
      <category>AWS</category>
    </item>
    <item>
      <title>Deploying Node.js to production: Docker, CI/CD and Linux — the complete guide</title>
      <link>https://www.huzaifaa.club/blog/deploy-nodejs-to-production</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/deploy-nodejs-to-production</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <description>What it takes to run Node.js in production: production-ready code, Docker, Nginx and HTTPS, CI/CD to AWS, zero-downtime releases and safe database migrations.</description>
      <category>DevOps</category>
      <category>Node.js</category>
      <category>DevOps</category>
      <category>Docker</category>
      <category>CI/CD</category>
      <category>Nginx</category>
      <category>AWS</category>
      <category>Linux</category>
    </item>
    <item>
      <title>Docker layer caching in GitHub Actions: gha, registry and cache mounts</title>
      <link>https://www.huzaifaa.club/blog/github-actions-docker-layer-caching</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/github-actions-docker-layer-caching</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <description>Why Docker builds in GitHub Actions start from scratch, and how to cache layers with type=gha or a registry, cache multi-stage builds and keep npm cache mounts.</description>
      <category>DevOps</category>
      <category>Docker</category>
      <category>GitHub Actions</category>
      <category>CI/CD</category>
      <category>BuildKit</category>
      <category>Performance</category>
    </item>
    <item>
      <title>GitHub Actions CI/CD: build, test and deploy to EC2</title>
      <link>https://www.huzaifaa.club/blog/github-actions-deploy-to-ec2</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/github-actions-deploy-to-ec2</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <description>Build, test and deploy a Node.js app to AWS EC2 with GitHub Actions: OIDC instead of access keys, Docker images in ECR, and releases over SSM instead of SSH.</description>
      <category>DevOps</category>
      <category>GitHub Actions</category>
      <category>AWS</category>
      <category>EC2</category>
      <category>CI/CD</category>
      <category>Docker</category>
      <category>Node.js</category>
    </item>
    <item>
      <title>Nginx reverse proxy for Node.js with free SSL from Let&apos;s Encrypt</title>
      <link>https://www.huzaifaa.club/blog/nginx-reverse-proxy-nodejs-ssl</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/nginx-reverse-proxy-nodejs-ssl</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <description>Set up Nginx as a reverse proxy for Node.js on Ubuntu, add free HTTPS with Let&apos;s Encrypt and auto-renewal, and fix real client IPs, WebSockets and 502 errors.</description>
      <category>DevOps</category>
      <category>Nginx</category>
      <category>Node.js</category>
      <category>SSL</category>
      <category>Let&apos;s Encrypt</category>
      <category>Linux</category>
      <category>DevOps</category>
    </item>
    <item>
      <title>PM2 vs Docker for running Node.js in production</title>
      <link>https://www.huzaifaa.club/blog/pm2-vs-docker-nodejs-production</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/pm2-vs-docker-nodejs-production</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <description>PM2 and Docker solve different problems. What each one does, a side-by-side comparison, when to use one, both or neither, and a production setup for each.</description>
      <category>DevOps</category>
      <category>Node.js</category>
      <category>PM2</category>
      <category>Docker</category>
      <category>Linux</category>
      <category>DevOps</category>
    </item>
    <item>
      <title>Running database migrations safely in CI/CD</title>
      <link>https://www.huzaifaa.club/blog/database-migrations-ci-cd</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/database-migrations-ci-cd</guid>
      <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
      <description>Run database migrations in CI/CD without downtime: test them in CI, apply them once before each release, keep them backward-compatible, and avoid long locks.</description>
      <category>DevOps</category>
      <category>PostgreSQL</category>
      <category>CI/CD</category>
      <category>Database Migrations</category>
      <category>GitHub Actions</category>
      <category>Node.js</category>
      <category>DevOps</category>
    </item>
    <item>
      <title>How I Cut Our Deploy Time from 45 Minutes to Under 8</title>
      <link>https://www.huzaifaa.club/blog/speed-up-github-actions-pipeline</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/speed-up-github-actions-pipeline</guid>
      <pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate>
      <description>A case study in speeding up a GitHub Actions pipeline: dependency and Docker caching, parallel test shards, path filters and concurrency groups, with the YAML.</description>
      <category>DevOps</category>
      <category>GitHub Actions</category>
      <category>CI/CD</category>
      <category>DevOps</category>
      <category>Docker</category>
      <category>Performance</category>
      <category>GitHub Copilot</category>
      <category>AI</category>
      <category>Developer Experience</category>
    </item>
    <item>
      <title>NestJS Dockerfile: Multi-Stage Builds for Production</title>
      <link>https://www.huzaifaa.club/blog/nestjs-dockerfile-multi-stage-build</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/nestjs-dockerfile-multi-stage-build</guid>
      <pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate>
      <description>Build a NestJS Dockerfile with multi-stage builds, npm ci or pnpm, Prisma, a smaller runtime image, a non-root user, health checks and a CI workflow.</description>
      <category>DevOps</category>
      <category>Docker</category>
      <category>NestJS</category>
      <category>Node.js</category>
      <category>DevOps</category>
      <category>GitHub Actions</category>
      <category>pnpm</category>
      <category>Prisma</category>
      <category>Container Security</category>
    </item>
    <item>
      <title>Stripe webhooks that never double-charge: idempotency in Node.js</title>
      <link>https://www.huzaifaa.club/blog/stripe-webhooks-idempotency-nodejs</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/stripe-webhooks-idempotency-nodejs</guid>
      <pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate>
      <description>Stripe can deliver the same webhook twice and in any order. How to verify, de-duplicate and process events safely with Express and PostgreSQL.</description>
      <category>Payments</category>
      <category>Stripe</category>
      <category>Node.js</category>
      <category>PostgreSQL</category>
      <category>Webhooks</category>
      <category>Payments</category>
      <category>Express</category>
    </item>
    <item>
      <title>Zero-downtime deploys for a Node.js API with Docker, Nginx and GitHub Actions</title>
      <link>https://www.huzaifaa.club/blog/zero-downtime-deploys-docker-nginx-github-actions</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/zero-downtime-deploys-docker-nginx-github-actions</guid>
      <pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate>
      <description>A blue-green deploy on one Linux server: build the image in CI, start the new container, wait until it is healthy, then switch Nginx without dropping a request.</description>
      <category>DevOps</category>
      <category>Docker</category>
      <category>Nginx</category>
      <category>GitHub Actions</category>
      <category>CI/CD</category>
      <category>Linux</category>
      <category>Node.js</category>
    </item>
    <item>
      <title>Server-Sent Events vs WebSockets: picking a real-time channel</title>
      <link>https://www.huzaifaa.club/blog/server-sent-events-vs-websockets</link>
      <guid isPermaLink="true">https://www.huzaifaa.club/blog/server-sent-events-vs-websockets</guid>
      <pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate>
      <description>When a one-way stream beats a two-way socket, and how to run Server-Sent Events in Node.js behind Nginx without dropping updates.</description>
      <category>Backend</category>
      <category>Node.js</category>
      <category>Real-time</category>
      <category>Server-Sent Events</category>
      <category>WebSockets</category>
      <category>Nginx</category>
      <category>Redis</category>
    </item>
  </channel>
</rss>
