Part One: It’s about the Culture.
Dating back even before my early days as a Junior Developer when I was trying to carve out a living during the difficult era of the Great Recession, I recall attending an interview workshop put on by my local community in order to make the most of my chances to meet face to face with a hiring manager.
It was overwhelming.
It was hard to process the deluge of concepts: elevator speeches, STAR questions, posture, tone, “gotcha” questions, brain teasers, dress etiquette, preparation… The list goes on and on. The truth of the matter is that interviewing is difficult, and for all the knowledge gained from my schooling and college, interviewing skills were never part of the curriculum. The single day seminar simply was not enough time to cover the material, nor did it furnish the time and dedication needed to become proficient at interviewing.
This series, while not intended as a substitute for hard work and dedicated study and rehearsal of the interview process, it is a wonderful primer for the common themes pertaining to Software Engineers and our craft.
The most natural place to start here is also important yet also most overlooked.
It’s about the culture.
Every candidate should ask their prospective team about the company culture, and every hiring manager needs to share their understanding of the company culture with the candidate, and needs to determine if the candidate will harmonize with it.
In my fair share of interviews, the ‘company culture’ question is brought up, quite often in a ritualistic or rote fashion. Many hiring managers come up short when evaluating how important this question can be, or how it should be directed, or what company culture actually means. It is much more profound than that the company has a ping pong table in the break room, or that the team goes out for beers every other month.
The company culture is the set of values and principles that drive decisions and actions.
As a candidate, it is vitally important that you, if given full control of the company, know exactly what the core values of the company would be. You should be able to point to any decision or action taken by the company and trace back to one of its core principles. The key to handling this line of interview questions is internalizing what your core principles are, and how those principles will relate to their principles.
While internalizing these values may come with time and experience, spending some time to introspect and critically analyze the concept will expedite the process. You should think about experiences you have had at certain companies, in specific classes, or in various situations, and you should determine for yourself what made those situations a success, or what needed improvement, and what is the core cause that was driving these outcomes.
Obviously, this topic is substantial, and if you are like me, you can think of quite a few words and phrases which would constitute my core values and each point would merit 20 minutes each of explanation and examples. Yet today, as back in my earlier days, attempting to convey every facet of culture in an interview setting is a poor strategy. For this, I like to keep a simple list of 3 core values that I look for in a company and in a candidate. It’s easy to remember, there is little chance of rambling, it will likely have some major overlap with any reasonable core value of a prospective company, yet each core value could further be explored and subdivided should more substance be required.
This is my personal list of three core values, and while it may not be the perfect list, it has served me well enough to determine if the interview was worth the time:
1: Be results oriented.
This is the first item of my list, and for good reason. For perspective, I like to contrast this with being ‘processed oriented’ which when applied appropriately can solve specific problems, but more often than not grows as a cancer on an entire organization. The notion of understanding ‘results’ is a great springboard to touch many other concepts, such as how are team members evaluated, and how a company functions.
2: Pursue meaningful and impactful ideas, goals, and actions
It is very important that everyone understands the big picture. Think priorities here. This core value is also the ultimate litmus test for how much the teams are siloed. When everyone is thinking about meaning and impact, they are conscientious about not just their team, but adjacent teams, even the entire company, and beyond to customers, end users, vendors, shareholders, and all stakeholders.
3: Communicate and collaborate
Hiring managers should be looking for individuals that understand that a team will succeed or it will fail as a team, and not as individuals. Software engineering revolves around understanding roles, communicating, and working together as efficiently as possible to solve the problems we have been assigned.
While Software Engineering interviews often revolve around the technical aspects, understanding your own core values and the core values of the company is paramount to anchoring a principled and reliable approach to interviewing. Core principles, the culture, is from which all of our decisions and actions are rationalized, including our code designs, architecture, as well as our approach to our engineering career and to improving our interviewing skills.