Ron  Cartwright

Ron Cartwright

1597741200

My Advice After Interviewing 100+ Software Engineers

This awkward and stressful thing between emerging a hero after completing the 12 labors of Hercules and the pointless successive hula hoops jumps of a circus trained animal, which we lightly call job interviews. We all hate them, yet they are an unavoidable fact of our professional lives.

When for the first time I ventured naively into the uncomfortable and inhospitable world of software engineering technical interviews, it didn’t take long for me to feel that judging a software engineer’s ability in 2 or 3 hours is as accurate as cruentation.

However, I always wondered how it was to be like the one sitting on the other side, what it takes to understand if an engineer is a good fit for the role. For the last couple of years, I conducted over 100+ software engineering technical interviews, and although each company has its unique process, there are common pitfalls people tend to fall. Here is my honest advice on how to avoid them.

The good software engineer

“The road to success and the road to failure are almost exactly the same.”

– Colin R. Davis

There isn’t a unique definition for a good software engineer. It relates to the needs of the role and the diversity and maturity of the company. A recent startup would undoubtedly need a short time to market, while a more mature company that grew to a large customer base would probably be facing some scaling and architectural challenges. Building product while understanding what makes sense to the business is different than solving complex technical challenges. A detailed perfectionist engineer is different from a fast iterating one. You need to understand what the company is looking for and frame your behavior and discourse into that mindset. Don’t do a one fits all CV, instead adapt it to that reality. If you have to do a pitch (in a way, you always do one formally or otherwise), frame it in a way that you show how you will be an asset to that specific company. You should understand the necessity the role is trying to fill and ask yourself if that motivates you if it does then embrace it. You should figure what the “good” definition looks like for the company’s context and show how your knowledge, experience, and attitude fits in that definition.

Do your homework

“By failing to prepare, you are preparing to fail.”

- Benjamin Franklin

Going on an interview without having a clue about the company it’s like going on a date and talking only about yourself, doesn’t mean there won’t be a second date but doesn’t give a good impression. Put in the effort to learn about the business, its objectives, it’s mission, strategy, and results. I would never fail someone for not knowing anything about it, but it is a hint of the candidate’s motivation. Also, it is a standard criterion HR tends to evaluate. Besides business goals, be sure to check the company’s tech blog if they have one and know their tech stack. Not very often candidates show legitimate interest for the company, but when they do, it is an excellent way to stand out.

Have a critical sense

“It is the mark of an educated mind to be able to entertain a thought without accepting it.”

- Aristotle

I’ve met exceptional technical experts throughout my career and they were all kinds of different people. Still, all of them had at least one thing in common; they were the ones who defied the status quo and made the processes and technologies improve. So many candidates, when asked if they have questions, have nothing to add. Avoiding asking questions is a wasted opportunity, grab that moment to ask about the technical decisions the company made and the challenges they are facing and discuss the tradeoffs of each technology.

Examples:

Are they considering moving to HTTP/3 yet?

Are they moving to an event-driven microservice architecture? What kind of message broker are they using? Why not use Kafka instead of RabbitMQ?

What kind of database technology are they using? What was the use case? Would ElasticSearch be a good alternative to SQL in that use case?

And so on. Questioning the technical decisions will show that not only you know these technologies and can argue when they should be used but also that you can think critically and ultimately care about improving whatever applications you work with.

#interview #software-engineering #interview-questions #software-development #interview-tips

What is GEEK

Buddha Community

My Advice After Interviewing 100+ Software Engineers
Ron  Cartwright

Ron Cartwright

1597741200

My Advice After Interviewing 100+ Software Engineers

This awkward and stressful thing between emerging a hero after completing the 12 labors of Hercules and the pointless successive hula hoops jumps of a circus trained animal, which we lightly call job interviews. We all hate them, yet they are an unavoidable fact of our professional lives.

When for the first time I ventured naively into the uncomfortable and inhospitable world of software engineering technical interviews, it didn’t take long for me to feel that judging a software engineer’s ability in 2 or 3 hours is as accurate as cruentation.

