As engineers we pride ourselves on the amount of knowledge we have and the ability that the knowledge can be applied to solve problems. In our day to day work we spend much of our time using existing knowledge to solve known business problems, that is how engineers contribute value to the company. During this time it is easy to fall into the lull of doing solvable work and feel great as departments outside of engineering view this as an effective and efficient organization. Yet the engineer in us yearns for the hard unsolved problems and the chance to learn. Learning means that we will increase our pool of knowlege and become more valuable in the long term.

Find opportunities within and outside of your day to day work to expand your knowledge and solve hard problems, this may or may not be at your job. This could mean at another job. Or a side project. Or something completely unrelated that has no aim and direction whatsoever. The context doesn't matter. What matters is that there is an open door for you to expand and learn, because as an engineer — that is all that matters. Don't solve the same problems over and over, your time is valuable and should be spent learning as much as possible. Eric Raymond sums this up in "How To Become a Hacker" rather succinctly:

  1. The world is full of fascinating problems waiting to be solved.
  2. No problem should ever have to be solved twice.
  3. Boredom and drudgery are evil.

It is then the responsibility of the engineer to seek out the opportunities where they can optimize for learning.