Open to full-time engineering roles

Big ideas.Built for real.

Thoughtful interfaces. Serious engineering. I build web applications and AI systems — from the first database table to the final interaction.

BASED IN BENGALURU · BUILDING END TO ENDScroll to the details

01 / The engineer behind the interface

One mind.
The whole system.

I care about what happens behind the button as much as how it feels to press it.

Thinking in connections

I'm a Full-Stack Engineer focused on building complete software systems — not isolated demos.

My work spans production full-stack web applications, backend systems and REST APIs, SQL and database-backed workflows, document-grounded AI with retrieval-augmented generation, applied machine learning, and cloud deployment.

I learn best by building end to end: database design, backend APIs, frontend interfaces, security, testing and deployment.

  1. 01Database
  2. 02API
  3. 03Interface
  4. 04Deployment
Vittal J G, Full-Stack Engineer

Vittal J G

Full-Stack Engineer

ACTIVE
Role
Full-Stack Engineer
Location
Bengaluru, India
Focus
Full-stack systems + AI
Education
BCA — Computer Applications
The toolkit / chosen for the problem

Full-Stack

  • Python
  • Django
  • Django REST
  • React
  • FastAPI
  • REST APIs
  • PostgreSQL
  • MySQL
  • SQL
  • Tailwind CSS

AI & Retrieval

  • RAG
  • MongoDB Atlas
  • Vector Search
  • Jina Embeddings
  • LLM integrations
  • Document ingestion

Machine Learning

  • Pandas
  • NumPy
  • scikit-learn
  • Random Forest
  • GridSearchCV
  • Joblib

Tools

  • Git
  • GitHub
  • Vercel
  • Render
  • Postman
  • VS Code
See these decisions in practice

A conversation with the stack.

Real projects. A few useful commands.

vittal@terminal:~$welcome

Vittal / Engineering Console

Type help or click a quick action pill below to inspect system capabilities.

↑ ↓ command history

Selected work / flight deck

Proof, not promises.

A live ship log of production-minded systems — each one starts as a messy problem and lands as a product people can actually use.

OPERATING PRINCIPLE

Make the invisible architecture feel obvious.

6 systems mapped01 → ∞
RAGVector SearchFastAPIDjango RESTReact 19Next.js 16Three.jsMachine LearningPostgreSQLCloud Deployment
01system / jobpilot
left → center
Automation SystemsFlagshipLive on Oracle Cloud

JobPilot

Autonomous job intelligence for software roles

A fully autonomous job-hunt platform for software engineering roles in India. FastAPI and PostgreSQL own discovery, normalization, enrichment, eligibility, matching and notification state while scheduled orchestration keeps the system moving.

  • Multi-provider ingestion with canonical listings and cross-source duplicate suppression
  • Deterministic fresher eligibility, preference matching and quota enforcement
  • SSRF-safe enrichment with graceful snippet fallback and observable execution state
  • Exact-SHA ARM64 deployment with pre-migration backup and restore verification

590

Tests

2

Provider feeds

ARM64 VPS

Deployment

ReactTypeScriptFastAPIPostgreSQL 16n8nDockerCaddy
case file / 01 shipped with intent

autonomous system / JobPilot

Signal in.
Shortlist out.

one control loop four durable boundaries

Follow an opportunity through JobPilot. A scheduled signal becomes a canonical job, an eligible match, then an observable delivery. The system keeps moving. The decisions stay visible.

01

01 / discover

A scheduled trigger becomes a useful shortlist.

JobPilot turns provider noise into a daily, fresher-friendly stream without asking the operator to manually search every source.

scheduled triggerfresh recommendations
  • multi-provider discovery
  • fresher-first stream
JobPilot — Today / live recommendations
Today / live recommendations
02

02 / normalize

Every listing gets one canonical identity.

Provider IDs prevent replayed pulls, while canonical hashes link the same opportunity across providers without duplicating the job record.

provider recordsone canonical job
  • source-level replay protection
  • cross-provider identity
JobPilot — Jobs / normalized archive
Jobs / normalized archive
03

03 / decide

Eligibility, scoring and quotas stay server-authoritative.

FastAPI and PostgreSQL own the durable state: provider reservations, fresher gates, preference matching and notification claims. The scheduler only asks what to run next.

operator intenteligible matches
  • server-authoritative decisions
  • durable quota reservations
JobPilot — Search vectors / operator intent
Search vectors / operator intent
04

04 / operate

The system is built to fail closed.

SSRF defenses, leased enrichment work, idempotent notification state and exact-SHA deployment make the automation observable instead of mysterious.

durable claimsobservable delivery
  • SSRF-safe enrichment
  • idempotent notification claims
