Sashreek-Coding-Portfolio
💡 Inspiration
I built this project to create a portfolio that actually reflects how I think and work as a software engineer—not just a static collection of links. Many student portfolios feel disconnected from real-world engineering: they look polished on the surface but don’t demonstrate system design, deployment, or ownership of infrastructure.
I wanted a portfolio that was fully engineered, deployed, and maintained by me, where I could showcase my projects while also learning how production software is built, shipped, and debugged. Deploying it on Render was a deliberate choice to move beyond local development and experience real deployment constraints.
📖 What I Learned
This project taught me that writing code is only one part of building software. I learned how to:
Design a backend-driven web application instead of a static site
Deploy and maintain an application in a production environment
Debug deployment-specific issues that don’t appear locally
Think about scalability, reliability, and maintainability—even for a personal project
From a technical perspective, I gained experience with:
Backend architecture and request handling
Environment variables and configuration management
Deployment pipelines and cloud hosting constraints
Iterative debugging across code, dependencies, and infrastructure
Most importantly, I learned how to take ownership of an application end to end, from idea to deployment.
🛠️ How I Built It
I designed the portfolio as a deployed software application rather than a static page. At a high level, the system works as follows:
The backend handles routing and serves dynamic content
Project data is structured and rendered consistently across the site
The application is containerized and deployed on Render
Updates are pushed through version control and redeployed automatically
I treated the project like a real system rather than a one-off script. Conceptually, the application can be viewed as a mapping from structured project data to rendered user-facing views:
𝑓 : Projects → User Interface f:Projects→User Interface
This mindset helped me focus on clean abstractions and modular design rather than hardcoded solutions.
🚧 Challenges I Faced
One of the biggest challenges was deployment. Issues related to environment configuration, dependency mismatches, and server startup behavior forced me to deeply understand how my application actually runs outside my local machine.
Another challenge was resisting overengineering. I had to balance building something technically solid with keeping the system simple and maintainable. Deciding what not to build was just as important as deciding what to include.
Finally, I learned that debugging production issues requires patience and systematic thinking—small configuration mistakes can have outsized effects.
🌱 Takeaways
This project helped bridge the gap between “I can code” and “I can build and deploy software.” It gave me confidence working with real deployment platforms and reinforced my interest in backend systems, infrastructure, and applied engineering.
Log in or sign up for Devpost to join the conversation.