When I moved to Boulder, Colorado, just over two years ago, I was hired as a “Senior Rails Developer” for a company downtown. My first week, one of the other senior engineers asked me, “So, you’re the Rails guru, eh?” I nervously replied, “Uh, Sure.”

I’d been developing with Rails maybe two years before that, not in any real professional capacity, but mostly in personal projects or small freelance jobs, where I’d found the clientele myself through networking circles. As someone who’d been a mostly self-taught, “hobbyist” engineer and had only real professional experience doing hacky PHP development for short lived agency projects, I had no idea what I didn’t know and was, in large part, amazed anyone would consider me for a “senior” role, let alone pay to move me and my partner across the country for such a job. The only way I (any of of us?) got to where I am today is by having good mentors who were patient and kind with me, as I gained experience.

As I found out and have learned since, senior engineers are expected to not only help lead the direction of code in a company but also bring more junior developers up to speed on things as varied as framework best practices and code architecture — even programming fundamentals, at times. Being comfortable feeling vulnerable around other engineers was tough for me at first. I remember being embarrassed earlier in my career when “junior” engineers would point out to me basic things that I didn’t know about the language or framework I was working in. Fortunately, I’ve had the opportunity to work with many, many very smart people during that time and have learned much from each of them on the way. Now, I’m exhilarated by the opportunity to mentor other engineers.

In this article, I wanted to talk about some of the skill sets I’ve found useful when acting as an engineering leader and mentor.