Skip to content
View Arjung352's full-sized avatar

Block or report Arjung352

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Arjung352/README.md

Arjun Gupta

I build full-stack applications with a focus on backend engineering, security, and systems that work beyond the happy path.

MCA Scholar · C-DAC Noida (GGSIPU) · Class of 2027

Portfolio  ·  LinkedIn  ·  LeetCode  ·  HackerRank  ·  Email

$ whoami
Arjun Gupta — Software Engineer in progress

$ focus
Full-stack engineering · Backend systems · DSA · DevOps

I care about the parts of software engineering that are easy to overlook: authorization boundaries, data consistency, validation, failure handling, and deployment. My projects are where I work through those problems, from designing REST APIs to connecting authentication, databases, and third-party services.


Featured Projects

Code Canvas  ·  Collaborative development platform

A collaborative coding workspace designed to bring code editing and developer communication together. The project explores the engineering behind a shared development environment, including authentication, database-backed application state, and real-time collaboration.

The engineering focus: managing shared state, designing the data model, organizing application features, and understanding how real-time communication fits into a full-stack system.

Stack: Next.js · TypeScript · Tailwind CSS · PostgreSQL · Prisma · Clerk

flowchart LR
    U["Developers"] --> UI["Next.js Application"]
    UI --> AUTH["Clerk Authentication"]
    UI --> API["Application Logic"]
    API --> DB[("PostgreSQL")]
    API --> RT["Real-time Collaboration"]
    RT <--> U
Loading

TasteBudsTreat  ·  MERN food ordering platform

A food ordering application built as a college team project. It supports customer ordering workflows, restaurant management, menu browsing, and administrative functionality.

The project brings together several backend concerns that are useful beyond a basic CRUD application:

  • Authentication and role-based access: Clerk-powered authentication and role-specific customer, restaurant, and admin experiences.
  • Order and payment workflows: Razorpay integration, with webhook handling designed around order references and duplicate-event protection.
  • Cart management: Redux-based state management with local storage persistence.
  • Menu discovery: Filtering by cuisine and vegetarian/non-vegetarian options, alongside pagination.
  • Media and notifications: Cloudinary image handling and email notifications through Nodemailer.
  • Conversational interface: Gemini-powered food-ordering chatbot.

Stack: React · Node.js · Express.js · MongoDB · PostgreSQL · Clerk · Razorpay · Redux · Cloudinary · Nodemailer · Gemini

flowchart LR
    %% Frontend
    FE["React 18 + Tailwind CSS<br/>Customer UI • Restaurant UI • Admin UI"]

    %% CI/CD
    CI["GitHub Actions<br/>Docker build / deploy"]

    %% Backend API
    subgraph API["Express REST API"]
        direction LR
        SEC["CORS +<br/>Security Headers"]
        AUTH["Clerk Auth<br/>Middleware"]
        ROUTES["Cart / Restaurant /<br/>Menu / User Routes"]
        CTRL["Controllers +<br/>Validation"]
        ORDER["Order &<br/>Payment Logic"]

        SEC --> AUTH --> ROUTES --> CTRL --> ORDER
    end

    %% Database
    DB[("MongoDB<br/>Cart • Restaurant •<br/>Menu • Users • Orders")]

    %% External services
    CLERK["Clerk<br/>Authentication"]
    RAZOR["Razorpay<br/>Payments"]
    CLOUD["Cloudinary<br/>Image Uploads"]
    EMAIL["Gmail<br/>Email"]
    GEMINI["Gemini<br/>Food Chatbot"]

    %% Main request flow
    FE -->|"HTTPS / REST JSON"| SEC
    ORDER <-->|"CRUD"| DB

    %% External service interactions
    CLERK <-->|"Identity / Auth"| AUTH
    ORDER <-->|"Create & verify payments"| RAZOR
    CTRL <-->|"Upload / retrieve images"| CLOUD
    CTRL -->|"Send email"| EMAIL
    ROUTES <-->|"Chatbot requests / responses"| GEMINI

    %% Deployment flow
    CI -.->|"CI/CD • Build & deploy"| API
    CI -.->|"Frontend deployment"| FE

    %% Chatbot UI interaction
    FE -.->|"Chat messages"| GEMINI

    %% Styling
    classDef frontend fill:#17212d,stroke:#aab8c8,color:#f1f5f9,stroke-width:1.5px
    classDef backend fill:#17212d,stroke:#aab8c8,color:#f1f5f9,stroke-width:1.5px
    classDef database fill:#17212d,stroke:#aab8c8,color:#f1f5f9,stroke-width:1.5px
    classDef external fill:#17212d,stroke:#aab8c8,color:#f1f5f9,stroke-width:1.5px
    classDef deployment fill:#17212d,stroke:#aab8c8,color:#f1f5f9,stroke-width:1.5px

    class FE frontend
    class SEC,AUTH,ROUTES,CTRL,ORDER backend
    class DB database
    class CLERK,RAZOR,CLOUD,EMAIL,GEMINI external
    class CI deployment

    style API fill:#202832,stroke:#aab8c8,color:#f1f5f9,stroke-width:2px
Loading

FinTrack API  ·  Finance management backend

A REST API focused on financial records, access control, and predictable request handling. This project is where I work on backend fundamentals that matter when different users need different levels of access to sensitive application data.

