I worked with Matt for about 18 months at Passageways, starting in 2007. I was immediately intimidated. I had worked on web projects before, I had even developed for portals before, but I had also just taken a year off from software to be a fencing coach. I was rusty, and here's a guy who was in my same class at Purdue, and he's teaching me things about software engineering so fast that I feel like I'm drinking from a fire hose.
Having been through a number of jobs in and after college I thought I knew what I was doing. I knew how to use inheritance to cut down on code duplication, I could tie into a database with the best of them, I was at the top of my game, especially for my age - or so I thought. I learned the ropes of the product from my team mate, Dustin. After our project was finished I had a lot of overlap with Matt. I'd check in my code, he'd inevitably have to add something to the same class, and so I got my code reviewed all the time those first few weeks. Things that I knew about, but was lazy about mostly - using the finally statement to dispose of my IDisposable objects, using StringBuilder when I was appending several strings, and so on. And there was polymorphism opportunities that never occurred to me.
I learned to love the white board as Matt had. It's a great medium for team-oriented design, so everyone can see what's being developed and respond to it, instead just assuming the note taker got it all. We both liked it because the design wasn't the responsibility of just one person. Anyone with a good idea on the team for the task at hand could make it better. Instead of an architect, we had a team, who pulled on the various experiences each one had.
At the company, Matt was a Development Lead, a role that wasn't very well defined as to what it was. it wasn't a management of people position. It wasn't heavy in product vision based on customer input. It was often times, providing a product vision based on technology - helping to meet the needs of both customers (as defined by the product owner) and the needs of the developers, leveraging the technology available to us. Often times his biggest obstacle was getting the new technologies set up for all 150+ customers.
After the initial growth, and tightening of my code style, Matt and I struck a good balance. We both had areas we liked to focus on, and for the most part, they didn't interfere with the other's aspirations. When we did cross over, we'd get frustrated just like any other relationship, but we had a strong enough social and professional foundation to always talk it out. Now that I'm 2,000 miles away from Matt, I expect this blog to be an extension of that same dynamic. He has his focus, I have mine, and we'll step over and disagree occasionally, but I expect that's the time when we (both Matt and I, as well as you, the reader) will grow the most.