Now for the sweeter stuff: Truffle team interview

Now that we have covered Truffle’s functionality, let’s get personal and have some fun with the Truffle team. Shout-out to g. nick d'andrea, Engineering Lead, for providing these responses.

How is the Truffle team organized? How are decisions made?

Truffle is a bit more hierarchical than other parts of ConsenSys. Everyone works on multiple projects simultaneously, there is a leadership team (although everyone serves on it), the team has goals and we work within constraints. Something that I found particularly interesting is a management decision list that the Truffle team uses to determine who has the authority to make decisions. There are 5 key pillars:

Decisions you are empowered to make Decisions you are empowered to make as a team Decisions you are empowered to make, but must inform me Decisions you are empowered to make if I approve Decisions only I can make

The team strives to create a culture in which all decisions fall into the first and second pillar.

ConsenSys encourages flat meritocracy, but since it is also decentralized, spokes are free to make their own choices. Why did you decide to structure yourselves more hierarchically? What other organizational decisions have you made that may differ from the broader mesh?

Truffle seeks to craft great software development tools as a sustainable business. Although the mesh-at-large has the opportunity and the leverage to explore alternative organizational structures, we feel that pursuing this within Truffle would be an experiment, as it lies outside our area of expertise and risks being orthogonal to our goals. That being said, ConsenSys’ holocracy along with our own personal experiences with autonomy, transparency, and flat organizations provide powerful sources of inspiration in helping Truffle continue to refine its conception of organization and leadership.

Can you walk me through a typical day?

Since Truffle is 100% remote, there probably is no good description for a “typical day.” I (Nick) usually wake up around 8 or 9, spend an hour or so getting settled in, and then proceed to spend my mornings catching up on email/GitHub/etc., and getting a sense for what’s ahead. At 1PM, I meet with Chris (the other engineer working on Truffle) for our standup. We discuss issues and work going on, and then proceed to spend the afternoon as heads-down as possible. I try to finish up my work day by 7 or 8pm, with a long lunch somewhere midday.

How do you build rapport and trust on your team?

By encouraging everyone to have a voice, by keeping a “beginner’s mind,” by asking questions, and by recognizing that the craft of engineering software often includes a healthy amount of emotional commitment to our work.

How do you decide to roll out new product features?

Mostly based on what ideas sound exciting and attainable. We have a roadmap with a substantial backlog, so we try to schedule what’s next based on what will help the community as well as make future tasks easier.

Are there any exciting new releases or features you can let the community know about?

Truffle v5 is coming soon, and we’re quite excited about what’s in store:

Bring your own compiler! Specify whatever Solidity version you want, and Truffle will automatically download it. Or install Solidity yourself natively for something like a ~4x speed improvement.

We’re overhauling the migrations system to make it more reliable and more transparent. Truffle will detect problems with your migrations ahead of time and provide clear output that helps users see exactly what’s going on.

Upgrade to Web3js 1.0

Improvements to the Truffle console (await, anyone?)

and more!

Where do you see Truffle in the next 5 years? What role will it play in the Ethereum ecosystem? What about the blockchain ecosystem?

It’s dangerous to make predictions like that. In 5 years, Truffle will be a mature suite of tools that provide a one-stop-chocolate-shop for smart contract and decentralized application development. Our products already are built on top of each other, and we expect that this relationship will only get stronger — e.g., Ganache will know about your Truffle projects and provide a GUI for seeing deployed instances, etc. Since the community has been so incredible at building all manners of tools, we expect Truffle to extend this integration even further and allow users to mix-and-match their favorite utilities in an easy-to-use way.

How can the community get involved?

Continue raising issues in our GitHub, helping each other with support in our Gitter channel, and of course, contributing great PRs.

Are you hiring? If yes, for which roles?

Truffle is hiring for all our products (Truffle, Ganache, Drizzle), and more! Expect to see job postings soon, as we hope to grow rapidly to keep up with the needs of the community.