However, I always wondered how it was to be like the one sitting on the other side, what it takes to understand if an engineer is a good fit for the role. For the last couple of years, I conducted over 100+ software engineering technical interviews, and although each company has its unique process, there are common pitfalls people tend to fall. Here is my honest advice on how to avoid them.

The good software engineer

“The road to success and the road to failure are almost exactly the same.”

– Colin R. Davis

There isn’t a unique definition for a good software engineer. It relates to the needs of the role and the diversity and maturity of the company. A recent startup would undoubtedly need a short time to market, while a more mature company that grew to a large customer base would probably be facing some scaling and architectural challenges. Building product while understanding what makes sense to the business is different than solving complex technical challenges. A detailed perfectionist engineer is different from a fast iterating one. You need to understand what the company is looking for and frame your behavior and discourse into that mindset. Don’t do a one fits all CV, instead adapt it to that reality. If you have to do a pitch (in a way, you always do one formally or otherwise), frame it in a way that you show how you will be an asset to that specific company. You should understand the necessity the role is trying to fill and ask yourself if that motivates you if it does then embrace it. You should figure what the “good” definition looks like for the company’s context and show how your knowledge, experience, and attitude fits in that definition.

Do your homework

“By failing to prepare, you are preparing to fail.”

- Benjamin Franklin

Going on an interview without having a clue about the company it’s like going on a date and talking only about yourself, doesn’t mean there won’t be a second date but doesn’t give a good impression. Put in the effort to learn about the business, its objectives, it’s mission, strategy, and results. I would never fail someone for not knowing anything about it, but it is a hint of the candidate’s motivation. Also, it is a standard criterion HR tends to evaluate. Besides business goals, be sure to check the company’s tech blog if they have one and know their tech stack. Not very often candidates show legitimate interest for the company, but when they do, it is an excellent way to stand out.

Have a critical sense

“It is the mark of an educated mind to be able to entertain a thought without accepting it.”

- Aristotle

I’ve met exceptional technical experts throughout my career and they were all kinds of different people. Still, all of them had at least one thing in common; they were the ones who defied the status quo and made the processes and technologies improve. So many candidates, when asked if they have questions, have nothing to add. Avoiding asking questions is a wasted opportunity, grab that moment to ask about the technical decisions the company made and the challenges they are facing and discuss the tradeoffs of each technology.

Examples:

Are they considering moving to HTTP/3 yet?

Are they moving to an event-driven microservice architecture? What kind of message broker are they using? Why not use Kafka instead of RabbitMQ?

What kind of database technology are they using? What was the use case? Would ElasticSearch be a good alternative to SQL in that use case?

And so on. Questioning the technical decisions will show that not only you know these technologies and can argue when they should be used but also that you can think critically and ultimately care about improving whatever applications you work with.

#interview #software-engineering #interview-questions #software-development #interview-tips

Software Developer vs Software Engineer — Differences: Bogus or Real?

Software Developers vs Software Engineers

Personally, it pisses me off. Every time I see an article on this topic, my emotional bank account gets robbed. They are all about SEO. Inappropriate keywords squeezed into tiny sentences just to get better rankings. No intent to entertain or enlighten the reader whatsoever. Sometimes, such articles can even be outright wrong.

And even though the purpose of this blog post can be to generate traffic, I tried to make it more of a meaningful rant than a lifeless academic essay.

So, let’s see how you feel by the time you are done reading this paper.

Without further ado:

Since there are no proper interpretations of both terms, a lot of people use them interchangeably.

However, some companies consider these terms as job titles.

The general “programmer-developer-engineer” trend goes along the lines of:

  • programmer is someone who knows how to code, understands algorithms and can follow instructions. Yet, it doesn’t go further in regards to responsibilities.
  • developer is someone superior to the programmer. Except for coding, they also do design, architecture, and technical documentation of the software component they are building. They might be referred to as leaders, but not necessarily.
  • Finally, an engineer implies that you are the real deal. You’ve graduated with a degree, have some tech knowledge, and preferably experience… and you are capable of designing a software system (a combination of software components your peons, the programmers, have built). You’re like an overseer. You can see the bigger picture. And it’s your responsibility to clearly explain that “picture” to your team.

#devops #software development #programming #software engineering #software developer #programmer #software engineer #software engineering career