JobPilot — System stats / operational surface
System stats / operational surface

the operating contract

FastAPI decides. PostgreSQL remembers. The scheduler keeps time.

02system / cyphr
left → center
AI SystemsTechnical deep dive

CYPHR

Document-grounded RAG platform

A retrieval-augmented chat platform that answers strictly from documents the user uploads. PDFs are extracted, chunked, embedded and indexed for vector retrieval, so every answer is grounded in the knowledge base and cites its source file and page.

  • MongoDB Atlas Vector Search with $vectorSearch over Jina Embeddings v3
  • Six configurable LLM providers with runtime model selection
  • Google OAuth, per-user tenant isolation, CSRF & origin validation
  • Tiered rate limits and 125 automated security / regression tests

125

Automated tests

v0.1.0

Release

6

LLM providers

FastAPIReactMongoDB AtlasVector SearchRAGJina Embeddings
case file / 02 shipped with intent
Explore the architecture
SYSTEM ONLINE/CYPHR • Architecture Deep Dive
125 Tests Passing
Jina v3 1024-D Index
Per-User Isolation
Source-File & Page Citations
Evidence-Led EngineeringAI Systems

Every answer earns its evidence.

A plausible answer is not the same as a supported one. CYPHR turns uploaded documents into a searchable knowledge base and brings source-file and page citations into the chat experience.

01Illustrative retrieval flow · sample data, not a benchmark
Source: audit_report_2025.pdfp. 14
// Example source passage • Chunk #42

“...Operating margins in Q3 reached 28.4%, representing a 14% efficiency gain in internal search operations. The transition from sparse keyword search to localized dense vector retrieval reduced query latency from 320ms to 18ms across all enterprise tenants... Overall cash flow remains steady.”

1024-D Vector Match
Cosine: 0.894Latency: 18ms
CYPHR Cited AnswerSource Cited

In Q3, operating margins expanded to 28.4%, driven by a 14% operational efficiency gain following the deployment of localized dense vector retrieval, which decreased search latency to 18ms.

audit_report_2025.pdf • Page 14Cosine: 0.894
02System Architecture • Unfolds as You Scroll

The 5 core layers of CYPHR.

Follow one document through the system. The diagram evolves with each chapter; the engineering story stays in ordinary reading flow.

01 of 05
Data Ingestion

Start with the source material.

User-uploaded PDFs are extracted, divided into passages, embedded and indexed before retrieval. Source file and page metadata travel with each passage.

InputUploaded PDFs
PreparationChunked passages
ProvenanceSource file + page
Project Evidence

A retrieval-augmented chat platform that answers strictly from documents the user uploads. PDFs are extracted, chunked, embedded and indexed for vector retrieval, so every answer is grounded in the knowledge base and cites its source file and page.

PDF ExtractionPassage ChunkingSource Metadata
The document is the beginning. File and page metadata stay attached.
Illustrative · cyphr/ingestion/parser.py
// Document Intake Pipeline
const chunks = partitionDocument(file, {
  chunkSize: 512,
  chunkOverlap: 64,
  extractMetadata: ["page", "filename", "section"]
});
02 of 05
API Gateway

Make the boundary dependable.

FastAPI handles the application boundary, with Google OAuth, per-user tenant isolation, CSRF and origin validation, and tiered rate limits.

FrameworkFastAPI Async Router
SecurityOAuth 2.0 + CSRF Shield
IsolationPer-user retrieval scope
Project Evidence

Google OAuth, per-user tenant isolation, CSRF & origin validation

FastAPIOAuth 2.0CSRF DefenseRate Limits
Passages cross an authenticated, per-user boundary before retrieval.
Illustrative · cyphr/gateway/router.py
@router.post("/query")
@limiter.limit("30/minute")
async def handle_rag_query(
    query: QueryRequest,
    user: User = Depends(get_current_authenticated_user)
):
    return await rag_service.query_tenant_store(user.tenant_id, query)
03 of 05
Vector Retrieval

Retrieve evidence, not vibes.

MongoDB Atlas Vector Search uses Jina Embeddings to generate 1024-dimensional dense vectors, returning cosine-ranked passages to keep answers strictly grounded in verified facts.

EmbeddingsJina v3 1024-Dimensional
Index EngineMongoDB Atlas Vector Search
RetrievalRanked source passages
Project Evidence

MongoDB Atlas Vector Search with $vectorSearch over Jina Embeddings v3

MongoDB AtlasVector SearchJina EmbeddingsCosine Sim
A query searches the vector space. Relevant passages become evidence.
Illustrative · cyphr/vector/search.py
pipeline = [
  {"$vectorSearch": {
    "index": "vector_index",
    "path": "embedding",
    "queryVector": jina_v3_embed(query.text),
    "numCandidates": 100,
    "limit": 5
  }}
]
04 of 05
Grounded LLM

