Internships are nothing new. Companies hire summer interns for many reasons. At Omnitech, the benefits of having internships are felt two-fold – by both the student and our seasoned engineers. It is always fun to watch young aspiring professionals have a chance to gain experience and discover interests as you introduce them, possibly for the first time, to the profession they are pursuing through a college education. Through our internship program, we get the opportunity to mentor and challenge them to try new tools, learn new languages, and dip their toes into uncharted territory. Our highest compliment this year came from one of our interns who said: “I have learned more in the last three months than I have in three years of school!”
The benefits of internships do not stop with the interns. The energy, mentorship, and development that internships bring into our environment help our team stretch their skills and test their thinking. We want to share a couple of techniques used this summer that highlight the positive impact internships had on our whole team and how it helped re-energize our own professional development.
Book Discussions
Book discussions have been something that we have been doing at Omnitech for a while, and we wanted to be very intentional in planning our intern book discussion this summer. Michael, a seasoned engineer with over 30 years of experience, led the group. We also wanted a group of mentors to join the discussion to bring a wide-range of experiences and debate.
We decided to choose a series of three books that were not language or technology specific, but rather a set of books that could be on their bookshelf ten years from now and still be relevant. Books that would help develop foundational skills and good practices while getting progressively more challenging. In addition, we wanted to revisit ideas in our environment that would challenge our engineers. We started with Clean Code, followed by Refactoring: Improving the Design of Existing Code. The last book we chose, Design Patterns had a very special purpose. We knew we would not have time to discuss the title this summer. Also, the intern’s skills level would not be developed enough to be able to get the most out of the concepts, but we wanted to provide an opportunity for them to see a path ahead and grow into it. Who knows, they may bring the idea of a book discussion into their workplace at some point in their career.
Michael had this to share about the experience: “Though I’ve been in this business 30 years, and have seen it all, it was refreshing to dive into the principles of craftsmanship in our trade. It reminded me of how important it is to be on the lookout for "smells" in the code and to heighten our dissatisfaction in just leaving that smelly code the way it is. Software engineers read far more code than we write. When we find smelly code, we should take the time to clean it up. I am more dissatisfied than I used to be... and it's a good thing!”
Jon, a mentor for the interns this summer and a participant in the book discussions noted, “Clean Code was extremely valuable to help move beyond just ‘getting it to work’ to writing clean, more readable code. It offered simple reminders and suggestions that go a long way when writing code in a team environment. It will help us to write code that is much easier to maintain.”
Make sure to check out our intern, Riley’s blog post on his experience discussing Clean Code.
Mentoring and Lunch and Learns
Kevin, another one of our experienced engineers, took the interns under his wings for a little group mentoring. We highly encouraged our interns to be on the lookout for opportunities to advance their understanding of unfamiliar technologies and then to tap the shoulder of a knowledgeable mentor.
Mentoring has become second nature at Omnitech, and when Kevin heard that the interns were working on a web page for a project that needed to filter data and display in a grid, he did not hesitate to say "did you know that there is more to web development than jQuery? Grab me next week and I'll show you a few things." He was almost surprised when he got an email a day later asking him to join their weekly lunch. The interns took the initiative to seek out a learning opportunity, and Kevin jumped on this occasion to share a bit of his nine years’ experience! This one conversation turned into more than a month's worth of lunches talking about JavaScript, looking at their code for ways to make it cleaner and Object Oriented, investigating Knockout, TypeScript, Jasmine, Unit Testing and even builds. Their curiosity and initiative spurred us all to share and learn from each other. The unit testing conversation grew to include 6 to 15 engineers from around the organization, all interested in the discussion.
Kevin wrote more details on his personal blog "Teaching JavaScript." He went on to share, “I'm thankful that our interns were confident enough to ask for my input and learn from my experiences. Using real code that will be used to improve the product made the learning more applicable and allowed us all to see how much code can be improved as we learn and think more about the quality/maintainability of it, rather than just worried about getting it to work.”
Kevin’s time with the interns was very well received and demonstrated how quick group mentoring can have a significant impact on professional development. Jessica shared some of her experiences working through many of the challenges and rewards of an internship experience in her LinkedIn Pulse post.
Code Reviews
Code reviews happened daily, and they provided an avenue for discussion and coaching. The regular touch base and review gave the interns the structure to voice questions and ask for feedback. Essentially, the code the interns worked on brought all the techniques that were discussed this summer into practice; and the code review provided the forum to walk through their code with their peers and mentors. Jon, one of the engineers who regularly lead the code review commented, “The enthusiasm our interns brought this summer was contagious. Their eagerness to dig and learn caused me to reflect and identify areas I wanted to expand my own understanding.”
Having interns over the summer re-energizes our focus on creating a professional learning environment, and we are excited to take this momentum moving into fall. If you are interested in learning more about techniques and patterns that support our internships, check out Drew’s experience at Omnitech this summer.