To say that I learned a lot during my 16-month internship with Arcurve is an understatement. Having worked on several different projects spanning various industries and technical challenges, I felt like I had evolved from a shy, inexperienced intern into a confident and capable junior developer. What better way to put that all to the test than with the infamous 4th-year engineering capstone project?
What is a capstone project?
Most university engineering programs include a final capstone project, which is typically a year-long, self-directed, team-based technical design project provided by a community sponsor. In fact, Arcurve has supported some engineering capstone projects in the past! While projects vary in scope and complexity, capstone places a core emphasis on teamwork, professionalism, and engineering best practices. Here are the two key principles I inherited from my time with Arcurve that were foundational to our team’s success:
Build products the right way.
One of my biggest takeaways from my experience on Arcurve project teams was our strong commitment to software quality – to building things the right way. I can still clearly remember a project manager explaining to me that “we don’t ship code that we can’t test” during one of our standups. As our capstone team’s backend lead, I maintained that philosophy throughout the development cycle, and we ended up with a rigorous regression suite of over 300 unit tests. While to some that might appear as time wasted, our team ended up relying on those tests when we had to pivot our design to meet changing requirements (of which there were many!)
Another aspect of Arcurve’s commitment to quality is reflected in scoping and transparency. On another project, I remember a technical lead saying that “we would rather reduce scope than compromise on good development practices”. While we estimate to the best of our abilities, if a task is more challenging than we originally anticipated, we make sure the client knows exactly why the project is delayed. On my capstone project, when it became clear we could not fulfill a key requirement, I stepped up and communicated transparently to our sponsor about the challenges. While it always sucks to disappoint someone, due to our upfront transparency about that feature’s feasibility, our sponsor greenlit us to reallocate our resources towards polishing the rest of the project. That decision ended up giving us the time we needed to refine and deliver a functional MVP deployed to AWS!
Be a steward of your client’s IP.
At Arcurve, we affectionately describe ourselves as “stewards of our client’s IP”. Simply put, we have a responsibility to put our client’s needs first and provide value that lasts beyond our time with the project. What does that look like in practice?
One of the best examples is being technology agnostic and having the flexibility to use the right tool for the job, even if it’s not what’s hip or trendy. On my capstone project, we decided to use Golang to maximize performance on AWS Lambda even though our team had limited experience with that stack. While it would have been faster to use a language that we were familiar with, we recognized our client’s need to limit cloud-costs and chose the most resource-efficient system possible. We also considered Golang’s projected popularity amongst developers so that sourcing talent to further develop and maintain the product in the future would be easy and low-cost.
Another aspect of IP stewardship is recognizing that a product belongs to the client and that product should come with all its artifacts and proper documentation. At the end of the project, we took the time to thoroughly document our workflows and design decisions so that any developer could pick up right where we left off. Even early architecture diagrams and internal meeting minutes were included since those artifacts captured critical decision-making points and provide insight into why we built the solution a particular way. After all, there’s nothing worse than getting a new toy and seeing “batteries not included”.
It's clear that my internship equipped me with plenty of hard, technical skills. What I find more valuable than any language or framework is an understanding of fundamental developer values rooted in sustainability and integrity. And that’s why I chose to come back to Arcurve ready to learn more! If you’re interested in an internship at Arcurve, check out Arcurve Academy here.