Why We Do Code Reviews — And You Should, Too!

A couple of weeks ago at Unite Boston, I had the pleasure of giving a talk entitled How We Make Unity: A Look into How Development in Unity’s R&D Organization Works.  If you missed it and would like to view the slides, they’re available online over here. Unity’s development mainline is managed with a gatekeeper workflow.  A gatekeeper workflow means that developers do not push their own changes to the development mainline,

Engineering: It’s Actually About Problems, Not Solutions

OK, let me clarify.  Engineering is not 100% about problems.  It’s more like the first 70% or so.  The last 30% is about the solution. In all of the engineering teams I’ve worked in, I’m convinced that one of the biggest productivity killers is lost time due to engineers not fully understanding the problem they are trying to solve.  Conflicting advice, not understanding all of the constraints, unclear expectations leading

Musings on Gender Issues and Tech Conferences

One of my personal “causes” is trying to promote the technology world as a gender-inclusive space.  If you read about such matters on the internet these days, there are some stories that talk about how we’re getting more women in technology.  I don’t know whether that’s true or not, but one of my concerns is that even if we are getting more women working in the tech industry, I’m not convinced we

Porting the Unity Editor to Linux: Stuff I Wish We’d Done Then

At Unite Europe this year, we at Unity released our public roadmap.  And while it’s super cool to be able to share all of the amazing stuff we’re doing at Unity, one thing that is close to my heart is the Linux Editor. The story behind Linux port of the Unity Editor is a lot like the story behind Linux runtime support, which was released in Unity 4.0.  It’s basically a “Labor of

Mercurial at Unity

DISCLAIMER: This blog post is now several years old and it should not be used as a source of current advice.  The landscape of version control, and DVCS in particular, has changed a lot in recent years. Not too long ago, @CorporateShark asked for a blog post about Unity’s experience using Mercurial for version control.  This is that blog post. NOTE: Throughout this post, I use several terms that assume knowledge of DVCS in

How Unity’s Build Team Developed a Custom Continuous Integration Solution

Most people reading this know that I lead the Build & Release Engineering team at Unity Technologies.  On Unity’s company blog, I’ve posted about our in-house build automation / CI solution, Katana.  I wanted to write more about this project, and go over a few key elements as to why I believe it has turned into a successful project for Unity. First of all, if you haven’t read the blog post I wrote

Build Engineering: What It Is and Why You Need It

I recently traveled to Phoenix, Arizona to give a talk about Build Engineering.  The talk was titled, “Build & Infrastructure Engineering: What It Is and Why You Need It”.  It covers the history of the Build & Release Engineering area at Unity (from 2014 to the current state in 2014), and then follows with an overview and introduction to the “5 Pillars of Build Engineering” and what they mean in