Interviewing at many tech companies focuses on algorithms and data structures, especially for new graduates from colleges. These core concepts represent demonstrable skills of potential candidates. Often, industry interviewers weigh whether candidates understand these topics well enough at a general level. They will build from that foundation into specific areas for application. In addition, practical experience plays an important role in technical interviewing!
Promoting Practical Experience
At Lucid, we recognize the potential impact of practical experience for students. We actively recruit summer interns as full-time participants in our Scrum teams. We sponsor capstone projects with teams of four to six students for an academic year. In these ways and others, we encourage learning to go beyond the classroom and into practical spaces.
Rising graduates benefit from experiences that encourage them to connect through the generalized abstractions down into how they might apply those concepts concretely in a specific context of application. Types of opportunities for experience vary, yet they have much in common that serves to ground newcomers in the application of Computer Science Theory. These may include internships, cooperative employment experiences, work placement, summer jobs, capstone projects, independent study, and even personal projects.
What questions might be posed in technical interviews about experiences with software? How do you prepare yourself for reinterpreting your experiences to paint the larger picture indicating that you “get it”? Alternatively, if you have time before graduation, which experiences should you prioritize? Are there strategies that can be helpful, regardless of which forms your experience may take?
Example Interview Question
Consider an applicant for a technical role, who has only seen class projects as their foundation for what technical projects require. In answer to a question of, “Tell me about a time when there was a problem with a project, and how it turned out”, they might say:
Well, in my operating systems class, we had a group assignment where we had to implement three different scheduling algorithms. One of three people in my group didn’t ever show up, so my partner and I had to decide what to do. We ended up implementing two of the algorithms, and not the third one, because that was the work of our missing group member. In the end, we all got a lower score, but the missing person didn’t get credit for our work.
This may sound like a reasonable-enough scenario. Class projects tend to be short-lived, perhaps a week or two in duration. Teams are quickly formed without much regard to other obligations or timing challenges that individuals experience. The end result may be that individual interactions play a bigger role than the other learning objectives intended by the instructor.
In contrast, having put time into larger projects, as with a capstone course or internship experience, a response to the same question might look like this:
Last year, in my capstone project, we were working with a project sponsor who wanted us to build a mobile app to capture pictures with locations. That didn’t seem too difficult. But then the sponsor asked if we could use this for identifying specific plants for people taking pictures while hiking in the mountains as part of a research project. Now it’s image recognition. To the sponsor, everything we did seemed like magic. We had to offer deeper explanations about why image recognition was much more difficult, but we also acknowledged the benefit that it would be if we could make progress on it. In the end, we were able to create a training data set and had a model that would correctly identify the target plant species with 84% accuracy.
In the second example, the response ties in ways that the experience helped with recognizing bigger benefits and driving specific outcomes for a sponsor. The description of the experience has natural depth and vibrancy. The experience lends itself smoothly to authentic discussion in the technical interview.
Theory versus Practice: Space to Experience or Space to Discuss
In figure 1, one way to consider the different types of experience, from class projects to internships, is to think about whether the focus is on theory and ideas or practical application. As a separate dimension, often there is also a focus on an experience to inspire deeper thinking and reflection, or a space for having those deeper reflections and discussion. Classrooms give small problems with limited scope, which may rank strongly on the scale for theory. The instructor gives follow-up assignments and leads classroom discussions, inviting dialog around reflections that students bring in. In many internships and employment opportunities, the individual is expected to focus primarily on the practical work at hand. Is work completed in a timely manner? If so, let’s move on to the next task. There is seldom explicit time given for reflecting, drawing out and sharing conceptual connections with others.
Other experiences mix their focus between producing solutions and stepping back for reflection on the approaches and processes in use. These include mentored independent work projects, work-integrated learning, and capstone projects. Through these reflections, concepts connect across from the abstract theories into the concrete practice, and vice versa. Those cognitive links form a lattice on which future challenges and obstacles will hang, and connect through to both the abstract and to variations on the specific solution spaces. These experiences are well situated as examples for technical interviewing.
How Lucid Interviews Candidates
When Lucid interviews candidates for software roles, we do ask them to demonstrate their capabilities with data structures and algorithms. We also explore their ability to receive targeted tasks and produce working code within a reasonable time frame. But on top of that, we invite candidates to reflect on their previous experiences and share how those experiences may demonstrate values similar to Lucid’s core values.
In particular, we focus on the following values:
- Teamwork over Ego
- In what ways does academic work support learning to collaboratively develop solutions with a team?
- Are there ways class-based projects might stifle collaboration and a sense of team identity and shared responsibilities?
- Innovation in Everything We Do
- Especially in classroom settings, educators give problems for specific learning objectives. For example, exercises on implementing sorting algorithms are intended to help students work through concepts and understand nuances of a specific solution. It is not because the instructor needs dozens of implementations (some with obnoxious bugs) of said sorting routine.
- Yet, in practical experience with projects and solving problems, one person carries out the implementation of the specific facet of the problem. Together, we leverage the pieces into a synergy of a larger solution.
- Individual Empowerment, Initiative, and Ownership
- How has the spark of engagement kicked in for you?
- Can you catch the vision of what possible impacts follow from your specific touch on the work?
- With that vision, what drives you to optimize the results, even in minor ways?
- Where is your flair?
- Passion and Excellence in Every Area
- When dd your drive to excel really ignite?
- What pushed you to iterate more, gather more information, and try additional variations to find a truly amazing result?
- At the end of the day with academic projects, the assignment will be submitted, assessed, and usually discarded. This can be difficult to feel passionate about!
- Students who catch a spark of passion often go beyond what was asked by pursuing a possibility for greater impact. They’ve caught a vision of potential and a drive to pursue it.
- In industry work, this is where we push beyond satisfying a basic request. We truly delight end users and create solutions that shine!
Preparing for an Interview
When entering interviews, you may experience trepidation when asked to describe how class projects helped you appreciate the power of teams, the drive of innovation, a sense of empowerment and control, or ways that passion led to greater accomplishments. It can still happen!
On the other hand, previous practical experience in industry or through personal projects may fall short if you haven’t spent time reflecting on the experience and connecting it to your learning of concepts. You may struggle to explain why a given experience was meaningful to you.
Take time to scan your resume. What projects are you proud of? Are there ways your contribution reflects your passion and excellence? Where did you feel control of the outcomes of your work? Did you develop solutions that weren’t obvious at the start, but were innovative in your journey of discovery? How did you learn to leverage team collaboration for better outcomes?
The list of values earlier came directly from Lucid’s core values. Each company will have their own areas of focus. Which ones resonate with you and your personal values? Can you attune yourself closely enough that you can find where you feel your own sense of fit?
As you review your projects and experiences, take time to catch and organize your threads of reflection. How do you tell the story? Select one or more of Lucid’s values above and spend fifteen minutes writing about how you demonstrated that value in the experience. Or about how you learned to appreciate why it could be important to a smaller startup as well as a growing company.
Whichever thread you decided to invest the deeper reflection on, go put that intention into practice! Write and reflect. By doing it, you will be practicing how to share your narrative and establishing your bridge between theory and practice. You anchor your experiences with the space to reflect. When a future interviewer asks a question that doesn’t line up perfectly, you will still have a familiar narrative to adapt. There is power in telling your stories!