The end of August marks the end of my 16 month internship here at Arcurve. I can honestly say I will miss working with many of my Arcurve colleagues, who have helped me grow into a more competent developer over time. I appreciate the insights and opinions offered to me by my coworkers, as they have helped me steer my career forward. In regards to my current project, I wish the business owners and the development team the best going forward. I’m proud of the contribution I’ve made, and I hope our application will become a beneficial component of our client’s business. As this will be my final post, I feel a retrospective of my internship is in order.
When I first started my internship, I was tasked with building an automation test suite for a graphical desktop application undergoing a technical upgrade. At the time, I was fresh from a prior development position, where I had been considering (or regretting) the impact of omitting such testing. So where many young developers may have bemoaned such a task, I felt it was an important job with potential to provide concrete value to the development team. Shortly thereafter, I was moved onto that very development team to work through the backlog of presentation layer fixes and feature implementations. I dove right into WPF and loved it. Whatever I needed to know, I learned on the fly. I wrote a blog post on WPF, geared towards some of its technical principles and the learning process I was engaged in. I learned, first-hand, what it meant to do Agile-style development.
In the fall I worked on an internal research project, for about 4-6 weeks, which centered on the cost analysis and comparison of implementing a custom software solution using one IaaS provider over another. After investigating the specifics of each necessary cloud service, I created detailed reports describing each component, and its alternatives, by its upfront pricing, as well as cost over time according to the quantity of input data we expected monthly. Altogether, this was an interesting assignment that forced me to consider the proposed solution architecture holistically, and through the eyes of a business owner footing the bill.
On another project, I would fill a tier 2 support and sustainment role for a suite of integration services. My responsibilities included build and deployment tasks, bug fixing, some feature development, and writing custom SQL scripts and console applications to help diagnose production issues. I think the defining characteristic of this project was the degree of variance between day-to-day tasks. Priorities could change wildly from week to week, sometimes spurred on by the completion of a task, but other times by the discovery of an production issue. Really, the essence of a support role is adaptability, a trait highly valued in all of software development, but especially important here. In retrospect, I believe it was exposure to many different developer roles at Arcurve that enabled my rapid growth as a software professional. Experiencing a multitude of perspectives encouraged me to consider how my decisions would affect both developers and users of an application, in both the present and future.
My final role at Arcurve, consuming the remaining 7-8 months of my internship, was the greenfield development of an interactive web application that would enable our client to create, organize, and manage content relevant to other businesses and their day-to-day operations. This project has given me the opportunity to make a substantial contribution to the development of a new product, to learn and utilize popular, modern web technologies such as Angular, and to experience the rich world of full-stack development. I consider this to be the high-point of my internship, and give my thanks to Arcurve for making this possible. I’ve gained an enormous amount of knowledge, both technical and non-technical, from my time here, and I hope future interns take advantage of the opportunities to learn and contribute as I have.