Santiago Palladino is a team leader at OpenZeppelin, a company based in Buenos Aires that creates development tools for blockchain and also audits blockchain applications for security. He shared with us his methods for overcoming the unique challenges of leading teams working with a distributed Blockchain development team.
Short on time? Here are three key takeaways from Santiago’s interview which outline what he does to build and maintain effective development teams for a large and complex product:
- Developing blockchain is challenging because the approach is different and everything continually changes. The requirements for creating blockchain apps are different from web or mobile applications. It is also evolving constantly, security is critical, and how the apps are used is entirely new.
- With blockchain, you never stop onboarding new team members. Since everything is always changing, you must constantly learn and adapt. New members can be productive in a few months if they dive in and practice.
- When picking new team members, prior experience is not as important as finding people that are passionate and motivated by the challenge. Their interview process focuses on finding people who can communicate efficiently and are excited about such a new and dynamic space.
- Building effective connections in a global team starts with getting to know people face-to-face. They always have new team members work in the main office, and they hold retreats during the year so everyone has face time. This makes connecting through written or virtual communication easier.
What follows is a long-form write up of the key topics we discussed in our interview.
You may also like: Building on Ethereum: Part 3 – Set Up and Test.
One of the new frontiers of software development is blockchain, a way to create ledgers that are decentralized and distributed. Santiago never expected to be leading teams of engineers working with this new and exciting technology. It happened by chance, as he slowly took on more planning and coaching of his fellow developers.
Now, he manages a group of twenty engineers distributed around the world who work on tools that help others create practical blockchain applications. Santiago shared what he has learned about building and leading distributed teams in a highly dynamic area of software development.
Developing for Blockchain
Santiago began by admitting that blockchain has received a lot of bad publicity, some of which it has earned. However, he points out that “the main allure of blockchain is that it is an entirely new paradigm for building things.” He has found the area challenging because it is so new, how people develop applications is unique, and the tools underpinning the applications change constantly.
“Blockchain requires a change of mind on how you code and how you build things.”
Even with these challenges, Santiago feels that this is a once-in-a-lifetime chance to be part of something new and exciting that will bring change in the world. He believes it enables people to have control of their own contracts and financial transactions. He observed that using blockchain for smart contracts is a good example of the positive applications that are built on the technology.
Hiring for Blockchain
The unique nature of developing for blockchain makes hiring a challenge. Santiago started his career writing web applications in Java; things were established and stable. With blockchain, and especially the dominant platform for blockchain, Ethereum, things are moving fast. Methods, tools, and algorithms are changing and evolving constantly. That is why OpenZeppelin has hired a wide variety of people from different backgrounds. They “look for passionate people who want to learn, who are motivated by the challenge. And it is incredible how fast they catch up.”
Santiago shared that OpenZeppelin starts its hiring process with a screening interview followed by a discussion with a team lead. Then, they do something different; they have the prospect work on a paid test project with an engineer from OpenZeppelin serving as a coach.
“The idea is that the applicant goes through the design and development of this project all the time communicating with his coach. The coach can help with technical questions and help with prioritizing, and most important, evaluating the communication.”
They want to “match what interests and what motivates you, with what you need. And it will be good for you to understand what it is like to work with these people, and for us to understand how you work, how you build, how you prioritize, how you deal with frustration.” This helps the OpenZeppelin team find the right people who can work as an integral part of the crew.
Onboarding for Blockchain
When asked about how long it takes to onboard a developer, Santiago said “I joined the company about two and a half years ago, and I’m still onboarding. Definitely. Honestly, I don’t think you can ever finish the onboarding process here.” To get people up to speed fast, he starts by pointing his new team members to online resources and gets them involved in projects as soon as possible.
“We ask them to do something much more hands-on. Go pretend you are user, get your hands dirty as much as you need and through practice, you eventually learn.”
Besides writing tools for blockchain developers, OpenZeppelin offers security auditing services. New employees in that area focus on theory and security as well as learning blockchain programming. Both types of employees are partnered with experienced engineers who double-check everything they do.
Santiago has personally tried to fill the gap by writing his own book on the topic, Ethereum for Web Developers: Learn to Build Web Applications on top of the Ethereum Blockchain.
Training for Security
Security came up throughout the interview because a fundamental function of blockchain applications is to provide a secure and decentralized way to record transactions. That is why Santiago stresses that creating a culture of security with a rigorous review process is critical.
“The biggest training comes from practice and very thorough reviews on everything we build.”
In order to create secure applications or to effectively audit other people’s applications, he feels “the first thing is operational security. You have to keep yourself safe before you keep safe what you build. That is the first thing for getting people on the correct mindset.”
Building an Efficient Distributed Team
Santiago also spent some time discussing what he considers his biggest challenge as a leader; managing a worldwide development team. Although OpenZeppelin has an office in Buenos Aires, Argentina, about half of its engineers live in different countries around the world. They started solving this problem by hiring people with experience working remotely. The skills and methods those employees brought with them have helped OpenZeppelin create an effective distributed team.
“The key thing is hiring remote people that have experience being remote.”
One of those solutions is documenting everything in writing. Being spread out, Santiago feels, makes it impossible for everyone to hear what is being discussed. So they write things down; everyone can review it when they are working in their time zone. Another approach OpenZeppelin takes is to have weekly syncing meetings over the internet. Everyone shares what they are working on and what is going on in their personal lives.
They also stress face-to-face meetings. When a new engineer joins the team, they work for two to three weeks in the Buenos Aires office. And then twice a year, the team gets together somewhere in the world to meet in person. Santiago has found that meeting in the real world “helps on building on this sense of belonging and building personal relationships beyond the camera. After you have met a person face-to-face, then virtual communication gets much, much easier.”
Creating Software for Developers
The interview finished with a discussion on creating applications for developers. Being a small organization, they do not have specific product managers. Instead, they work as a team to improve the software they create. Santiago described the planning as a “collaborative process where the team makes a plan and the CEO and Head of Research decide.”
“By auditing a project, we get a unique view into what the people who built it went through.”
Because OpenZeppelin also does security audits on end-use products that their customers create, he shared that they have the advantage of seeing first-hand how people are deploying their tools. The auditors report back to the dev team on what’s working, what’s not working, and what customers need to build for themselves. They can add the missing capabilities and fix issues that are uncovered in the field.
For more stories like this, check out The DevTeam Project or listen to our podcast using one of the platforms below.