For my second portfolio (Sinatra) project, I decided to take on a real life problem that I currently face in my professional life. I work for a General Contractor/Construction Manager, and one of the things we are working towards implementing is a centralized database for tracking the dozens of projects we consider taking on a year, and the multiple estimates associated with each project. As such I felt this was an excellent application of what I had learned so far in the course.
Ultimately the topic I chose wound up being fairly complex, which while good in the long run, it certainly presented its own series of challenges while building the project. Similar to my experience with my first portfolio project, my intimate domain knowledge of the topic certainly helped, and made the greater complexity easier to take on. One of the biggest issues I faced while building the project was “scope creep”, as I was constantly identifying features or functionality in my head that would be beneficial to the app in its use at my company. It was a constant struggle to write those ideas down and stay focused on the project prompt. However, as an added bonus I now have a list of features to build should I look to implement this product at work.
I currently work in data and analytics, so I have a familiarity with databases and their design already. That certainly contributed to easing the burden of some of the project as I could focus my attention on the things I don’t know - the webapp construction portion of the project. Being able to build a project that has potential real world use for me in my professional life, but also builds upon the foundational knowledge that I already possess was an incredible feeling, and gave me a real taste of what it will be like to be a software engineer. While there is still so much to learn (I truly believe that there always will be, even when I’ve been practicing the craft for years), I feel like I am well on my way to achieving my goal of becoming a software engineer.