Fannie  Zemlak

Fannie Zemlak

1596623122

How to Build a Pipeline of Software Engineering Interviews Without Relying on Referrals

The best way to get hired by a company is always with a warm introduction. But what if you’re new to software engineering (I have less than 2 years of professional experience) and don’t have a large network of people who can refer you into the company? Or, what if there’s a pandemic on and your job search just got infinitely harder?

My job search overlapped with the pandemic, but I recently got hired as a software engineer at a company called Solv, working as a software engineer on software to book same-day doctor’s appointments and urgent care visits. Below, I’ve compiled the resources I used and the processes I created to maximize the chance of getting hired as a software engineer during the pandemic.

If you are interested in learning about the types of software engineering interviews and how to technically prep for them, refer to my previous post, Post-Bootcamp Software Engineering Job Types and How to Hopefully Get One.

How to Build Your Interview Pipeline

Let me start off by saying it is MUCH easier to get into a company’s technical interview pipeline with a referral source than it is applying cold. If you have multiple referral sources for multiple companies and you feel confident with your technical interview skills, then I hope your job search goes quickly. But with more software engineers getting laid off and looking for work and the economy shifting quickly, things just got even more competitive. If you are in a position where you are transitioning careers in this uncertain economy and don’t have +10K followers to help spread the word, then keep reading!

My Application Process

Congrats! You recently started your software engineering career and are on the hunt for a new job. Or maybe you want to start interviewing, just in case. Just remember the old accounting method for cutting costs during challenging times: last in, first out. If you’re like me and have less than two years of experience, your job is potentially at-risk during a down economic period, so it’s a good idea learn the skills to build up an interview pipeline.

How do you build a software engineering interview pipeline from scratch?

Everyone points you to those resources above and says, “Go get ’em, Tiger!” and you sit there wondering “How do I possibly differentiate myself from everyone else?” Building a software engineering interview pipeline takes work, it’s literally a full-time job if you are doing it right.

Make Your Resume Unique

To optimize your chances of getting noticed, you need a polished, unique resume.

Build a resume so unique and readable, that it catches the eye of the recruiter or hiring manager and makes them want to learn more about you.

What do I mean by unique?

  • Overall: Resumes should be typo-free, simple and fun to read.
  • Different Design: I was looking for software engineering and back-end engineering roles, so I converted the resume to include command line arguments to display experiences, projects, etc. I also colored it to mimic my zsh shell. You should try to tailor the design based on the position you are applying for.
  • Content: It’s also pretty standard now to have a personal website. As a developer, you should have one and include the link on your resume. In addition to work experience, you should also include links to technical projects that have working URLs with well documented READMEs (getting a 404 error doesn’t set a good impression about your engineering skills). If you don’t have much work experience or projects, do more projects that you can add to your resume!
  • Consistency: If you are linking social profiles (a personal website, LinkedIn, Angel, Medium, etc.), it helps if you have a similar brand (profile pictures, copy and design) across all of your profiles for consistency. Feel free to checkout out my profiles as examples:

Personal Website_, MediumLinkedIn, _Angel.co

Refactoring your resume is a very important part of the job application process. Please do not overlook this step. If you haven’t gone through multiple iterations of your resume or haven’t had someone else review it, do these things first.

After about four iterations of my resume, I landed on this one as my favorite:

Image for post

4th iteration of my resume

Apply to Job Boards

I recommend picking a few main job boards and investing time in those boards, rather than trying to monitor 100 different boards. I found I got a higher ROI on my effort by spending time regularly on a few boards.

With under two years of professional software engineering experience, I found the job boards below very useful for engineers at all levels:

What worked best for me was applying to postings on LinkedIn and Angel.co. I actually found my first engineering job at Wyre through Angel.co and my second engineering job at Solv through LinkedIn. Cold applications work, you just have to put in the time of building a good resume and a clean personal website and writing a personal note (each person’s own secret sauce). To prove my point even more, the job posting at Solv was for a Senior Engineering role, and the recruiter said I got an opportunity to interview because she liked my resume and saw potential.

