No More Resumes, Show Me the Code!

This article is a reflection on several ideas that have been running through my mind for some time and took shape in a new approach to candidate search and selection that we are going to implement at 42mate, the company I work for. If you’re thinking TL;DR, you broke my heart.

Job Interviews

In my line of work, I have been conducting technical interviews to hire staff for over 5 years, and of course, like everyone, I’ve been interviewed many times. Almost all interviews follow the same pattern:

  1. An HR person finds your CV somewhere on the internet and contacts you for an interview.
  2. They interview you to see if you’re “not crazy,” the human side.
  3. They schedule a technical interview.
  4. A technical person interviews you with questions from Programming 101 manuals.
  5. This may loop through multiple technical and personal interviews.
  6. Finally, they contact you to negotiate hiring, or sometimes they never call back.

While this is how the industry normally works and it “works” in the sense that companies hire people, it is far from optimal.

  • HR issues: HR usually has no idea what they are looking for and no criteria to determine if a profile meets the requirements. For example, if you look at my LinkedIn profile, it says very little about Java and/or .NET. Anyone with common sense can see I haven’t developed in those languages for years, yet I usually get offers to code in Java or .NET.
  • Psychological interviews: Often conducted by workplace psychologists, they ask uncomfortable questions to see if you "fit in," but many great programmers are eccentric and live unique lives. For example, once I mentioned that I played role-playing games like AD&D, and the interviewer didn’t understand, leading to my rejection. Many talented professionals are lost this way.
  • Technical interviews: Usually with the top expert in the area, asking “manual” questions like What is polymorphism?, What is algorithmic complexity?, etc. After interviewing many people, I realized these questions are insignificant—they mainly test memory, not potential. A programmer’s ability to work in a team, learn new skills, or handle client communication can’t be measured in a one-hour interview.

Good teams need human components—teamwork, problem-solving, communication—which take time to evaluate by sharing work and observing interactions.

Regional Challenges

In our region (Argentina NEA), professionals are scarce (even in Silicon Valley it’s similar). Most require training, which costs time and money. Experienced professionals are often well-employed or running their own ventures.

Talented but unestablished individuals distrust startups and prefer large companies or government jobs.

Fresh graduates are abundant but inexperienced and often leave for better opportunities after months.

At 42mate, we aim to stay local and attract talent from the region. We believe there are professionals here, and it’s important to bridge the gap between the company and potential employees.

Beginners

We often see beginners asking to work with us for free, just to learn. These are recent graduates or students with basic knowledge but no real experience. Unfortunately, we cannot hire them for legal and practical reasons.

I always tell them:

"To be a programmer, you have to program. You don’t need a job to program, just the will to do something."

I started programming at 9 years old with a TI/99 computer, typing in BASIC from a book, debugging, and playing for a few minutes.

TI/99

The Book

Later, I learned C++ in college and eventually Visual Basic 6, creating projects and selling them locally.

Visual Basic 6

These early experiences taught me that passion and practice—not courses or degrees—make a programmer.

Open Source

I read an article about hiring through open source. It’s ideal because you can see a person’s initiative, interests, interactions, and code. The problem in our region is that very few developers contribute to open source, making it hard to evaluate skills.

We encourage:

  • Checking a candidate’s GitHub activity, contributions, projects, commits, organizations.
  • Motivating a community to participate in open source applications, libraries, tools, and utilities.
  • Beginners can gain experience and demonstrate skills for future employment.

Any aspiring programmer should showcase their work on GitHub, Bitbucket, GitLab, or SourceForge. It is the real portfolio today.

Our Approach at 42mate

We are always looking for new team members. Because we are a small, tight-knit team, hiring the wrong person has a significant impact.

We rely on referrals and have decided to change our candidate search process:

  1. Interested candidates should explore our open source projects on GitHub.
  2. Review, test, find issues, implement features, refactor code, and send pull requests.
  3. Through these pull requests, we evaluate potential, commitment, and enthusiasm.
  4. Candidates can also invite us to contribute to their projects.

Summary of the process:

  • Explore our open source projects or start your own
  • Collaborate via pull requests
  • Receive feedback and potential hiring consideration
  • Public work can be listed on your CV

Currently, this idea is in its infancy, but we aim to try it.

We welcome feedback on this idea via blog comments, email, or Kato.