Keep the model layer flexible.

Six configurable LLM providers let the user choose a model at runtime. Retrieved passages supply the context for document-grounded answers with source citations.

Model Routing6 Dynamic Providers
SelectionRuntime model choice
GroundingRetrieved document context
Project Evidence

Six configurable LLM providers with runtime model selection

6 ProvidersDynamic RoutingStrict Grounding
Retrieved context travels to the model selected at runtime.
Illustrative · cyphr/orchestrator/router.ts
const response = await modelRouter.generate({
  provider: userSettings.provider,
  context: retrievedPassages,
  instruction: "Answer strictly from context. Cite [File, Page] on every claim."
});
05 of 05
Client Interface

Make confidence visible.

React presents a chat workspace with source-file and page citations, helping the reader check an answer against the uploaded material.

FrontendReact chat workspace
CitationsSource file + page
VerificationDocument provenance
Project Evidence

A retrieval-augmented chat platform that answers strictly from documents the user uploads. PDFs are extracted, chunked, embedded and indexed for vector retrieval, so every answer is grounded in the knowledge base and cites its source file and page.

ReactCitationsChat Workspace
The answer carries a citation back to the original file and page.
Illustrative · cyphr/components/ChatWorkspace.tsx
<CitationBadge
  document={chunk.source}
  page={chunk.pageNumber}
  onInspect={() => highlightSourcePassage(chunk.id)}
/>
03Production Engineering Standards
125

Automated Test Coverage

125 automated security and regression tests support the project's release workflow.

Security & regression coverage
Scoped

Per-User Tenant Isolation

Retrieval is scoped to the authenticated user, with CSRF and origin validation at the application boundary.

Google OAuth · access boundaries
6

Supported Model Providers

Six configurable providers with runtime model selection keep the model layer flexible.

Configurable model selection
Cited

Evidentiary Verification

Source-file and page citations give readers a way to check responses against their uploaded documents.

Source file & page provenance
03system / eazyshop
right → center
Full-Stack

EazyShop

Production full-stack commerce platform

A database-backed Django REST + React commerce platform covering the complete shopping lifecycle alongside administrative workflows — from catalogue and cart to payments, orders and audit logging.

  • Catalogue, cart, wishlist, checkout, payments, orders, reviews & gift cards
  • Razorpay payment flow with order confirmation and history
  • Admin suite: products, categories, orders, users and review management
  • Audit logging across administrative actions

23

Screens

Store + Admin

Surfaces

DjangoDjango RESTReactPostgreSQLRazorpay
case file / 03 shipped with intent
04system / krypton
left → center
Design Engineering

KRYPTON

Production agency site — motion & systems design

A high-craft Next.js 16 agency site built around a systems-design narrative: cinematic GSAP + Lenis motion, a WebGL tech-stack radar, and a process story that moves from discovery to ship.

  • Cinematic scroll choreography with GSAP ScrollTrigger and Lenis
  • WebGL visuals rendered with OGL for a lightweight footprint
  • Narrative sections: capability, services, work, manifesto, process
  • Production-minded, motion-first marketing experience

22

Screens

5

Process steps

Next.js 16React 19GSAPLenisOGLTailwind v4
case file / 04 shipped with intent
05system / aihouseprice
right → center
Machine Learning

AI House Price Estimator

End-to-end applied machine learning

An end-to-end ML application that predicts California house prices through a web interface — evolving from model experimentation into a deployed system with a REST API, React frontend and cloud hosting.

  • Linear, Decision Tree and Random Forest regression compared on MAE / RMSE / R²
  • GridSearchCV hyperparameter tuning with 5-fold cross-validation
  • Feature-importance analysis and a final tuned Random Forest
  • FastAPI backend, React + Vite frontend, Swagger API docs

0.806

R²

0.326

MAE

0.504

RMSE

FastAPIReactVitescikit-learnPandasNumPy
case file / 05 shipped with intent
06system / lms
left → center
Full-StackIn development

Library Management System

Database-backed library workflow

A database-backed application for the complete library workflow — catalogue, reservations, borrowing, fines and overdue tracking, member management and administrative reporting.

  • Book catalogue, details and availability
  • Reservations, borrowed books and fines / overdue tracking
  • Member management and new-book intake
  • Administrative reports over library activity
ReactREST APIRelational DB
case file / 06 shipped with intent

keep scrolling / the system is still live

Have a hard problem?

04 / Your next engineer?

Good things start
with a hello.

Available for full-time software engineering roles. If your team values thoughtful interfaces and end-to-end ownership, let’s talk.

Bengaluru, India