I love being a consultant. I use the term consultant to mean both freelancers and full time employees at consulting companies. To be in this role you need to have an expertise, but once you have that expertise you are presented with an opportunity that many non-consultants don't see in their jobs: the opportunity to hone your craft and get experience from multiple repeat implementations.
Seeing the same problem set over and over gives you the chance to hone the solution over repeated implementations. I have never gotten that type of repeatability when working in non-professional services roles. To be fair though, I haven't worked in many roles that aren't professional services roles.
I have worked on over a dozen different projects this year. The underlying technologies overlap on those but, they include half a dozen PHP (Drupal/Laravel) projects and around a dozen custom API integrations with commercial software suites. Software development is all about pattern recognition, and pattern recognition is all about experiences. As a consultant I get those experiences in rapid succession building my repertoire much faster than software engineers who work on the same long-term project for years on end.
On one of my projects, in-house developers are doing the bulk of the work. They have been working on one implementation for over a year. In that same time I have done half a dozen implementations of the same software. The vision of possibilities and understanding of "gotchas" with the software is limited by in-house developer's single experience while mine has many implementations worth of experience backing it.
Getting to this point in a career can seem like a catch-22. If you are an expert you get more projects continuing your specialization and making you even more of an expert. But how do you get to that point? For that there is no shortcut and this may be where being a consultant at a professional services firm is better than being a freelancer. As a freelancer you can't just pick up a new technology and call yourself an expert. At a professional services firm you can get training and mentoring from other consultants and get minor roles in projects that build your knowledge and credibility. In my case, the technologies I'm considered an expert on are technologies I learned through a combination of employer provided training and hands-on experience working as a full-time-employee.
I haven't seen many write-ups over the years on the benefits of being a technology consultant so I wanted to put out my perspective. To some people the idea of doing the same thing over and over is a downside. I don't know many good accountants that only do one tax return a year, or lawyers who only draw up one contract, but there are many technologist out there who only work on one project. Technology consulting gives you the opportunity to hone your skills over many implementations in a way that in-house technology gigs often don't.
I have a newsletter...
Many of my posts end up in Digital Ambit's monthly newsletter. It is the best way to keep up with what Dagny and I are doing in the business world. I appreciate your support and will only send you things we think are valuable.