InterviewingWritten on May 15th, 2018 by Jason Johns
I remember the feeling pretty clearly. It was just after lunch on a mid October day, and I was sitting at my desk after an email conversation with my boss. There had been an increasing frequency of these over the past few months where I would be prompted to refresh my boss’s memory of crucial business decisions that we had made together just a few weeks before. It was a feeling of “I just don’t give a f - -“. It was a small company, funded by the profits of the owner’s other company. The owner wore the product manager and sales/marketing hats, and I was responsible for:
- Project management and task prioritization
- All systems and database administration and maintenance on AWS,
- Server side development with Python, Django and Celery,
- Front end development with React and jQuery,
- Maintenance of legacy jQuery application,
- Solr search engine monitoring, configuration and optimization
- Monitoring and technical support for two part time data entry contractors.
All those responsibilities on one person gets wearing after a while. I didn’t have any support in the office, because the other development team was focused on C# and had little to no familiarity with Python. As a result, I was forced to rely on my alternative networking connections for technical discussions, reviews and learning. It also didn’t help that I was significantly underpaid. While salary surveys can be unreliable, everything in my area said I was making $11,000 to $18,000 under the median.
When I brought these issues up, I was given a token raise of $2,500, along with the promise of two bonuses of $2,000 when specific project milestones were met. However, hiring a second developer was just not in the cards.
In the end, none of those were the deciding factors for me to leave, but the lack of any meaningful resolution to these basic problems were a major part of my decision process. It was the lack of management and leadership that made me not care about the code or product quality I was shipping. Regardless of the issues I had with the company, I prided myself on caring about the quality of the features I was creating and the experience the users would get from the product. Finding myself caring less about that was an eye-opener. And that’s the worst thing a boss or manager can do: make good employees not care about their job. People don’t leave bad jobs, they leave bad management. I tried to work to resolve each of my issues with the workplace, but after nine months of little more than token attempts, it was obvious nothing was going to change. It was time for me to start the job search.
I have a number of valuable skills and experience. My resume, after review and some redesign, looked very good. The job was very good for providing a fertile ground for professional growth, and the projects listed reflected that experience. The primary challenge was I wanted to stay in Python, preferably Django, and there weren’t many positions for that in my area. I’m also a two hour drive from Boston, and was willing to do partial telecommute by being on-site one day a week. So I started applying for Boston positions and remote jobs.
I received a number of responses to applications expressing interest but passing because the company was on-site oriented. This didn’t dissuade me at all, since I was in a position where being picky is a good thing. Job hunting and interviewing is a lot like dating and relationships. You really want that good fit both ways, or that relationship, whether romantic or employee-employer, won’t succeed.
Technical positions seem to follow a three step interview process. The first initial interview is with a manager, where you get your first introduction to the company, and descriptions of the position and responsibilities. Second interview usually follows a technical project where you’re asked to solve some problem in code, and are usually with senior developers or team leads. The final interview is a team fit, where everyone involved tries to get a sense of how you will fit in the overall team.
At each step, I asked roughly same questions:
How do you like your job?
This is just to get a sense of how the person feels about the company. By watching the body language and listening to the tone of voice, you can gain more insight than the words actually being said. But what is being said is also important, because if the person says they like the free food but says little on the company culture and coworkers, that is a red flag. Watch and listen. Do the words match the body language, and is there actual substance to the descriptions? What is a pain point for you with the company? What is something you’d like to change, but isn’t going to make you leave if it doesn’t happen. Knowing existing areas of frustration is invaluable when considering a position, especially if there’s a plan in action to address those points. While they might not be resolved at the time of on-boarding, you get an idea of what bumps might exist and trap you.
What is communication like? How are disagreements handled?
Company culture and communication is a major point in my consideration of an offer. I don’t do well when there’s yelling or screaming, and want a professional work environment. If I screw up, help me figure what went wrong and put something in place to prevent it from happening again. Don’t chew me out publicly and use personal putdowns. If this is common, I want to know up front so I can discontinue my candidacy.
What does your company do to encourage personal and professional growth
I want to know what the company offers to increase my personal knowledge and growth, both as a person and as a professional. I’ve seen what happens when people get so comfortable in a place that it is as if they just stagnate. I don’t want that to be me.
I want a job that challenges me everyday, provides support when I need help and fosters an atmosphere of collaboration and cooperation to solve business problems. In return, I’ll give you my time, mental focus and concentration and apply my skills and knowledge to make the product better.
It took a while. Its probable my desire for a remote position hurt my prospects, but I wanted to be picky. Given that I did have a job, that was a luxury I was determined to take advantage of. In the end, five months later a friend recommended me for a position at his company. Nine calendar days after, which encompassed three video interviews, one code project and one background check later, I accepted an offer for a full stack Django and React position at O’Reilly Media.
I was really impressed with the people I talked with at each step, and their responses to each of my questions. Everyone was enthusiastic about the work environment and their coworkers, which matched up well with Glassdoor reviews. When it came to talking about their pain points, I didn’t have the context to understand the technical aspects of what was being described, but the fact that all included some aspect of management being aware and having a process in place for remediation was highly attractive to hear.
I’ve been at O’Reilly for two and a half months now. The experience has been overwhelmingly positive. I really like the company, the people and the challenges we’re working to solve. I am also grateful for the experience at my previous position, because regardless of the unsolved issues that led to the severing of our relationship, I learned a great deal over a wide variety of areas that are put to daily use while working with management to deliver a quality product, one that we can take pride in, to our users.