Faruq Alabi Bashir — profile photo

CodeTech

Faruq Alabi Bashir

Python Backend Engineer crafting clean, reliable, and scalable systems—with a focus on production-ready APIs and developer ergonomics.

FastAPI PostgreSQL MongoDB Redis Docker Kubernetes OAuth 2.0 JWT Auth Microservices REST APIs AWS Azure CI/CD Rate Limiting Middleware Git

Complete Tech Stack

Production-grade tools and technologies I work with daily

🚀 Framework

FastAPI Async/Await

🗄️ Databases

PostgreSQL MySQL MongoDB Redis

🔐 Authentication

OAuth 2.0 JWT OpenID Connect Clerk

⚙️ Architecture

Microservices Monolithic REST APIs Event-Driven

🐳 DevOps

Docker Kubernetes CI/CD Nginx

☁️ Cloud & Deploy

AWS Azure Railway DigitalOcean

🛡️ Security & Performance

Rate Limiting CORS Middleware Caching

🔧 Tools

Git/GitHub Celery SQLAlchemy Pydantic

🚀 Backend Specialist

🧠 Architecture

API-first design, modular services, and data flows designed to scale with confidence.

🔐 Security First

Robust authentication and authorization: JWT patterns, OAuth2 flows, and secure token management.

🛢️ Data Expert

PostgreSQL schema design, query optimization, and Redis-based caching strategies.

⚙️ Production Ready

Containerized apps, Nginx reverse proxy, CI/CD pipelines, monitoring, and observability.

⚡ Performance

Async FastAPI services with non-blocking I/O and careful resource management.

♻️ Iteration

Ship, measure, and refine — rapid iteration aligned with production standards.

🛠️ Featured Projects

Note App

Complete authentication with JWT, categorized notes, and a well-structured FastAPI backend.

View on GitHub →

Telex A2A Data Insight Agent

Backend agent that automates data processing and insight workflows for integrations.

View on GitHub →

Task Manager

CRUD APIs demonstrating clean architecture and testable FastAPI patterns.

View on GitHub →

Country Currency Exchange

RESTful lookup endpoints with concise API contracts and solid error handling.

View on GitHub →

HNG Stage Projects

Progressive backend development across multiple stages — a record of learning and growth.

View All →

Python Practice Scripts

Daily scripting and algorithm practice — continuous refinement of fundamentals.

View on GitHub →

📖 Story

Backend engineering is fun — until it isn't. A recent deployment challenge reminded me how much of engineering is infrastructure problem solving.

🚀 Backend Engineering Is Fun… Until It Isn't 😅
But hey, that's what we do.

I've been working on the backend of a student-focused platform — an app aimed at solving a specific challenge students face within their institutions and surrounding communities. The project is still under active development. I'm building the backend, while a friend (who originally proposed the idea) handles the full Frontend.

Recently, I implemented a Celery worker to handle background tasks — one of which is sending verification emails during user onboarding. Simple and straightforward… until deployment entered the chat.

🧩 Challenge 1: SMTP on Railway

I deployed the backend components in stages on Railway so the frontend and backend could progress in sync.

I discovered something crucial:

👉 Railway blocks SMTP ports for users on the Free/Hobby tier.

That broke my original FastAPI-Mail via SMTP set-up.
No email → No user verification → No onboarding → No app.

🧩 Challenge 2: Switching to Resend

Since Railway recommended Resend as their most compatible email API service provider, I switched to Resend.

Here's the twist:

Resend only allows sending emails from verified domains, which we don't have yet.

Their testing domain (@resend.dev) can only send emails to your own email — the same email address used to register the account.

Our entire user creation and onboarding flow relies on email verification for security reasons (authenticity, preventing scams, etc.), so you can imagine how limiting that was.

😅 The Reality of Backend Work

This part drained me for a moment.
But backend engineering is truly:

20% building features, 80% solving unpredictable infrastructure problems.
And that's exactly where the fun is.

🔧 The Way Forward

We've now set up a temporary workaround to keep development moving. In parallel, we're preparing all the proper production needs: domain acquisition, proper email infrastructure, stable hosting, and everything else required for a secured, production-ready system.

Once that's all in place, we drop the workaround and plug in the solid, scalable email flow we originally designed.

That's the life of a backend engineer:
Fix it. Patch it. Adapt it. Deploy it.
And keep the project moving — no matter what the stack throws at you.

Posted by Faruq Alabi Bashir — Python Backend Engineer

🎯 How I Work

📬 Let's Connect

Open to backend engineering opportunities and collaborations.