Hey makers!
How would you advise, a non-technical founder to assess the quality of front-/back-end engineers to hire? Are there dedicated tools for this?
I am building an (Unusual) Technology Company (part description, maybe a name - I am still figuring it out). In two words. We are a remote-only team that shares an appreciation for the outdoors, shares a joy for life, has a sense of urgency and passion to build beautiful technology products. We want to both build and buy digital products/companies that have strong moats.
I have had enough successful and unsuccessful entrepreneurial experience to claim that from the business point of view (hiring, finance, legal, growth, product design, sales), as well as capital, I will deliver.
Where I am lagging is on the tech side; primarily on the tech architecture front.
Whilst, I am looking for a technical partner (but this is subject to a different post), I am also building the core engineering team for our product called Paudium.
Paudium is the only podcast-first, mobile-first player that allows podcasters to embed content within the podcast player itself. Podcasters can sell any products - including merchandise and premium content - directly to listeners (via the player). Community engagement via AMAs and episode comments is a streamlined, integrated experience within the player.
Again, grateful for any advice!
You can't. You need someone who has been in a technical hiring manager position to help you assess technical candidates.
That's probably not the answer that you want, but hiring a great team is difficult enough even when you have decades of domain expertise :)
Thanks, Jon. Indeed, it's not an easy situation. But there is always a solution. So what would you recommend to do?
As others have also mentioned, the most important part is to evaluate their communication skills.
In my opinion software development is a lot more about communication than it is about coding. Also communication skills grow with experience.
Asking to architect the problem you have in hand during an interview session could be a good example. Asking them to explain as they go in a non-technical manner so it is understandable for all stakeholders.
After the first draft, asking how they have taken in to account problems like, scalability (what happens when your traffic grows), availability (how to make sure the service is available majority of the time), how to avoid failures, what are the weakest points of the design, etc.
The way they design and explain a system will be a great indicator of how your future relationship will be.
Also it is important to have someone who is familiar with different technologies and languages so they can pick the right tool for the job, rather than having a hammer and seeing everything as a nail.
As an engineer myself, we have a tendency to over complicate architectures for the joy of working with complex system, most of the time unconsciously.
You need to pick someone who understands that at the end of the day we are here to solve a business problem. So they implement the system "as simple as possible, but not simpler".
Wish you all the best. Also great idea.
Great advice.
Thank you Majid for this incredible advice. Followed you on Twitter, would love to connect and have a chat.
Based on the comments I have received and my experience so far, communication (and other collaborative soft skills) are absolutely critical. This is great, as I can assess them.
Now, what concerns the hard skills, hopefully not being too ignorant, I have a few follow up questions:
When asking to architect the problem, what should I be looking out for? (I do understand that each problem is very specific and requires an individual approach but are there are any universal principles that could indicate whether the engineer is good or not?).
You mention the "first draft" - what are you referring to?
You refer to familiarity with different technologies and languages. Is there any absolute benchmark measure that you would say that spectrum of knowledge is good or bad? Let's take the case of B2C, web-based, and native mobile apps?
Thank you again for this incredible help!
Thank you Dima, would love to connect and chat as well.
It will be very difficult to assess the technical skills. So I recommend, if you have someone who you trust with their tech skills, bring them with you to the interview sessions. They can evaluate the skills much faster and deeper.
You need someone who can wear multiple hats. They need to be able to architect the system, but also be able to implement and execute as @tadasv mentioned.
Also they need to be familiar at least with how to run the system in the Cloud and operate it. So you need someone with a wide variety of skills.
As for the interview itself, again I recommend giving them the problem you have and see how they approach it within the 1 hour interview session.
By first draft, I mean given the problem they will have 30 mins or so to come up with a high level design. Then you can drill down on how they have thought about different details of it.
In terms of tech stack, I actually recommend posting a separate question here in IndieHackers asking for recommendation, and see what people suggest. Then you can evaluate your candidates skills against those. (Not the ideal case but still ...).
Finally, IMHO, it would pay off significantly if you learn the basics of coding. A bit of backend, frontend, mobile and cloud. The very very basics and fundamentals.
Tech and business are two different worlds and people who are able to bridge this gap, will be the most successful ones.
A ton of incredible advice. Thank you, Majid:)
Will ping you on Twitter!
Re hard skills, it will be very difficult for you to evaluate them because you don't have those skills yourself. You can ask the question, but you won't know what are the correct answers. And, there's usually no one correct answer especially in architectural problems, there are always trade-offs somewhere. The second part is that you don't want to only evaluate architectural questions. There are so-called "architects" who are great at talking about things but bad at executing. This might be something you'd want to have when you have a team, though I would advise against such roles in general because if you're solely thinking in terms of high-level architectural problems, you can get very much disconnected from the reality, plus there are other things around team dynamics.
My advice for you would be to get a connection from someone you already know well and trust, someone who can vouch for that technical person because they worked with them in the past and know what they can do. Then try to get them to work with you, given they pass your communication checks. From there it will get easier to build up the engineering team.
Thank you Tadas for your kind advice! Very much appreciated.
Even though I have different business experiences, I fully relate to avoiding hiring theoretical people. In my experience, they are so protective of their ideas (because they don't have more than that) that not only they are theoretical, they also end up being closed-minded.
I am aligned with you on Basecamp and actually am inspired by them as I am building my next venture.
I feel we should connect. What do you think? What is your email address or Twitter acc. Or just follow me and I will dm you/or email me.
Hi,
I did recruit devs in the past so here is a few things that seems important to me.
I also like to do a simple tech test (what this does, what's the result ...) to see 2 things:
Thomas, thank you for your kind advice. Very insightful.
Can't agree more with you on the "little genius" syndrome. This is universal across all industries and geographies.
A couple of questions, if I may:
When you pick a project on the resume and ask the dev to explain it, what are you looking out for in her/his explanation?
Could you please elaborate on the simple tech test? What is it? How do you set it up? What tools, language do you use?
Thank you so much for your kind help!
Followed you on Twitter, would love to connect and have a chat.
I check if everything is clear in the candidate's head. Someone can spend 10 days on a complex project and pretends he/she knows everything about it. But if you ask how the data is store, transferred, secured. How the app is deployed, updated ... Is there a pattern, a specific architecture. What worked and what didn't.
If the person do not stutter and can speak about the project for hours that's a good sign. She/he is passionate about it and involved.
In my previous company I was looking for a PHP dev, so the test was PHP. I think you can find some online.
You start with basic stuff. What's the difference between:
$a = $b;
$a == $b;
$a === $b;
I also liked to ask about the latest features to see if the candidate is up to date. At the time, it was: What this do
$a = 5;
$b = $a ?? 0;
It's pretty basic but no candidate had 10/10.
Thank you Thomas! Will ping you on Twitter!
I built this a little while back: http://how-to-hire-developers.com/
If you don't have the skills to assess them on your own, you basically want to start by seeing that they talk knowledgeably. A lot of hucksters can so then you move on to the next step: Get references. And follow-up with those references. Actually checking them is very important.
Last, ask for help from technical people in evaluating other technical people's skills. There are a number of services that can help you with this such as vettery.com
Thank you, Max. Very insightful. Will dig into the articles you have shared. I will read them this week.
How could I connect with you? Can't find your email or Twitter?
My profile has a link to a contact form: https://www.indiehackers.com/maxk42/
Hey @DimaD88,
This is something I've done a bit of in the past. Granted I have quite a lot of programming experience myself so I can tell a lot by looking at someones code, but there's a few things I always tell non-technical people to ask
Ask the developer to explain something technical to you in a non-technical way. This goes a long way in showing how well the developer understands what they are talking about and also how well they can communicate with you. For example, "explain to your Grandmother how a website works"
I regularly ask developers to build a small part of the project (I generally also offer to pay them for this) as an initial task. I've had developers do the bare minimum and produce something that is just about passable, and then others that have exceeded my expectations and voluntarily improve/enhance and offer recommendations on future features etc..
Non of these methods will assess the actual quality of their code (unless you have someone to review it), but it says a lot about their personality which goes a long way in my opinion
Thanks, Rob. Very insightful.
Interesting how your advice on explaining something technical in a nontechnical way is in line with so many other makers. Such a strong pattern.
Will integrate the practice of asking the developers to build something.
Followed you on Twitter, would love to connect and chat.
I think with technical talent (and most other positions) it is always best to actually work with them for a little. For more senior people, this usually only possible with founder level roles. For junior designers, developers, data scientists, and product managers, you can try out Prentus.co where you can
get matched with a vetted intern in as little as 7 days. Work with them up to 90 days and hire them only when you are sure.
100% agreed on testing out the relationship before committing.
Thank you for the link to Prentus.com. Will check it out.
Would love to connect. Followed Prentus on Twitter. Shoot me a DM.
your first technical hire can make or break the success of your project; even if they don’t work out in the long run, you may burn a lot of capital paying for their poor technical decisions. So it’s good to proceed carefully.
If you have a technical friend you trust, perhaps they would be willing to do some hourly consulting to help interview candidates you feel good about. I did this for a friend recently, and we were able to quickly go through resumes, identify some strong candidates, and ultimately he was able to hire good first developer for his team. It only took a few hours of time, so it shouldn’t be a big investment on either side.
As others have mentioned on this thread, there are some ways you can evaluate a developer without technical skills, but I don’t believe there’s a substitute for someone good technical evaluation from someone used to hiring developers.
Hey Jones! Thank you for your kind reply. Apologies for the slow turnaround.
Dropped you an email. Would love to connect.
There is no way around it, you need a CTO. Ideally a co-founder who will really care about your product. You want ONE technical direction and someone who will assess and vet everybody else on the technical team.
The only real alternative is to hire a well known software development agency that will outsource you a team and give you a direction until you find the right person. This might be expensive.
Now, how to find a great CTO you ask? You won't be able to technically vet the candidate, but look at past experiences (team leading/tech leadership) and contact people that worked with him/her before.
I would personally go for someone with their own product or open source project under their belt. Avoid people that are only managers now. You want a hands on person at this stage.
Hey Josef! Thank you for your kind advice. In fact, thanks to all the great insights here, I have switched the search for a technical partner. Would love to connect and chat about your thoughts on the process. Would be very much obliged. Followed you on Twitter, direct message me and let's connect.
You can send me a DM on Twitter to follow up. sure thing.
Depend on what stage are you in your startup right now, what is your primary goal and what size of a team do you need, in what market are you operating and do you need to move fast or can you go slow or do you have a significant financial backup or do you need to make profit from the start? The interview process big tech company follow doesn't apply to you so following them may have a negative impact.
Hey Nehal. Thank you very much for your questions. Here are my answers:
Size of the team? Long term, I want to keep my entire team under 15 - 20 people. Short term, I am looking at a UX/UI designer, front-end, back-end engineer.
I would love to make a profit from the start. I am not optimizing for valuation but for cash flow. At the same time, I have enough financial backup to make mistakes and to experiment.
Let me know your thoughts.
Take this with a grain of salt as my advise is very different then others.
Find a co-founder if possible or hire someone who can code, does not need to have sound technical knowledge, someone who also have an entrepreneurial mindset and have experience building startup or company. Right now you need to ship your product and reach your customer fast and iterate on your idea/product. Lot of the technical decision or factor are not and should not be your concern at this moment, they can be taken care of later on. Lots of successful company have successful product with technical debt, it is fine. Scalability etc are not your concern now, these things are for later on when you have a solid foundation and you have product market fit and validated your idea/company. While there are already some very good advice here I feel like they come from pure technical view point but you need to understand business side of it. Right now find someone who can demonstrate they have experience building and shiping products and understand business side of it as well as technical. As a coder myself we often concentrate on the technical part too much and forget that business is first about making profit and serving customer. This is my two cent.
Thank you for your kind advice!
I don't know whether this will be helpful but I can share how tech companies go about this.
Most technical interviews will be a mix of solving technical problem on the "board" and for more senior positions will include system design interviews.
For technical interviews, candidates are given a problem to solve and have to come with an algorithm to solve it during the interview, using whichever language they want. In some cases, people will allow pseudo-code to be used and in some cases, the understanding of a particular language will be tested during that process.
For the system design interviews, the problem is much higher level (think how would you implement the type-ahead search in the search bar of company's product). The goal is to see if the candidate can think on their feet and are able to architect complex systems.
Granted, this is going to be very difficult to replicate when there are no technical people on the team yet.
Even with that, it still is very difficult to potentially figure out how good someone is. Top tech companies like Apple, Facebook and Google will conduct 5-6 technical interviews, sometimes it will happen after 1-2 technical phone screens. They might even bring people for more technical interviews after that if they couldn't get a good signal.
(slight tangent: Honestly this seems to be a recurring problem coming up on IH and might be worth exploring. I could imagine a solution where technical people vet other technical people on the behalf of non-technical founders.)
As a stop-gap solution, I would recommend asking for existing projects from the candidates and ask access to the source code.
With access to the source code, you can verify that the candidate implemented the core of the project itself.
It would be best to ask for projects you can interact with so you can gauge how much product complexity is in there.
One of the drawbacks of that approach is that as non technical person, it will be difficult to gauge whether the code if of high quality or not.
Another drawback is that a complex product might not mean a complex technical solution either (I could imagine gluing a bunch of existing services together to create something quite complex)
Another possibility would be to give out software puzzles for candidates to solve and check their solutions are working. That unfortunately will require some technical understanding to create the puzzles and verify them. I think it was Facebook that at one point did that and asked for people to submit solutions to apply for certain jobs.
Another one could be for you to ask the candidates to implement something related to your project and see how long and how well it functions after that. I'd made sure to have some sort of contract in place before doing that just to be on the safe side though. You don't want someone to knock at your door the day before IPO and ask for half the company ;)
Paudium sounds like a very interesting idea, I'll make sure to keep an eye out for it. I haven't paid too much attention but is there a standard already to define "cue points and actions"? It would be awesome to define such standard so that players do know where ads or other links are placed. It would help for premium podcasts for instance, where if you pay then ads are skipped, otherwise they are not.
Hello Jerome! Incredible advice. Thank you.
A couple of follow-ups:
Let's connect (followed you on Twitter), would love to jump on a call and discuss:
To answer my own question. I was looking at RAD, the spec created by NPR and others to track listening information about podcasts. They simply use ID3v2 custom tags (TXXX) The ID3v2 spec does have a lot tags that could be used to link to content, payment and other things, so shouldn't be too difficult from an audio perspective to create podcast tracks that are compatible with other players and yet offer richer experiences in other places.
I'm wondering the same, wondering how to assess the tech stack side of things. Your product sounds interesting, too. Following.
Thanks, @antarctican. Let's wait for others to respond:)
This comment was deleted 6 years ago
Hey man, thank you for your open and transparent response.
Would love to follow up with a few questions:
When you say, get the necessary knowledge about software development. Do you mean I should understand the principles/foundation of a particular programming language(s) or of the process of software development (like agile, etc)?
Could you share the link to the video from Dan Martell?
Love your feedback about my pitch of UTC - could we chat about this? Would be so grateful to hear more, so can improve.
Re Paudium. Yes, I did talk with quite a few podcasters and we have interesting feedback. Hence why I need to get a team on board, quickly.
Let me know how I could connect with you (twitter, email), would love to reach out and chat.
This comment was deleted 6 years ago
Hey there! Thank you so much for this awesome response. Would love to connect and discuss a few points you have mentioned in a bit more detail! How can I reach you?
This comment was deleted 6 years ago
This comment was deleted 6 years ago
Hey Thomas! Thank you for this advice! Will look into Hacker Rank.