Magpie Hats, Burnt Databases and Other “Intern Moments”: Wrapping up the Prospress 2016 Summer Internship
A few weeks ago, we heard what it was like to be at the midpoint of the internship. So let’s start with the obvious: we can’t believe time has flown quite so fast! Our three month intern program has already come to a close, amongst a whirlwind of coding, pull requests, coffee (and coffee emojis), refactoring, Slack channels, and SCRUMs. The Prospress team has enjoyed the youthful enthusiasm of our interns, and we have loved getting to know these impressive, talented, and intelligent people.
I’m happy to say, our internship experiment achieved many of our goals. A very important goal was to make sure the interns had a great experience with us, so we asked Lauren and Kelly about their expectations and experience. In this post, we share their answers to these exit questions.
Ali: What, if anything do you know now that you wish you knew before the internship?
Kelly: I guess my top three are around research, taking time, and taking breaks.
- Research is your friend. It is absolutely okay and normal to find yourself spending a lot of time doing research. It doesn’t mean you don’t know anything, it means you’re learning! Research builds knowledge, knowledge builds better code.
- Take time to understand existing code and style. It is always a good idea to fully understand what you are working for and what you have to work with before actually jumping into the work!
- Breaks are necessary. Taking a break does not mean you are slacking off! Drink a cup of water, look away from the screen, walk around. It’s good for your body and will boost your productivity!
Ali: Was there a time during the past three months that you had a real “Intern Moment”?
Kelly: The moment I felt the most like an intern is when I had to Google the currency exchange rate between Australia and U.S. during a team hangout. We were comparing prices for something and I couldn’t quite make out whether the team was in awe because the price was cheap or expensive.
This was one of the few times where I felt very intern-like, playing catch-up and trying to understand more about the team culture. However, every time I learn something new, such as the existence of magpie helmets, I feel even more included and part of the team.
Ali: What was your proudest achievement during the internship?
Kelly: The biggest project I worked on through the course of this internship was refactoring code for limited subscriptions. I spent a few days understanding what a limited subscription is and testing out possible ways to restructure the logic. At some point (a few hours after making little progress), I decided that simply reading through the code is not enough for me to fully understand what it is that I am working with. I am not a visual learner, so I took out a pen, a piece of paper, some post-its and drew a flow chart of all the different calls in limited subscription functionality.
Throughout the process, I also came across a few issues and bugs; at one point, it felt like the bugs were never-ending and I would never reach the end of the refactoring finish line. After working through each issue one at a time, testing, testing, and retesting the refactoring, I finally reached the finish line and it was very satisfying. Not only did I learn a lot about the Subscriptions software, I also learned a lot about myself as a software engineer.
Ali: Was there any difference between your expectations of the internship and the day to day reality?
Kelly: When I first started the internship, I expected there to be a very strict structure. I thought there were specific projects that I had to work on and that I would be working on that one project for the entire summer.
I was pleasantly surprised to find out that this was not the case. Prospress gave Lauren and I so much freedom. We were able to choose the issues we wanted to fix. I was exposed to a wide range of issues, from creating more front end-esque features, to setting up webhooks, to refactoring, to testing. Prospress gave me the freedom to learn and explore, allowing me to work toward well-roundedness.
Ali: How would you sum up your experiences with the internship?
Kelly: I cannot put to words how important and grateful I am for the opportunity Prospress has given me. Working at Prospress provided both the rigour and support that reshaped my outlook on the next two years of my undergraduate career. I am more motivated to take charge of my education and pursue my career goals than ever.
From a technical standpoint, I have gained a lot of new skills when it comes to working with existing software, such as understanding the infrastructure, what to research and look out for when fixing a bug or creating a feature, and testing. I’ve always had trouble formulating questions or putting my concerns into words, but working with my mentors have significantly improved my communication skills. From coding standards and Prospress policies, good coding habits have become second nature to me.
On a more personal level, this internship has inspired me to become more aggressive when it comes to establishing my career and future. I’ve discovered certain topics that I would like to learn more about and even sparked an interest in start-ups, a thought that has never crossed my mind as something I would be interested in. The same goes for eCommerce! Since working at Prospress, I spend my free time looking at various eCommerce sites, designs, and subscription ideas.
Ali: That’s perfect, we are so happy to hear that this was your experience! We loved having you as part of the team. What would you say is your biggest takeaway from your summer with us?
Kelly: My greatest takeaway from this summer is meeting the Prospress team. Since the interview process, everyone has been warm and friendly. Despite everyone’s busy lives, someone was always there to answer my questions, work related and unrelated. Getting the opportunity to see first hand the passion and work ethic everyone has dedicated to Prospress is both inspiring and humbling.
I would like to sincerely thank everyone at Prospress for a worthwhile summer. Thank you for pushing me, helping me, and inspiring me.
Ali: If you could give your past self any advice about this internship, what would it be?
Lauren: I’d have three major pieces of advice for myself: trust yourself to learn, don’t hesitate to ask questions, and don’t trade.
Ali: Interesting! Could you explain those a little further?
- Trust Yourself to Learn
Coming into the internship, I had only minimal experience with PHP and WordPress. Most of my programming experience was with C++ and some experience with what seemed like every language except PHP. Knowing that this internship would focus on PHP programming, WordPress, and WooCommerce almost kept me from applying in the first place, sure that my lack of specific experience would disqualify me. In other companies and other positions, perhaps it would have, but for this internship, learning those particular skills was part of the journey.
I had heard a number of times that understanding programming was the important part and the language was just specifics, and I found that to be more or less true. I definitely have more to learn about PHP and doing so will make me a better programmer, but learning the basics was enough to get going and start contributing. And that’s a start. Then you can start focusing on becoming a good programmer.
Don’t Hesitate to Ask Questions
Before starting, I psyched myself out to get ready. Ready to code, ready to focus, ready to learn, and ready to ask questions. Even after starting, after being reassured of the open environment for learning, after having questions answered, I had trouble bringing myself to ask questions. The main factor was a reticence to bother anyone. It often took some talking into by my more logical side to get me to post a question. Eventually I expressed this difficulty and was clearly reassured that asking questions was welcome and wouldn’t be a bother. After that, I had less trouble asking.
The hesitance to ask questions was an unfounded hang-up on my part that needed to be worked through but it provided a valuable two-fold lesson. One was the straightforward lesson: to ask questions. The second was a more implicit lesson that if I have work concerns, a conversation is a good way to address them. Instead of speculating or trying to talk myself into things, I was able to communicate my concerns and have them allayed.
One part of the internship that was subtle to me that I took a while to figure out was the true value placed on the learning process by Prospress. I’ve mentioned learning a lot and it is something that is important to me and that I have done a lot of over the course of this internship. The posting for the internship emphasised learning and I expressed that as a focus of mine in the course of the application process. And yet, it took me a while to truly realise how much Prospress really backs up those tenets in practice.
After starting the internship, it didn’t take long to feel included. Joining in the regular proceedings from team meetings to working on real coding problems made me feel part of the team and I was able to contribute from the get-go. It was a great set up to learn from real and real-time code and company development with a high degree of independence. It is in this independence and freedom to do the work that can be a proving ground for self-directed learning.
Ostensibly, my mindset when working on a problem was to figure it out and learn along the way. Yet there was also an implicit thought for me that was saying, “but don’t take too long.” I probably couldn’t quantify how much was ‘too long’ and it probably changed from problem to problem, but it was that internal countdown that created a tension in the learning process.
In some ways, that was good. It helped keep me on track in the scope of the problem and I didn’t want to take an inordinately long amount of time to make a contribution. Yet, there were other ways in which that tension produced unnecessary worries about timing that often had to be balanced out with the goals of learning broadly and deeply. I sometimes lost sight of the value of the process in pursuit of an answer. And that’s the part I would advise my past self about. Not about the speed or lack thereof, per se, but more about the process of learning.
I would say, “Don’t trade.” Don’t trade understanding for speed. Don’t trade a thorough answer for a quick answer. Don’t trade learning for getting something down without a clue why it works. I’m sure there are circumstances where one must be traded for another or where both can be done. But this internship provides a unique opportunity to learn deeply while contributing to a live product; that ought not to be passed up.
Ali: That’s fantastic advice. Was there a particular moment during the past three months that you feel was a real “intern moment”?
Lauren: About mid-internship I was working on an issue that I needed to do some database work with in order to properly reproduce and thus get down to the real problem. After asking about it, I was provided with some code to run to make the appropriate queries, but instead of copy and pasting the code, I decided to type it right into the terminal. Well, while reading the code to type, I completely skipped a portion of a line, the portion that pointed to the specific data to be changed. After I finished typing I ran the query and proceeded to burn the database. I succeeded in changing a certain piece of data for all entries in the database and rendering it practically unusable.
Aside from the embarrassment of the mistake, I was quite lucky in that the database I burned was only a local development database. I hadn’t added much data beside given seed data and the database was not really depended on by anything other than my local development site. I was able to recreate the database in short order and nothing essential was lost. It was a small price to pay for a mistake with the potential for so much damage. But I’ll definitely make sure to double check my SQL in the future.
Ali: Wow, sounds like a very important “learning moment”! On the other end of the learning spectrum, what would you say was your proudest achievement?
Lauren: I think over the course of the internship there were a lot of little wins with each merged pull request. The one that I’m proudest of isn’t necessarily a more significant contribution than any other but it was a culmination of sorts. I was able to take what I’d learned during the internship about PHP and the codebase, what I had learned in school, what I could look up and read about on my own, and put it into writing a set of tests. While the tests were probably the most code I’d committed at once, what I was proud of about adding them were that it felt like a contribution to the team as well as the codebase. Being able to contribute something that had the potential to be of use to the team moving forward was something I felt particularly proud of.
Ali: How did your expectations for the internship match up with the reality of your experience?
Lauren: Before starting the internship, I had a hope that the environment would be congenial to learning, as was shown in the internship post, but I was still unsure how questions would be received and if that sentiment would prove to be true. I also expected to receive ‘intern work.’ The type of work that is something to do but carries low risk and low impact. Finally, I figured that, as an intern, I would be treated separately from the full time team, not in a negative way, but in a way that belies the temporary nature of internships. These expectations were drawn mostly from my experience with previous internships and would have been a fine situation.
Looking back on the Prospress internship, my expectations were proven unfounded in the best of ways. Questions were well received and met with informative and helpful answers with no condescension. The work was appropriate to my understanding of the material, but I was able to code and contribute to the product from the first week. And I always felt included as part of the team, not only in terms of working with the team but also in a larger sense as a part of the company. An internship at Prospress had many characteristics that I had not expected, and that was a good thing.
Ali: What would you say is your biggest takeaway from the past three months?
Lauren: The biggest takeaway I have from my internship at Prospress is that it showed me how much I don’t know. It might seem odd for something that is supposed to utilise the skills you have and teach you more, but I think it is a very valuable view to see. Before starting, I had an idea of what I knew and perhaps what I could do, but I had no real scope of the road ahead. From working on varied aspects of the codebase at Prospress, I was exposed briefly to many different topics that each could be a specialisation on their own. From those glances, I was able to get a clearer picture not only of what I don’t know but, more importantly, where I could go.
Ali: We are so happy to hear that! It means that the internship was a success not only for us but for you too. Is there anything else you’d like to add about your time as an intern?
Lauren: When I was looking for internships, I had a mental list of ideal characteristics that an internship would have. I hardly expected to get any of them, but hoped to get at least a few. I wanted to work somewhere with an open learning environment, be able to work remotely, work with a friendly, positive team, have a mentoring aspect, and be able to really try my hand at coding on a real project. At Prospress, all of these ideals were met and more. I’m thankful for getting the opportunity to work at Prospress as it’s proven to have a supportive learning environment, a nice variety of work, and awesome people. I couldn’t have asked for anything better.
This was our first experience with offering an internship program, and it’s been great to work with such amazing young developers and genuinely awesome people. The success of the past three months has given us the confidence to offer the program again in 2017. We’ve learned so much and are amazed by how quickly Lauren and Kelly took to remote work, picked up their technical skills, and how well they fit in to the Prospress team.
So, what’s next for our interns? We’re excited to announce that Lauren has joined us full time. We are so happy to welcome her as a permanent member of the team, and you will be hearing much more about her adventures in future! Kelly has returned to the final two years of study and we sincerely wish her all the best. We are sure there is a very bright future ahead for both graduates of the Prospress Summer Internship v1.0.