
Synapse
Synapse
overview.
Synapse was developed during NwHacks 2025, where I collaborated with a partner to build an AI-powered visualization tool under tight time constraints. Our vision was to create a web application that could convert academic or technical PDFs into editable diagrams, making complex information easier to understand visually. The project combined full-stack engineering, serverless architecture, and AI integration into a seamless user-facing tool, with a focus on both front-end user interaction and back-end reliability.
process.
We began by carefully scoping the technical workflow into key components: PDF ingestion for handling large documents, entity extraction using AI, code generation for diagrams, and real-time rendering. For the front-end, I architected a responsive UI using TypeScript and React. The interface needed to handle large file uploads smoothly, provide clear feedback during processing, and display interactive Mermaid.js diagrams. The back-end architecture was built around AWS Lambda functions with 512MB memory allocation. I implemented cold-start mitigation strategies and optimized the processing pipeline to handle documents up to 10MB within a five-second window. To transform PDF content into meaningful diagrams, we integrated LangChain with OpenAI's GPT-4 API. This required careful prompt engineering to extract semantic relationships from text and convert them reliably into valid Mermaid diagram syntax. Throughout development, I focused on reliability: implementing comprehensive error handling, adding real-time loading indicators, and setting up monitoring for the serverless functions. We used a local-first testing approach to validate components before deploying, which was crucial given the hackathon's time constraints.
result.
Synapse successfully delivered on its core promise: users could upload complex PDFs and receive clean, editable diagrams within seconds. The interface provided a smooth experience from upload through to final visualization. Performance metrics exceeded our targets, with the system processing 10MB documents in under five seconds even on cold Lambda starts. The front-end maintained responsiveness under load, and the backend handled concurrent API calls without degradation. The AI-powered diagram generation proved remarkably accurate, correctly identifying and visualizing relationships from various types of technical documents. Users could further edit these diagrams through an intuitive interface. The project earned recognition during judging for its practical utility, technical implementation, and seamless integration of AI capabilities. We demonstrated that complex document processing could be both fast and user-friendly.
challenge.
The primary technical challenge was optimizing PDF processing within AWS Lambda's constraints. The 512MB memory limit and cold-start times initially made it impossible to handle larger documents within our target response time. We tackled this through several optimizations: implementing streaming document parsing to reduce memory usage, chunking the text intelligently to maintain context across segments, and parallelizing AI processing where possible. Another significant challenge was ensuring consistent, meaningful output from the AI processing pipeline. Early versions would sometimes produce invalid diagram syntax or miss important relationships in the text. We solved this by implementing strict validation at each step: schema checking for AI outputs, syntax verification for generated Mermaid code, and fallback options for edge cases. This made the system much more robust while still maintaining performance.
reflection.
This project significantly deepened my understanding of serverless architecture and its practical limitations. Working within strict memory and time constraints taught me valuable lessons about optimization and resource management. The experience of integrating AI capabilities in a production environment was particularly enlightening. I learned how to balance the power of large language models with the need for predictable, validated outputs. The hackathon environment pushed me to make pragmatic architectural decisions while maintaining code quality. I gained confidence in rapidly prototyping complex features and iterating based on immediate feedback. Perhaps most importantly, I learned how to effectively collaborate under pressure, coordinate across different system components, and maintain a focus on end-user value even while solving complex technical challenges.