Profile picture of Jagan Reddy

Software Engineer • Web Developer

Building scalable, performant web applications

I’m Jagan Reddy, a software engineer focused on crafting clean, reliable web experiences using modern frontend and backend technologies.

|

Experience

Places I've Worked At

Octahedron

Junior Full Stack Developer

Feb 2024 – Present
  • Built scalable ELT pipelines orchestrating Node.js ingestion and Python (Pandas) transformations on Snowflake, processing 50K+ daily records, reducing manual processing time by 70%.
  • Leveraged Snowflake as a data warehouse to support flexible schema design, optimizedquerying, and efficient data replication for analytics workloads.
  • Integrated AI-based anomaly detection to identify data inconsistencies and improve data quality.
Projects

Things I've built

A collection of backend services and full-stack applications — auth systems, URL infrastructure, OAuth integrations, and analytics.

A full-stack URL shortening service built with FastAPI and MongoDB. Users sign up, generate personal API keys, then submit long URLs to receive compact short paths via Base62 encoding with obfuscation. Each shortened URL is tied to a user account, and the API exposes endpoints for signup, login, API key creation, short-URL generation, and retrieving all URLs for a given user. Passwords are secured with Argon2id hashing.

Key Features

Base62 encoding with obfuscation for short URL generation
User signup / login with Argon2id password hashing
Per-user API key creation and validation
Full CRUD — create short URLs and retrieve all mappings per user
Async MongoDB via AsyncMongoClient for non-blocking I/O

API Endpoints

POST/auth/signup
POST/auth/login
POST/api_key/new
POST/short_url/new
GET/users/{id}/urls
PythonFastAPIMongoDBPydanticUvicornArgon2id
View on GitHub

PyAuth is a modular, production-oriented authentication backend. It issues short-lived JWTs (5-min expiry) paired with long-lived refresh tokens (configurable via env vars). Refresh tokens are hashed with a dedicated secret before storage and can be explicitly revoked. The project follows a clean layered architecture: APIs → Services → Utils, with fully separated Pydantic request/response models for every endpoint.

Key Features

JWT creation and verification with configurable claims (sub, iss, aud, iat, exp)
Refresh token generation, rotation on use, and explicit revocation
Clean layered architecture — APIs / Services / Utils
Fully typed Pydantic request and response models
Environment-driven secret management with runtime validation

API Endpoints

POST/tokens/create
POST/tokens/verify
POST/tokens/refresh
DELETE/tokens/revoke
PythonFastAPIPydanticPyJWTUvicorn
View on GitHub

PyAuthUI is the client-side companion to PyAuth. Built with Next.js 15 and TypeScript, it provides the login and registration pages that talk to the PyAuth FastAPI backend. It handles JWT storage, automatic token refresh on expiry, and route-level auth guards. The project uses Tailwind CSS for styling and pnpm workspaces for dependency management.

Key Features

Login & registration forms wired to PyAuth API endpoints
Client-side JWT handling with automatic refresh-token rotation
Route-level authentication guards for protected pages
Next.js App Router with server and client components
Tailwind CSS theming with pnpm workspace setup
TypeScriptTailwindCSSNext.jsReactpnpm
View on GitHub

OAuth is a Node.js server built on Fastify that handles Google OAuth 2.0 sign-in. It exposes versioned API routes under /api/v1 and keeps provider logic separated in a dedicated utils layer. The flow covers constructing the Google authorization URL, handling the redirect callback, exchanging the authorization code for access tokens, and fetching the authenticated user's profile — all wired together with clean route handlers.

Key Features

Google OAuth 2.0 full authorization code flow end-to-end
Versioned API structure (api/v1) for forward compatibility
Utility layer isolates provider-specific token exchange logic
Fetches authenticated user profile after successful handshake
Fastify plugin architecture keeps routes modular and testable

API Endpoints

GET/api/v1/auth/google
GET/api/v1/auth/callback
FastifyNode.jsGoogle OAuth
View on GitHub

A backend service for collecting and processing analytics events. Built with Express.js, it ingests tracking payloads via a dedicated collection route, validates them with Zod schemas, persists data through Prisma, and resolves visitor geo-location via an external service. The architecture is split into layers — routes, schemas, services, middleware, cache, and background jobs — with OpenAPI specs and Docker support baked in from the start.

Key Features

Analytics event ingestion via /routes/collect endpoint
Zod schema validation on every incoming payload
Prisma ORM for type-safe database access and migrations
Request-level caching layer to reduce redundant DB hits
Background jobs for async event processing and aggregation
Geo-location service resolves visitor location from IP

API Endpoints

POST/collect/event
POST/collect/batch
JavaScriptExpress.jsPrismaZodyarnDocker
View on GitHub

Connect

Find me around The Web

Contact Me

Let’s build something together