Every day is a different challenge. While there are some stretches of uninterrupted coding, more often there are coworkers to unblock, careers that need advising and processes that need tweaking. We have grown, and continue to grow quickly, which brings with it the need for action and the thrill of making an impact.
It doesn’t seem to matter what role I am in, I am always looking for ways to help wherever I can. In my 5 months of being a Technical Lead at Greenhouse, I already feel as though I’ve made a lasting impact. When I joined, we had split the engineers into 3 teams, in name only. Now each team has a separate backlog and they are free to collaborate on stories however they like. We have shifted the focus away from putting all the pressure on a single individual and instead encourage the team to work together to get the stories completed. In doing this we hope to help with another problem from growing quickly: knowledge silos.
Also, as we have moved to Team backlogs, we have made Product’s job a little bit simpler. Now if they want something done they put it on one of the 3 backlogs, whereas before they had to coordinate with the Tech Leads to figure out which developer with the right skillset would be free at the right time. This in turn has freed up the meetings that the Engineering Managers have with Product to address larger issues. We have started filling this time with Retrospectives at the management level to raise and take action on higher level issues.
Now that engineers feel a bit more freed up to help others on their team, they have started to pair program more. This has helped assimilate new engineers more quickly into the team and helped to disseminate previously caged knowledge.
As a Tech Lead my responsibility is not just process, it is also technology. I’ve already had plenty of opportunities to work on stability and performance of the application. I’ve spent much time analyzing New Relic and adding code to enhance the usefulness of our logs. I’ve made a few dozen graphs in SumoLogic to track our database performance and occurrences of long lived locks. Also by tracking Unicorn logs, I found a few places where deadlocks, due to running in non-threadsafe mode, were causing requests to die.
Pair-programming with the other members of my team on features and bug-fixes is my favorite part of the job. As a developer, you are always learning more about your codebase, your domain, your language, your editor, etc. Working directly with my teammates on code is the best way I have found to learn from them and their experiences. As Tech Lead it is a great opportunity to pass my knowledge and experience on to them as well and to give feedback about areas for improvement.
Finally, having management responsibilities gives me an opportunity to guide my teammates on their careers. Everybody is at a different stage in their journey and has different goals and aspirations. I get to offer suggestions for how they can get to the next level and remove obstacles that are blocking them from growing. A big part of this is making sure that there is work coming into the team that aligns with everyone’s needs. I assisted in creating a Career Ladder for our engineers so they have a map of what we think it takes to move forward in their career. We’ve tried to make this a living document and to concentrate on the skills that our engineers need to do their jobs well, here at Greenhouse and when they become alumni.
Balancing my time every day with the challenges I addressed above is difficult, but I lean on the other great members of my team for advice and guidance. Greenhouse’s co-founders also inspire and motivate. I shall leave you with their most repeated wisdom:
Delivering software is our competitive advantage
We want everybody to look back when they are Alumni and know they did some of the best work of their career while at Greenhouse
Originally published at tech.greenhouse.io on March 24, 2016.