There is a game that is played when searching for a new job. The applicant exaggerates their skills and experience in response to a job posting by a company looking for a "passionate ninja", with 40 years of experience in every major technology. I hate this game.
This post is a complete and honest look at who I am as a developer, something I find hard to express in a cover letter or resume. I have strengths and I have weaknesses, and I'm happy to tell you about them both. What I hope to convey is that I'm a solid developer, with an interest in the craft of writing code well, who shows up and gives an honest day's effort. And yet I still have so much to learn.
First and foremost, I’m really interested in getting better as a developer every day. I want to work with developers who are better than I am. Developers who take their craft seriously and continually improve upon their skills, and the skills of the team as a whole.
I want to work at a place where ideas are taught and discussed. As a team, I'd like to talk about things like how following the Law of Demeter improves a piece of code, or how the Null Object Pattern applies in a certain situation. I'd love to talk about the pros and cons of following Sandi Metz' rules, or how following "tell don't ask" can be at odds with the Single Responsibility Principle, and in which case each is appropriate.
I'd like to work where pairing and TDD are standard practices, and open-source is valued.
I want to work at a company or organization that knows how to have fun.
I'm looking for room to grow. I don't want to be a lifelong, mid-level developer (who does?). I'd like to someday lead a team and mentor younger developers.
My biggest strength is that I really enjoy working on the web. I think the web is the most exciting industry in history, and we're just getting started. I feel fortunate that I'm able to work in such a challenging and demanding field, and I can't wait to see where it goes over the course of my career.
I think the strongest developers, and those I most enjoy working with, are those that work hard, know how to use the best tool for the job, are always trying to get better, and have accountability when they mess-up. I think I have those qualifications.
I think I write code well. Like all developers, I've written a ton of bad code over the years, and there are many developers that write cleaner, better code. But more and more I'm happy and proud of the code I write.
I work well on a team. I love teaching, and find trying to convey a concept to other teammates to be very rewarding. I enjoy code reviews and discussions. I'm open to suggestions and don't take criticism personally. I often have good insight into how to make a piece of code better. I expect the same of my teammates.
I'm comfortable in social situations. We all know developers that are socially awkward or immature to the point where they can't talk to customers, clients, executives in the company, or even teammates. I'm not that guy, I can interact as an adult in a professional manner.
I only have a few small Rails projects under my belt. I don't have experience with large Rails sites, along with all of the technical intricacies involved in developing and maintaining large sites.
I love TDD and have fully bought-in to the discipline. I work on it continually, but I still don't think I'm very good at it.
My open-source contributions are lacking. I've made a few very minor patches and contributions recently, and thrown some play code up on GitHub, but if you're looking for someone who is a core contributor to a major open-source project, that isn't me. Most of my free development time has been directed towards my freelance work.
My Unix and code editor power skills are in need of improvement. I've spent most of my working career in a Windows environment with full IDEs. I use a Mac and Sublime Text for my freelance work, but bouncing back and forth limits how strong I can be. I know I have room to improve.
I'm interested in companies along the lines of ...
thoughtbot is my dream company. They are known as a world-class Rails consultancy, and creator of several very popular open-source gems like Factory Girl and Bourbon. I love that they are opinionated on how to write software well, from the design, to the development process, to the language and framework, to the editor. And though they have an opinion, they're always willing to make changes for the better. I love that they sponsor my local Denver Ruby meet-up. I love that they have applied their knowledge to create multiple businesses, including their apprenticeship program and online learning resources. I love that their developers share knowledge through blogging, conferences, and podcasts. It seems like a fantastic place to work.
Who wouldn't want to work for 37Signals? They are world-class designers and developers, working on a universally loved product in Basecamp, the origin of Rails. Jason Fried is my favorite person to read and listen to in his speaking engagements. His points are always very clear and well thought-out. They are a professional organization, strongly opinionated, with a point of view, and I admire them.
I've been a Code School subscriber for as long as I've been working with Rails. I love their courses, and am impressed with the unique design and branding of each separate course. I'm also impressed with their course delivery platform; it's as good as I've seen. Code School and their associated consultancy Envy Labs are made-up of top-notch developers, making great products, and appear to have a blast doing it. It's very much the environment that I'm looking for.
First, this isn't a knock on my current employer, Colorado PERA. I owe a lot to PERA for teaching me what it means to be a professional web developer.
I've learned what it means to work in a team environment. I think more about the code I write, making sure it is clear and maintainable for myself and others on the team. On a team, simple things matter even more - following conventions, making sure that my code logs meaningful information, and handles exceptions properly to provide insight when things go wrong.
PERA was my first experience with real build processes, source control, automated testing, and a continuous integration server to pull it all together.
On a scale of 1 to 10, PERA is a 7. I work with good people, have a considerable amount of autonomy, work on a variety of projects, and have unbeatable benefits. There are much worse places. I am thankful for what I have, and would be reasonably happy staying where I'm at.
However, I want to see what I can do. I want to work on more interesting problems, learn from the very best developers, and have more of a chance to grow.
In addition, I'm a fan of Rails. Curiosity brought me to Ruby and Rails in December of 2011 and it was like a breath of fresh air. I love the Rails framework, it makes me a better developer. I love the energy and community around the framework, and that's where I want to be on a full-time basis.
I wrote an entire post detailing my full career path up to this point. I have a varied past, full of different platforms, languages, and skills. I surprised myself when writing this post as I realize that I have a bit more experience that I give myself credit for. It was fun to go back and reminisce about my career path to this point.
I hope I've expressed an interest in developing for the web. However, my life is more than writing code. I enjoy traveling with my wife, we've been fortunate to travel to some amazing places around the globe. I'm a Colorado native through and through. I spend as much time in the mountains as life allows, skiing, climbing, and biking. When not in the mountains, I enjoy soccer, tennis, and working in my garden.
Here I am - a solid developer that takes pride in my work, with a wide variety of valuable experience, eager to learn and get better. All I need is the right fit. If you think you have that fit, I'd love to hear from you.