Working with the same group of people for 20 years is probably as bad for your creativity as working on the same project for the same company as long. Your skills stagnate, your ideas become inbred, your work becomes outdated, and your growth becomes limited by the Clique that helped you earlier in your career.
The nature of our jobs as software engineers is such that we must deal with externalities. Hardware will crash. Services will auto-scale up and down. Garbage collection will occur. Humans will make mistakes and use our software in ways we did not anticipate. Someone will write configuration instructions for you on how to setup your dev environment, and they might not apply perfectly to your setup.
We shouldn’t be recruiting developers based on some single technology they know but on what they can learn and apply in the future. A generalist developer that can pick the right tool for a given taskand articulate why they made such a decision is a lot more valuable than a specialist.
Employers do search candidates on social media — and so should candidates. No one wants to work for a company that trashes its’ former employees and candidates. No one wants to hire a candidate that trashes their former employer.
I am the wrong Chief Architect for the Good Idea Fairy to prey upon. You see, I am a very practical and pragmatic Chief Architect. I know what I know, and I know what I don’t know. I solve problems by writing code — I have the background and the training to do that. I can see through the bullshit.
Developers should feel empowered to configure their environment and development tools to their liking and contribute to the shared team standard. They should know the libraries they picked and why they picked them. They should be able to articulate why they like one programming language over another. As part of their job, each developer should be able to state clearly and in actionable terms how they’d like to work.
An elephant graveyard, when applied to a corporate setting, is a team, company, or some other set of conditions in which otherwise bright engineers are forced into positions or assignments where there is no hope for future career growth. In this post, I hope to define the conditions that must be present for an elephant graveyard to form, how to detect them, and how to navigate them.
By sending me unsolicited emails and by cold calling me using robotic software you are indicating to me that you feel my time is not valuable. You are saying that interrupting me all day with unsolicited emails and cold calls costs you nothing but a small chance of you winning a gig is worth it to you.
For many years I couldn’t understand what software architects do. Early in my career, I thought they were useless. As a young developer, I felt that I could do the job of a business analyst, software architect, and developer all at the same time. Now, seventeen years into my post-college career I am one myself. I am trying to learn what it means to be a good software architect, and I hope to be one myself.
November of 2016 marked five years of my work at Liquid Analytics. On New Year’s Eve in 2011 I wrote: Breezing through your day at work is a recipe for stagnation. Any spare brain cycles you have at work should be spent on thinking about how to improve yourself and your project. The biggest lesson … Continue reading Here is to a great 2017!