We had a wonderful time talking to Matt about Sema, a much-awaited online code review and developer portfolio tool, and how Velotio helped in building it. He also talks about the basics of writing more meaningful code reviews and his team’s experience of working with Velotio.
Spradha: Talk us through your entrepreneurial journey, and what made you build Sema?
Matt: I learned to code from my parents, who were both programmers, and then worked on the organizational side of technology. I decided to start Sema because of the challenges I saw with lower code quality and companies not managing the engineers' careers the right way. And so, I wanted to build a company to help solve that.
At Sema, we are a 50-person team with engineers from all over the globe. Being a global team is one of my favorite things at Sema because I get to learn so much from people with so many different backgrounds. We have been around since 2017.
We are building products to help improve code quality and to help engineers improve their careers and their knowledge. We think that code is a craft. It's not a competition. And so, to build tools for engineers to improve the code and skills must begin with treating code as a craft.
Spradha: What advice do you have for developers when it comes to code reviews?
Matt: Code reviews are a great way to improve the quality of code and help developers improve their skills. Anyone can benefit from doing code reviews, as well as, of course, receiving code reviews. Even junior developers reviewing the code of seniors can provide meaningful feedback. They can sometimes teach the seniors while having meaningful learning moments as a reviewer themselves.
And so, code reviews are incredibly important. There are six tips I would share.
- Treat code reviews as part of coding and prioritize it
It might be obvious, but developers and the engineering team, and the entire company should treat code reviews as part of coding, not as something to do when devs have time. The reason is that an incomplete code review is a blocker for another engineer. So, the faster we can get high-quality code reviews, the faster other engineers can progress.
- Always remember - it’s a human being on the other end of the review
Code reviews should be clear, concise, and communicated the right way. It’s also important to deliver the message with empathy. You can always consider reading your code review out loud and asking yourself, “Is this something I would want to be said to me?” If not, change the tone or content.
- Give clear recommendations and suggestions
Never tell someone that the code needs to be fixed without giving suggestions or recommendations on what to fix or how to fix it.
- Always assume good intent
Code may not be written how you would write it. Let’s say that more clearly: code is rarely written the same way by two different people. After all, code is a craft, not a task on an assembly line. Tap into a sense of curiosity and appreciation while reviewing – curiosity to understand what the reviewer had in mind and gratitude for what the coder did or tried to do.
- Clarify the action and the level of importance
If you are making an optional suggestion, for example, a “nit” that isn't necessary before the code is approved for production, say so clearly.
- Don't forget that code feedback – and all feedback – includes praise.
It goes without saying that a benefit of doing code reviews is to make the code better and fix issues. But that's only half of it. On the flip side, code reviews present an excellent opportunity to appreciate your colleagues' work. If someone has written particularly elegant or maintainable code or has made a great decision about using a library, let them know!
It's always the right time to share positive feedback.
Spradha: How has Velotio helped you build the code review tool at Sema?
Matt: We've been working with Velotio for over 18 months. We have several amazing colleagues from Velotio, including software developers, DevOps engineers, and product managers.
Our Velotio colleagues have been instrumental in building our new product, a free code review assistant and developer portfolio tool. It includes a Chrome extension that makes code reviews more clear, more robust, and reusable. The information is available in dashboards for further future exploration too.
Developers can now create portfolios of their work that goes far way beyond a traditional developer portfolio. It is based on what other reviewers have said about your code and what you have said as a reviewer on other people's code. It allows you to really tell a clear story about what you have worked on and how you have grown.
Spradha: How has your experience been working with Velotio?
Matt: We have had an extraordinary experience working with the Velotio team at Sema. We consider our colleagues from Velotio as core team members and leaders of our organization. I have been so impressed with the quality, the knowledge, the energy, and the commitment that Velotio colleagues have shown. And we would not have been able to achieve as much as we have without their contribution.
I can think of three crucial moments in particular when talking about the impact our Velotio colleagues have made. First, one of their engineers played a major role in designing and building the Chrome extension that we use.
Secondly, a DevOps engineer from Velotio has radically improved the setup, reliability, and ease of use of our DevOps systems.
And third, a product manager from Velotio has been an extraordinary project leader for a critical feature of the Sema tool, a library of over 20,000 best practices that coders can insert into code reviews, which saves time and helps make the code reviews more robust.
We literally would not be where we are if it was not for the great work of our colleagues from Velotio.
Spradha: How can people learn more about Sema?
Matt: You can visit our website at www.semasoftware.com. And for those interested in using our tool to help with code reviews, whether it's a commercial project or an open-source project, you can sign up for free.