Hire A-players. Take the time to find truly gifted developers. You will get a 100 times better software and better code, compared to an average developer. They will love to work with each other, and your team will become self-policing: they won’t allow but A-players to join them. Even in remote teams, Steve Jobs wasn’t wrong about this. What I think you should consider too is: you still need to hire a Steve Jobs type of manager to lead them. There are some distinctive characteristics a great manager has: – They can take a demotivated team coding tech debt, and turn it into a world-class team. – They can make releases enjoyable, instead of catastrophes. – In the face of crisis, they will remain calm. – They outperform everyone: they will work harder than anyone else. – They can turn B or C players, into A players. – They will present business needs as tech challenges that engineers will see as opportunities to grow. I’ve also seen examples of bad managers as well: – They avoid getting their hands dirty. – They rely entirely on a “right hand,” which will give them a biased picture of what’s going on. – They will treat individual based on stereotypes instead of taking the time to get to know each engineer. – They are inflexible, even if that means blocking someone to move forward. – They will get angry under pressure, and mad against people who can’t understand what they want, or don’t do things as they wish. By all means, hire A-players, it will change your engineering team. However, also make sure they have the right leader. No matter how good they are, they won’t give you their best work if they don’t trust your engineering manager.