What it covers:

  • JWT authentication: token-based authentication with password hashing using bcrypt.
  • Role-based access control: separate VIEWER, ANALYST, and ADMIN permissions.
  • Input validation: Zod schemas for validating incoming data.
  • Rate limiting: fixed-window request limiting to reduce excessive traffic.
  • Database access: Prisma ORM with PostgreSQL.
  • API documentation: Swagger UI through /api-docs.
  • Deployment: Docker-based containerization and deployment troubleshooting.

I chose PostgreSQL for its relational data model and transaction guarantees, which suit financial records and structured relationships.

Stack: Node.js · Express.js · PostgreSQL · Prisma · JWT · bcrypt · Zod · Docker · Swagger · Postman

flowchart LR
    Client[Client / Frontend / Postman] -->|HTTP Request| API[Express REST API]
    API --> Middleware[Global Middleware\nCORS + JSON Parsing + Rate Limiter]
    Middleware --> Routes[Route Modules\nAuth / Records / Users / Dashboard]
    Routes --> Controllers[Controllers\nBusiness Logic]
    Controllers --> Auth[JWT Authentication + Role Authorization]
    Controllers --> Prisma[Prisma Client]
    Prisma --> DB[(Supabase PostgreSQL)]

    Auth -->|Validate token| Controllers
    Controllers -->|JSON Response| Client
Loading

Engineering decisions, explained

A technology list tells you what someone has used. The more useful question is how they apply it.

These are the implementation decisions I focus on across my projects:

Engineering concern How I approach it
Authentication Separate identity verification from application authorization.
Authorization Enforce role permissions on protected backend operations, not just in the UI.
API validation Validate incoming data before it reaches business logic or database operations.
Payment processing Account for webhook retries and duplicate events when updating order state.
Data modeling Choose relational or document-based storage based on the data and access patterns.
Error handling Return meaningful HTTP status codes and consistent API responses.
Rate limiting Put request limits in the request pipeline to reduce abuse.
Deployment Use Docker and deployment tooling to make application environments more reproducible.

These are engineering principles reflected in my project work, not a claim that every project implements every item identically.


How I approach engineering

  • Security belongs on the backend. Hiding a button is not authorization. Protected operations need server-side checks.
  • Validate at the boundary. Invalid requests should be rejected before they cause inconsistent state.
  • Think about retries. Payment callbacks and other external events can be delivered more than once.
  • Choose the right data model. Relational integrity and flexible document structures solve different problems.
  • Make APIs understandable. Clear resource boundaries, consistent responses, and API documentation improve maintainability.
  • Test failure cases. Negative values, missing fields, unauthorized requests, duplicate events, and invalid state transitions deserve attention.
  • Learn by shipping. Building, deploying, debugging, and revisiting implementation decisions is part of becoming a better engineer.

Stack

Languages and frontend
Area Technologies
Languages Java · JavaScript · TypeScript · C++ · Python · SQL
Frontend React · Next.js · Redux · HTML5 · CSS3
Styling and UI Tailwind CSS · Material UI · Bootstrap
Routing and forms React Router · React Hook Form
Backend and databases
Area Technologies
Backend Node.js · Express.js · REST APIs
Databases PostgreSQL · MongoDB · MySQL
ORM and data access Prisma
Authentication JWT · Clerk · bcrypt
Validation and security Zod · RBAC · Rate limiting
Integrations Razorpay · Cloudinary · Nodemailer · Gemini
API testing and documentation Postman · Swagger
DevOps and development tools
Area Technologies
Containers Docker
CI/CD GitHub Actions · Jenkins
Cloud and deployment AWS · Vercel · Netlify
Infrastructure and networking Nginx · Kubernetes
Development environment Linux · Bash · Git · GitHub
Other tools npm · Windows Terminal

Beyond projects

Data structures and algorithms

I practise DSA consistently to improve problem-solving, algorithmic thinking, and implementation skills.

My focus is on understanding the reasoning behind a solution, including time complexity, space complexity, edge cases, and alternative approaches.

Currently learning

  • DevOps: Linux fundamentals, Docker, CI/CD, and deployment workflows.
  • DSA: Problem-solving patterns, data structures, and algorithm analysis.
  • Backend engineering: API design, authentication, authorization, data modeling, and reliability.

Other work

Explore more projects, experiments, and development work through my portfolio and GitHub profile.

I also publish articles on DotBlog.


Open to software engineering, backend development, and full-stack opportunities.

Portfolio  ·  LinkedIn  ·  Email me

Pinned Loading

  1. code-canva code-canva Public

    Forked from vikrantdubey6/code-canva

    Code Canva is a modern, cloud-powered collaborative IDE built with Next.js, AI-driven developer tools, and a sleek shadcn/ui interface. It enables developers to write, understand, and execute code …

    TypeScript

  2. TasteBudsTreat TasteBudsTreat Public

    Taste Buds Treat is an e-commerce web app that lets you choose foods you like and add them to your cart to order them and Pay using RazorPay. It was built with ReactJS, React-Router, Redux, and Tai…

    JavaScript 2

  3. BlogApp BlogApp Public

    DotBlog is a multipage blog application that requires you to register before creating and uploading a blog. You can also like a blog if you enjoy it. It is built with ReactJS, TailwindCSS, React-Ro…

    JavaScript

  4. FinTrack_API FinTrack_API Public

    A Node.js REST API for financial dashboard management with role-based access control (RBAC). Built with Express.js, Prisma ORM, and Supabase PostgreSQL. Features JWT authentication, schema validati…

    JavaScript