This is a submission for the New Year, New You Portfolio Challenge Presented by Google AI
About Me
I’m a software engineer with a background in education and instructional design. Before moving into engineering full time, I spent years teaching and designing learning materials, which shaped how I think about clarity, structure, and how people actually absorb technical information.
With this portfolio, I wanted to explore the intersection of software engineering, learning, and AI-assisted reflection—not just showcasing projects, but also capturing how I learn and reason about systems over time. This portfolio is both a technical artifact and a learning journal. I want to have a platform that I can store all of my works.
Portfolio
Here is my live portfolio deployment on Google Cloud Run:
<iframe
src="https://emily-stacy-portfolio-465092161508.us-central1.run.app/"
style="width: 100%; height: 800px; border: 1px solid #e2e8f0; border-radius: 12px;"
loading="lazy"
(For the deployment label requirement, I deployed this service with: --update-labels dev-tutorial=blog-devcommunity2026.)
How I Built It
Frontend
- React + TypeScript
- Custom journal schema to support multiple content formats (sections, tables, lists, code blocks)
- Review Mode UI that hides details and emphasizes high-level takeaways
Backend
- Node.js + Express
- Deployed as a containerized service on Google Cloud Run
- A custom summarization endpoint that sends journal content to Google Gemini and normalizes the response
Google AI
- Google Gemini (
gemini-2.5-flash) for summarization Instead of assuming a fixed AI response format, I built a resilient extraction layer that can interpret multiple JSON shapes (sections, arrays, nested objects, tables, etc.) with the help of Gemini (Note: Since I’m on the free tier, requests may return 429 (quota exceeded) errors when the usage limit is reached)
This mirrors real-world conditions where AI outputs aren’t always predictable
Design Decisions
I intentionally treated AI as a helper, not a source of truth
-
The system falls back gracefully when summaries can’t be confidently
What I'm Most Proud Of
AI integration: Handling inconsistent AI outputs without breaking the UI was one of the hardest and most rewarding parts.
Learning-first design: The portfolio doesn’t just show results—it captures the thinking process behind them.
End-to-end ownership: From frontend design to backend APIs to Cloud Run deployment and CI/CD, this project represents full-stack ownership.
-
Practical AI usage: Instead of flashy demos, the AI feature solves a real personal problem—reviewing and retaining complex technical knowledge.

Top comments (0)