I get asked about this topic a lot by early stage startups, since I run a sizeable tech team locally and have no issues (or so they think) with hiring, training, retaining talent, etc. While there isn’t a 5-step recipe to building your tech team, what I hope to achieve with this post is to present you indicators for when you should be hiring your team.
To preface this, I will be addressing startups that are building a business enabled by technology, as opposed to startups whose core focus is on building some sort of technological intellectual property. While some of the broad team advice I can give may apply to any technology startup, my observations around specific needs and timing don’t.
Pros and cons of Building your Tech Team in Singapore
So you’ve decided this island to be your place of business. Perhaps, it was the grants, or the people, or both (hopefully it was both). In any case, you’re here to stay so the next question you need to ask yourself is if this is the right place to build your team.
Broadly speaking, Singapore has greater access to foreign talent; people from around the world have many reasons to work in Singapore. It’s a safe city to live in, working and living here is convenient, work is fast-paced with many opportunities for advancement, etc.
This is vital because Singapore does have a dearth of locals that are willing to pick up the mantle of software development. The general populace see tech jobs in the same light as blue collar jobs, as opposed to more respected fields like finance, medicine, law, etc.
While this archaic view is rapidly changing for the better, we are only seeing the early hints of things to come. Singapore is too small a country to support the developer ecosystems we see elsewhere. As a developer, it’s hard to find good places to work at, where you get to hone your craft on best practices and challenging projects.
I’m optimistic that we’ll get there some day, but that day is not today.
In addition to actually finding talent, you’ll also find that salaries here are higher than what you would pay for developers in the surrounding region. As a startup, you’ll be very much inclined to pay more than market rate for developers. My opinion is that this is only justified if the developer is indeed better than market average, but otherwise is just foolish. I’m all for higher developer salaries, but the ecosystem doesn’t support it very well yet, but that’s where you come in eh?
The Idea-Stage Startup
If you’re an idea stage startup and you’re looking for a CTO, prepare to wait a lot, if not forever. Simply put, the odds are not stacked in your favor. Unless you made friends with the geeks in school (such foresight you), the chances of you snagging CTO that will sweat it out for equity is slim to none.
Even if you do find one, why would they join your idea-stage startup, as opposed to a startup that is further along the way? Chances are, you’ll be dangling equity plus cash to get them to join, but have no way to assess if you need this person beyond the initial product launch. You can’t design a better trap than this really. Can this person scale up the solution, make tough calls on product and technology, hire and lead a team around the business? I hope you have this person on a vesting schedule.
You don’t need a CTO to build an idea.
At this stage, you have very little bargaining power in the job market, so you’ll soon be settling for leftovers. Don’t be that guy. Instead, save some time and dignity and hustle your way through this by hiring freelancers on oDesk or Elance, or a developer that’s moonlighting for quick cash.
Do your job as an entrepreneur: get your demo up, do a soft launch, talk to investors, raise some money, etc. In order to be serious contender for tech talent, you gotta up your game.
Case in point: if you want to build a team, don’t be an idea-stage startup.
At this point, it would be wise to note that if you’ve never worked with software engineers before, you’re going to educate yourself. You’re not going to have NASA-quality software, things will break; Murphy’s Law applies here, and there will be many frustrations.
Whatever happens, don’t let it go to waste by simply blaming it on other people. Your attitude towards technology will aid or hinder you when you need to hire your own team.
The Post-Launch Startup
So you got a product that’s launched and like a bunch of people signed up. Congrats, you’re way ahead of all these idea-stage guys, but you’re not out of the woods yet. You’re gunning for one more feature, one more pivot, always one more thing, and your freelancers aren’t cutting it right. You need to bring development in-house.
Whether you realize it not, your source code is now a liability.
You need someone to take the reigns, and to ask the right questions, like “What language/platform was it built on? Is the codebase in pristine shape, or a stinking mess? Should we rewrite it, or will it serve our needs for now? Would you enjoy working on this codebase if you were a developer?”
You need a CTO now. Or do you?
I’d say that at this stage, you need a decent Tech Lead that can bring you to the next stage. Depending on what sort of growth you are looking at, this would probably suffice and you can hold off on appointing a CTO. Feel free to disagree with me on this one if you chance upon someone you think makes for a good fit, and strongly believes in your startup.
Unless you are experiencing super high growth (see next section), in which, you can probably raise some serious cash, as well as some tech eyebrows, you don’t need to scale up your software engineering team that quickly.
You may find it more cost-effective to hire a full-time techie to lead your jolly band of freelancers around the world, while keeping an eye out for good full-time additions to the team. At this point, you should be hiring generalists, or what we call full-stack developers so that they can keep an eye on all aspects of the codebase, while committing code themselves.
Ideally, you should have a few freelancers you can tap on to ramp up development effort if need be. You don’t want a bunch of full-timers, or you will find yourself assigning them tasks that don’t contribute any business value. Don’t do that because once again source code is a liability; more code more problems.
Keep your team lean, but always be hiring.
The Product-Market Fit Startup
Customers are getting into your site every which way, and your servers are bursting at the seams. You would celebrate with the commensurate amount of champagne except that you really need to hire more tech people right now. You quickly pour yourself a glass anyway. Sneaky you.
This point right here is the best time to go all-out and build your tech team. Any earlier, you’re running on hype, which we all know is less efficient than fumes. Any later, well, better late than earlier because that’s when you have the least bargaining power.
Now that you’ve achieved product-market fit, it makes sense to build a team around your product roadmap. By this time, you should have fleshed it out well enough to communicate a strong direction to your team. You should have raised a significant runway for paying good salary; startup developers aren’t exactly looking out for a cushy developer job, but you need to have your act together.
As you build out your team, you can start to narrow down your existing team’s job scopes, and start hiring more specialized people. However, you will want to balance that with some mobility so that people get to work on things that interest them.
At this point, you should also invest in hiring leaders who can lead the rest by continuously developing our developers’ skills and the code quality you produce. We have a dedicated role for this at Tinkerbox, and we found that by doing so you will build a culture of high quality code, which will yield productivity gains down the road, and pave the way for good hires.
Hiring developers at the right time is vital because starting off on the wrong foot can define your developer culture undesirably. Hiring when you are not ready, can set you up for failure to even launch the product. Considering all the constraints that startups have to deal with, you might want to sit this one out; your team and code can become liabilities, and more often than not a costly problem to repair.
Instead, startups should pursue leaner ways of building and validating their minimum viable product (by lean, I don’t mean cheap, you should pay well for the right talent). You don’t need an entire team of developers to do that, and there’s only so much pivoting a software engineer can take before they leave in frustration.
Some entrepreneurs see their product team as a means towards some other end, like build a product and successful company, and fair enough that is a given. But more than that, we should start seeing the product team as an end itself, that we strive to build a great team, which should in turn create great products. Perhaps then, in Singapore at least, we can start to see software engineers as more than just code monkeys, and in turn create the right environment for the startup ecosystem to flourish.