Developer Portal Chatbot
This case study focuses on the AI chatbot I designed and built for an internal developer portal. I separated it from the main portal write-up because the chatbot involved its own architecture, learning curve, and implementation tradeoffs.
Project Summary
As the developer portal grew, we needed a better way for internal users to find information across APIs, applications, ownership data, and engineering documentation. Traditional search could help with exact matches, but users often needed to ask broader questions such as which team owned a service, where to find documentation, or how to complete an internal process. The requested solution was a chatbot that could answer those questions using portal content as its source of truth.

The Problem
The main challenge was that this work started before I had meaningful hands-on experience with AI systems. I had to ramp up on core concepts like large language models, retrieval augmented generation, agents, knowledge bases, and Amazon Bedrock while also figuring out how those pieces should fit into an existing internal platform. I did not have an established implementation to copy, so the project required research, experimentation, and a willingness to adjust the architecture as I learned what worked.
The chatbot also had to be trustworthy. It was not enough to generate plausible answers. The system needed to stay grounded in portal data, keep that data current, and give developers a faster path to useful internal information.
My Role
- Designed the chatbot architecture and request flow.
- Created the Amazon Bedrock agent, including setup, configuration, and prompt behavior.
- Configured the Bedrock knowledge base used to ground responses in portal content.
- Built the scheduled data refresh process that keeps the knowledge base current.
- Designed and implemented the API layer used to invoke the Bedrock agent.
- Built the front-end chatbot experience, including Markdown rendering for agent responses.
Architecture
The chatbot uses a Next.js chat UI, a Lambda proxy, an Amazon Bedrock agent, and a portal-specific knowledge base. User questions flow from the UI through the proxy to the agent, and the agent retrieves relevant context from the knowledge base before returning an answer.
A separate scheduled job keeps the knowledge base aligned with the portal. It pulls updated portal content, generates markdown and metadata files, uploads those files to storage, and triggers a knowledge-base refresh.

Key Decisions
- Used Amazon Bedrock because it fit the company’s AWS environment and gave us supported SDKs and managed AI services.
- Moved from directly invoking a specific model to using a Bedrock agent because the agent pattern better matched the retrieval workflow.
- Built a scheduled content sync because the portal data lived outside the knowledge base and needed to stay fresh over time.
- Kept the UI and agent invocation separated behind a Lambda proxy so the front end did not need to own Bedrock-specific orchestration details.
Challenges
The hardest part was working through ambiguity. I had to learn the technology while designing the solution, and early assumptions changed as I tested different approaches. I also had to think carefully about grounding and source freshness because a chatbot for internal engineering information is only useful if people can trust that the answers are based on current portal content.
Outcome
The result was a working chatbot experience inside the developer portal that allowed users to ask questions against portal content instead of manually hunting through pages and documentation. It also gave the team an initial production-oriented pattern for applying AI to internal developer enablement.
What I Learned
This project taught me that applied AI work is as much about data quality, architecture, and user trust as it is about model capabilities. The model matters, but the surrounding system determines whether the experience is useful. I also learned how valuable it is to prototype, test assumptions, and simplify the architecture when a managed service provides the right abstraction.