I can already hear all the different opinions of people yelling in my ear: “But you shouldn’t apply to applications on job boards online. You won’t get noticed so it’s a waste of time. No one looks at them, you have to go through someone you know.” But once you’ve tapped your network and can’t go out to meet people because of stay-at-home orders, it’s time to make job boards work for you.

My goal was to apply to at least 100 companies a week or ~15 companies per day. To make that process more efficient, I tried to reduce context switching by grouping related tasks into one day. For example, I would do all of my initial applications on Sunday and Monday for the week. It didn’t matter if it was a workday application process where I had to sign up for an account for every company I was interviewing for and then going through their 1990’s style application process, I pushed through it and applied anyway.

Lastly, there use to be a script that would allow you to post to literally 1000’s of applications on Angel.co, but it doesn’t work anymore because Angel.co changed their front-end code. If any front-end engineer wants to update/create a new script to batch apply to jobs, that would be awesome!

#software-development #software #interview #software-engineering

David Hill

1619169880

6 Tips to Conduct a Seamless Virtual Interview

Virtual interviews are specially designed to make hiring fast, automated, cost-effective, and convenient than ever. It’s becoming popular among businesses as a digital hiring solution to make interviews remote-based and smarter. Online virtual hiring makes your HR team tech-savvy and improves their interviewing experience at the next level. But before you choose a virtual interviewing tool for your talent acquisition team, we suggest you have a look at this post. This will enrich your understanding of virtual interviewing and help you stand out in a digital interview. In this post, you will get tips on transforming your HR team into a tech-savvy recruitment ecosystem and ensuring optimal utilization of a virtual interview.

As technologies are getting advanced, businesses of all sizes align their recruitment with it to attain better and accurate hiring goals. The virtual platform offers you cutting-edge interviewing features to outshine your competitors and stand out in the market.

**Check out below tips for successful virtual interviewing: **

Create a pro-tech Team
Video recruiting software helps you select a star talent for your company crossing the geographical constraints and grow fast working remotely. It brings automation into your hiring process and reduces expenses on travel. But to make this happen exactly in the same way, it is essential to have a technically sound and experienced team to attain the desired interviewing objective.

Get the right software
Integrate a virtual hiring tool that allows a hiring team to connect with the applicants remotely without compromising the quality of hire. And makes Job posting, sending auto-reminder, and screening of the candidates automated and easy. Besides, a good digital solution should automatically shortlist the most suitable candidates for in-person interviews to make it convenient for recruiters to select the right-fit talent.

Check the compatibility of your tool
A virtual recruiting tool should be compatible with all most all online interviewing platforms. It is recommended that before you choose an interviewing technology, check its compatibility with your HR team, and after double assuring yourself, consider taking its subscription. An easily compatible virtual hiring software would enhance your ability to select the right-fit candidate for the company and encourage fast growth.

Promote your Job post
Ensure an Omni-platform presence to attract the maximum number of applicants and increase higher interview turns out. It plays a vital role in your recruitment process as it widens the spread of hiring information. Having a greater number of applicants put you at an advantage to scan the candidates harder and select the most suitable talent for the position.

Scan before calling for interview
Entirely rely upon the candidate’s documents and CVs is not a better idea of selecting a candidate. To avoid such things, you should scan a candidate via a virtual platform before calling in for an interview. Digital solutions offer you an effective feature to observe the candidates’ non-verbal expression and professional etiquette. It provides you an idea that if a candidate fits well into your company’s work culture or not.

Improve your branding
The job seekers always have the ambition to associate with an organization having great brand values and reputation in the market. And if you present your company as a vibrant brand in front of the candidates, it will attract them, and they will feel excited to associate with your brand.

These are some essential tips you should use to ace your virtual interview. No doubt it will help you schedule effective hiring and select a star talent for the position. You can also check out the blogs of Jobma to know more Tips To Conduct A Seamless Virtual Interview

#software #interview #screening-software #video-interview #video-interviewing #interview-questions

Fixing Broken Technical Interviews

Image for post

Photo by ThisisEngineering RAEng on Unsplash

Hiring a software engineer is hard. It can take months to meet candidates that have the skills and strengths that will grow your team. Convincing them to join is an even heavier lift, often with huge price tags. As interviewers, we often make both challenges harder by chasing after qualities that don’t build strong productive teams.

