Do you build a team out on the technologies you want to use? Or do you choose the technologies based on the people you have? In this conversation with Pulse, CTO at Altruist Ashit Joshi shares with us his ideas on expanding teams in startups.
What do you look for when growing a team?
It really depends on the size of the company. With Altruist, it was like ground zero where we had to find the core senior team members. I had a technology stack in mind that I wanted to use. So I started with back end services that we were going to build in Java.
We had a focus more on microservice architecture, the front end team systems will be on react framework. Because my vision was that eventually we will build a mobile app and as a part of mobile, like Apple, would probably use React Native because the type of business we are in it’s a good use case for direct native. I also had a vision of using an orchestration layer in between BFF so I had technologies in mind that I wanted to do. Based on that I started hiring
What led you to have a firm vision on the technologies you wanted to use?
It should be something I’ve had enough knowledge where it’s based on either hands-on experience or even just having enough knowledge about what these technologies are. What are the strengths and weaknesses of it? How do they fit within the current business needs, as well as the talent pool that you can get access to?
For example, I use Java Spring Boot as a framework on the backend as there are tons of Java developers all over the world and we can quickly hire really great talent. According to the number of engineers I can hire to the functional, these are both factors. This is technology that has to be battle tested. Java has been used for decades to build very stable, scalable, software.
Another question is, when I want to expand my team, would I be able to find a couple of hundred Go developers in Venice, California? The answer is no. Can I hire a couple of hundred Java developers here over the next five years? Probably yes. So you weigh those options and then you say this is the technology that can be used.
Do you get a sense that IT spending is changing?
I think so. People are trying to reduce the cost and IT expenses. When I started my career in the Bay Area 15 years ago, in software development, it was all Microsoft stack where people are paying licensing fees for my SQL Server.
I saw the shift happening towards late 2000. It was all moving towards open source and SQL and PHP but Java was always going to be there. Then slowly they moved from dedicated data centers to AWS cloud. So that automatically reduced the cost of having a number of people to hire.
But the way it has been evolving the last couple of years, I think it’s moving more towards optimizing on the cost of computing, which is going from EC2 Instance into Kubernetes and Kubernetes is eventually going to go to a serverless architecture which means you don’t really need machines running you just somebody to code and the code does the trick for you.
That’s going to be another evolution of IT spend but the only challenge is it’s still not as mature and it only has a specific use case. So it’s going to be slower adoption but I think the general trends are going to be consistent.
You’re building out a team in Russia now. What are some tips to managing a remote workforce?
There are a couple of techniques that I’ve learned. One is, for the first 2-3 months, you need to have dedicated people who are committed to making a remote team successful on both fronts: local as well as remote. My strategy was to hire a head of operations who’s not a technical guy but takes care of all the people, finance, taxes, office, office needs, supplies, everything. This is a person who’s going to take care of all the overhead or all the distraction that is going to come when you start a new office.
When it comes to engineering, what you need is an engineering leader or manager on your team who’s going to be the liaison between the team here and in the remote office. So you need someone who’s constantly making sure that the teams are getting the requirements satisfied and they are not getting unblocked.
What I’ve seen work best is to bring a couple of senior people in on-site. So it starts creating this relationship between the local team and the remote team. When you put a face against the name, it creates a personal connection versus just talking to someone on the phone.
Do you think there are still limitations to having a remote team?
The timezone is definitely one of the limitations that you will run into. This is a common problem. Anytime you start a new location, which is not in the same time zone or within 50 miles of driving time you will end up creating two different micro-cultures that will have conflicts and clashes. Unless there’s commitment and dedication from both the parties who are committed to making this relationship successful, it will always be a challenge.