30 Oct
|
International Institute of Information Technology Banglore (A4I)
|
Bengaluru
30 Oct
International Institute of Information Technology Banglore (A4I)
Bengaluru
AI ENGINEER
AGENTIC SYSTEMS · A4I Lab (IIIT-B × Microsoft)
Organization: A4I Lab (IIIT-B × Microsoft)
Location: IIIT Bangalore
Type: Contract (through March 2027, extendable)
Experience: 3 to 5 years
ABOUT A4I LAB
AI Innovation and Inclusion Initiative (A4I) is a partnership between Microsoft and IIIT-B, collaborating with non-profit partners to harness AI for solving real-world challenges in education, healthcare, accessibility, and agriculture. A4I evolves innovations into open-source Digital Public Goods (DPGs) that are deployable at scale, fostering a strong AI innovation ecosystem for social impact.
THE OPPORTUNITY
We are looking for an experienced AI-first engineer to join our core team in developing large-scale agentic AI solutions and integrating them with live systems that deliver meaningful social impact. This role demands expertise in building intelligent agentic systems, orchestrating complex AI workflows, polishing existing AI and RAG-based responses, and developing scalable platforms that integrate LLMs, multi-modal inputs, and RAG based architectures.
You will play a key role in driving end-to-end innovation — from research to deployment — working with cross-functional teams that include architects, data scientists, and researchers from partner organizations. If shipping production-grade agentic pipelines that matter excites you, read on.
WHAT YOU WILL BE DOING
Building Agentic AI Systems
▸ Build and integrate agentic AI pipelines using frameworks such as LangGraph, LlamaIndex, AutoGen, CrewAI, or n8n — working with multi-step reasoning, tool-call chains, and reflection patterns in real world environments.
▸ Prototype and iterate on event-driven, tool-augmented agents with persistent memory (episodic stores, knowledge graphs), and help set up basic observability (tracing, latency monitoring, failure alerting) to keep systems reliable.
▸ Improve and polish existing AI and RAG-based responses — applying prompt engineering techniques (chain-of-thought, few-shot, structured outputs), retrieval tuning, and evaluation tools (RAGAS, TruLens, LangSmith) across multi-modal and multilingual workloads.
Integrating Intelligent Data Pipelines
▸ Work across the ML lifecycle — from RAG architecture and vector store setup (Chroma, Weaviate, Pinecone, pgvector) to containerised deployment with Docker and supporting model-serving pipelines on cloud platforms.
▸ Help integrate LLMs (GPT-4o, Claude, Gemini, Llama, Mistral) with graph databases (Neo4j, Azure Cosmos DB), relational and NoSQL stores, REST APIs, and cloud platforms (Azure, AWS, GCP) to deliver social-impact solutions for real users.
▸ Contribute to multilingual and multi-modal data pipelines — handling text, audio (ASR/TTS), images, and documents with pre-processing, translation, and structured extraction so that AI capabilities work across languages and input types.
Collaborating for Social Impact
▸ Work closely with data scientists, researchers, and partner NGO teams to help build open-source Digital Public Goods deployable at national scale — contributing clean, well-documented Python code and reusable modules.
▸ Communicate progress and technical trade-offs to both engineering peers and non-technical stakeholders; participate in cross-functional stand-ups, design reviews, and partner demos.
QUALIFICATIONS
▸ Bachelor’s or Master’s in Computer Science, AI/ML, Data Science, or a related engineering discipline — or equivalent demonstrable experience building AI-powered software products.
▸ 3 to 5 years of experience designing and building software, with at least one live end-to-end agentic or LLM-powered workload taken from concept to production deployment.
▸ Comfortable working in cross-functional teams — able to discuss technical trade-offs with peers, translate requirements from domain experts, and communicate progress to non-technical stakeholders.
MUST-HAVE SKILLS
Each bullet represents a skill area we will probe directly during screening.
▸ Shipped agentic AI: At least one live, end-to-end agentic workload in production — not a PoC, not a notebook. A real system with real users.
▸ Agent framework depth: Hands-on experience with LangGraph, LlamaIndex, AutoGen, CrewAI, Semantic Kernel, or n8n — with a grasp of agentic patterns (ReAct, Plan-and-Execute, reflection loops, multi-agent coordination, tool/function calling, persistent memory).
▸ LLM and RAG expertise: Working knowledge of enterprise and open-source LLMs (GPT-4o, Claude, Gemini, Llama 3, Mistral, Phi); RAG engineering including chunking, embedding model selection (OpenAI Ada, Cohere, BGE), hybrid retrieval, re-ranking, and evaluation (RAGAS, TruLens, DeepEval); vector stores (Chroma, Weaviate, Pinecone, pgvector) and graph databases (Neo4j, Azure Cosmos DB).
▸ Multi-modal and multilingual pipelines: Experience ingesting and processing text, images, documents (PDFs, HTML), and audio (ASR/TTS); familiarity with multilingual translation services (Azure Translator, IndicTrans, NLLB) for Indian language contexts.
▸ Cloud and MLOps fluency: Docker containerisation, CI/CD pipelines (GitHub Actions, Azure DevOps), model serving (FastAPI, Azure ML, BentoML), experiment tracking (MLflow, W&B;), and observability (LangSmith, Phoenix) on at least one major cloud platform (Azure preferred; AWS or GCP acceptable).
▸ Python engineering: Strong Python (2+ years) — async/await, Pydantic, type hints, pytest, FastAPI/Flask, Git workflows; production-quality, testable, maintainable code, not just scripts or notebooks.
PREFERRED QUALIFICATIONS
▸ Practical experience with Vision-Language Models (VLMs) such as GPT-4o Vision, LLaVA, or PaliGemma — and speech models (Whisper, Azure Speech, ElevenLabs) — used within live multi—modal agentic systems.
▸ Fluency with Azure OpenAI services (AOAI deployments, content filters, Managed Identity auth) and enterprise deployment patterns on Azure (Azure AI Studio, Azure Container Apps, Azure API Management for LLM gateway).
▸ Experience with fine-tuning or alignment techniques (LoRA, QLoRA, SFT, RLHF/DPO) on domain—specific datasets — especially for low-resource or Indian language models.
▸ Familiarity with responsible AI practices: guardrails (Guardrails AI, NeMo Guardrails), bias detection, PII handling, and output validation — especially in social-impact deployments.
▸ Prior work delivering technology in social impact, public sector, or resource-constrained environments where reliability matters more than novelty.
▸ Contributions to open-source AI tooling, published technical blogs,
or internal framework development — a GitHub profile showing real shipped work.
A4I Lab is committed to building AI systems that serve everyone. We actively encourage applications from candidates of all backgrounds, disciplines, and geographies.
Pay: ₹2,200,000.00 - ₹2,500,000.00 per year
Application Question(s):
- Q1
process() grew from 2 payment types to 9 (~300 lines); old branches break whenever a type is added. Excerpt:
def process(order, pay):
if pay.type == "card":
res = stripe.charge(pay.cardtoken, order.totalcents)
if res.status == "approved":
order.status = "paid"
order.fee_cents = int(res.fee * 100)
elif res.status == "failed":
order.status = "declined"
elif pay.type == "paypal":
res = paypal.execute(pay.paypalid, order.totalcents / 100)
if res.state == "approved":
order.status = "paid"
order.fee_cents = int(res.fee * 100)
else:
order.status = "declined"
elif pay.type == "bank_transfer":
order.status = "pending"
ledger.create_reference(order)
# ...6 more branches
audit.log(order.id, pay.type, order.status)
Need one small, protected PR: what goes in, what stays out? How do you show behaviour is unchanged?
- Q2
Config and DbPool are each created once, at import time, and imported directly by modules across the codebase. Tests have become order-dependent, and two tests pass alone but fail together.
How do you confirm what is causing it?
How do you remove the coupling step by step, without a big-bang rewrite?
Is there anything here you would deliberately leave as it is?
- Q3
Python
def createorder(user, items):with db.transaction(): order = orderrepo.save(Order(user, items)) inventory.reserve(items) loyalty.addpoints(user, order.total // 100) email.sendconfirmation(order) analytics.track("order_created", order.id)return order
During an email provider outage, sendconfirmation raises, createorder returns a 500, and customers retry, creating duplicate orders.
Fix it so an email outage no longer affects order creation. Then tell us what you lose by doing so: which guarantees held before and no longer do, and how do you handle each?
- Q4
Review this PR: 6 small repositories replaced by one generic base class, -400 lines. Representative hunk:
- List findByCustomerAndStatus(long customerId, String status) {
- sql = "SELECT * FROM orders WHERE customerid = ? AND status = ? AND deletedat IS NULL ORDER BY created_at DESC";
- return jdbc.query(sql, orderMapper, customerId, status);
- }
+ List findBy(Map filters) {
+ where = filters.keySet().stream().map(k -> camelToSnake(k) + " = ?").collect(joining(" AND "));
+ sql = "SELECT * FROM " + tableName + " WHERE " + where + " AND deleted_at IS NULL";
+ return jdbc.query(sql, mapperFor(entityClass), filters.values().toArray());
+ }
orderRepo.findBy(Map.of("customerId", customerId, "status", status));
Which comments do you leave, and which block merge? What do you ask the author? What makes you approve or reject?
- Q5
Your API limits each user to 100 requests per minute using a Redis counter that resets every minute, across 5 API instances. A partner’s nightly sync gets blocked despite a low average rate, while a scraper pulls about 200 requests around :59/:00 without being blocked.
Explain what is happening in each case.
Which algorithm would you move to, and would you choose differently for the partner than for the scraper?
How do you keep the check atomic across instances?
What happens if Redis is down, and how would you test the change before release?
Work Location: In person
📌 AI JR ENGINEER (Bengaluru)
🏢 International Institute of Information Technology Banglore (A4I)
📍 Bengaluru