I want to share what I think a technical assessment interview is supposed to do, and what makes for great technical assessments for businesses of all scales.

Why should you listen to me

I am a seasoned software engineer that has worked in the heart of the San Francisco tech industry building products with startups, and international corporations for over a decade. Primarily bringing apps to peoples iPhones.

I have interviewed with countless companies from FaceFlix giants, to WeWork nomads. I have designed and given technical assessments for the last 5 years, and built candid friendships through out the industry while working with hundreds of brilliant people throughout my career.

Interviewing is a frequent passionate topic of discussion for me - and while it may not be my favorite work activity - I have enough experience to share perspectives I think can improve the interviewing experience and outcomes for those in any industry.

What a technical assessment is supposed to do

Technical assessments first and foremost goal is to evaluate a candidates technical merit. If you yourself have technical merit, this is trivial. You can tell when you are talking to someone that knows your business.

Harder to answer, but more importantly:

What can they add to the team technically? And is it what we need?

Sometimes that means a specific fluency in a technology. Sometimes it is general knowledge of an entire suite or “stack” of technologies and how they work together. Sometimes it is a background in something your team wants to do over the next year or two.

An interview should be designed to answer some reasonably obvious questions. Breaking it down, some of the things I consider when assessing technical ability is:

Code Competency

  • Do I believe this person could take the work I see every day and do it to our standards? How confident am I in that?
  • Do they understand computer science fundamentals and data structures?
  • Do they have experience with the platform/framework/stack we use? How deeply?
  • How well do they apply concepts and data structures as tools to approach a problem?

Technical Communication

  • How do they get thoughts outside their head? Did we understand each other?
  • How did they break down a problem, discuss goals, risks, quality assurance? Will they be productive in technical meetings here?
  • How confident am I that code from this person will be what the team considers to be “good code”, and reviewing it will be comfortable and productive?

Teamwork

  • How did they respond when I asked them something they didn’t know? How about when I asked for a recommendation, decision, or made a suggestion?
  • How on time were we? Did we complete our objective in the allotted time? How easy was it staying on time?
  • Was the interview enjoyable? Stressful? Awkward? Did anyone genuinely smile or casually curse?

Level

  • In all of the categories how advanced was the performance?
  • How well did it meet the needs of the role?
  • How much is the team going to succeed or fail by this roles influence compared to my confidence?

I argue that a good technical assessment will leave an interviewer able to speak to these sort of questions if the interview was designed and given well.

Common Anti-Criteria

I have been in a lot of interviews that work against common growth objectives and even feel adversarial at times. While they demystify the recruiting process for interviewers by providing standards to follow, they completely miss out on gaining true understanding of a candidate and using the hiring process to strategize your team growth.

Success (Binary) Measurement

  • A task was completed
  • The candidate possessed _______ skill or demonstrated ______ ideal

IQ Measurement

  • The candidate answered trivia facts correctly and uses idiomatic code
  • The candidate solved a riddle, puzzle, algorithm challenge

The Grit Measurement

  • The candidate succeeded under stressful conditions
  • The candidate did not fall for a trick

These are all interesting things to have happened during an interview, and often would fit into a debrief, however I believe that an interview _should not be designed__to take their measuremen_t.

I often start interviews by explicitly stating that I’m not measuring these things. They are obviously noted, but they aren’t being compared to a standard. This sounds like it would be a big disclaimer but it’s as easy as:

“We want to make progress, but most importantly I want to hear your thought process and get a sense of working together.”

“The project we are going to do is the topic of the interview, but getting to know how you think and work is whats most important here.”

“We want to get to a working solution as quick as we can, but I’m not as worried about how smart you are as how well you can think and learn”

This has a powerful effect of de-escelating the interview and often makes a role more interesting to a candidate having had a comfortable experience that they can mentally map to a daily environment.

The most compelling interviewers I have worked with are able to make candidates forget they are interviewing — Not because of charisma, or co-working chemistry — but because the task that was presented was topical, and the interviewer was engaged not a challenge to be overcome.

#recruiting #interview-tips #software-development #interview #software-engineering #interview-questions