Cultivating Lifelong Learning for Career Growth

Recently, a close friend lost their job unexpectedly, and it got me thinking about the uncertainty in today’s job market. Over the years, I’ve seen friends and family struggle to find meaningful work. Now, many are just trying to find any work at all. I feel grateful for the stability of my current role, but I’m always aware that it may not last forever. What advice can I offer to those searching for work? What steps am I taking to prepare for the unexpected?

1. Make Learning a Lifelong Habit

As kids, we counted the days until school was over—unless you were like me and actually enjoyed it. But after college, things become less structured. The one thing school didn’t teach me was how to teach myself. It took me years to develop this skill. Books like “Ultralearning,” “Atomic Habits,” and “Deep Work” have been particularly inspiring for me this year. These resources have helped me discover how to learn effectively on my own terms.

2. Organize Your Life for Growth

Organizing your life doesn’t have to mean rigid planning. It’s about understanding your responsibilities and finding time to focus on personal growth. Tools like the HB90 program by Sarra Cannon at Heartbreathings, combined with books like “Slow Productivity,” have helped me re-evaluate my priorities and goals. I find that even when I don’t stick to my plans, I’m still moving toward my objectives. Periodically revisiting my goals helps me stay on track.

3. Cultivate Adaptability

Being too rigid can hinder progress. Life will throw obstacles your way, and the key to success is navigating around them. Earlier this year, I had to adapt to new responsibilities—some by choice, others not. These changes required adjusting my schedule, but I’ve managed to meet my goals while still growing in new ways. Being adaptable is essential for overcoming unexpected challenges. Bob Galen at Agile Moose is a big proponent of journaling to help understand the complexities of life and career. Keeping a journal can help you reflect on your experiences, track changes, and adapt to new circumstances.

4. Prioritize Your Health

Everyone knows the importance of living a healthy life, but it’s often hard to prioritize. Investing in your health is crucial, as neglecting it can lead to irreversible damage. Books like “Outlive” and “Atomic Habits,” along with health & fitness influencers on YouTube, have been my go-to resources for staying inspired and learning more about wellness. While I still have a long way to go, I’ve made significant improvements in recent months, and the benefits are subtle but undeniable.

Weaving Life and Career Together

Notice that none of these points directly address careers. That’s intentional. Integrating your life and goals with your career is crucial. When I stopped living just to make my bosses happy, I began to grow more than ever. Everything I focus on outside my 9-5 strengthens my career and makes me more resilient.

The Point of It All

The core message here is to focus on building yourself. Develop a toolkit of skills and surround yourself with people who can offer guidance and support. Don’t shy away from challenges; instead, be open to change and growth. By doing so, you’ll not only navigate uncertainty but thrive in it.

What kind of Software Engineer am I?

The four wings of a software engineer are:

  1. Product / Business
  2. Design
  3. People
  4. Technical
Four Wings of a Software Engineer ~ blog.robertsimoes.org

Recently a coworker shared this blog post in our departmental “Blogroll” slack channel. It struck a cord with me and helped me to understand some of my struggles with imposter syndrome over the years.

In the article he defines 4 different types of Software Engineers. As I read his descriptions I realized that I have spent my career feeling inferior to other Engineers because I am weakest as a “Technical” engineer. I always knew that my skills lay in other places but always had a hard time defining them, and felt like a failure because I didn’t have the “Technical” skills my coworkers did.

As a fulltime Software Engineer I often struggled with learning new technologies quickly, understanding how all the pieces fit together, determining the best engineering solution for the problem in front of me, and knowing the proper terms for the tasks I undertook. While my code was always solid, I would go into interviews and say things like “I don’t know the correct term, but here is how I solved the problem.” Thankfully I got hired anyway!

After reading his article, I realize that I fall in the “Product/Business” and “People” categories. It explains why my shift to be an Agile Lead to aid other Engineers in building better software feels so right. A few years back I rose up to a Team Lead position and quickly my team became the highest performing in our department, not because I was strong technically, but because I knew who was and cleared their slate so that they could solve our problems. Eventually I was moved into the position of “Agile Delivery Lead” so that I could take what I was doing that was working and apply it across our department. I’m still in that role today and loving it!

Imposter Syndrome is a real thing, and I have spent a good part of my career feeling that way. Finally after 20+ years I have my feet under me and feel like I am contributing to our Engineering department in a valuable way. Thanks Robert for helping me understand.

Agile Delivery Lead

Last November a change was made to the composition of our development teams.  I had been working as a team lead since the previous March and things were going really well.  But a gap in the department was identified and I was asked to change roles to fill it.   My new title became “Software Engineer – Agile Delivery Lead”, yes it is a mouthful but it encompasses what I do.   Almost 6 months later I have settled into my new role and we have been slowly defining what that means for our teams, department, org, and myself.   I’m still working on what my duties entail.   For right now I have identified a list of responsibilities that are on my plate and we prioritized them based on how much I can help by performing each role.  As with anything, it changes constantly.

#1 Team Support:  Keeping the teams moving and the work steadily flowing onto our production systems is the first priority that I have on my plate.  I currently work directly with 2 development teams and keep my ears open for what 3 others are working on.  This includes activities such as Daily Standups, Weekly retrospectives, quarterly retrospectives, team velocity reporting, and managing the “Coming Soon” part of the team backlogs.

#2 Product Manager Support:  Working with the product managers to help to research potential improvements to the systems and start scoping out the work.   Research, reporting, epic/ticket creation, determining order of the work to get done, backup for the team when the PMs are out, and reviewing the work completed.

#3 Senior Software Engineer: Utiliziing my skills as a Sr. SE in the department to help move the platform forward.   Estimating, documentation, cross-training, code reviews, backup for Engineering Leads, architecture, and special projects.

#4 Department support:  Helping upper management with keeping a pulse on the various teams and making sure things are flowing smoothly.  Team velocity reporting, department velocity reporting, process research & implementation, and help to manage engineering needs backlogs.

#5 Personal Projects:  Continue to grow my own skills and knowledge by doing projects that will help the team, department, and company work more smoothly.

Dev Team Lead Resources

Articles

Books

Quote: Team Goals

My mission is to create teams that change the world.

I began this mission as a software developer. I saw in myself and other teams a passion for creating products that people would use and love. I saw that same passion dashed over and over again when the products fell flat. I knew there was more out there.

I have sought for years to find ways of enabling teams and organizations to have a different story. One where the hard work pays off. One where people take pride in a job well done and a product that people love.

I’m a long way off still from saying my mission is accomplished, but I’m here to share what I’ve learned and to help people find that new story.

~ Ryan Latta, LeanAgileUS 2019 bio https://twitter.com/recursivefaults

The Programmers Oath by Uncle Bob

The Programmers Oath by Uncle Bob

In order to defend and preserve the honor of the profession of computer programmers,

I Promise that, to the best of my ability and judgement:

  1. I will not produce harmful code.
  2. The code that I produce will always be my best work. I will not knowingly allow code that is defective either in behavior or structure to accumulate.
  3. I will produce, with each release, a quick, sure, and repeatable proof that every element of the code works as it should.
  4. I will make frequent, small, releases so that I do not impede the progress of others.
  5. I will fearlessly and relentlessly improve my creations at every opportunity. I will never degrade them.
  6. I will do all that I can to keep the productivity of myself, and others, as high as possible. I will do nothing that decreases that productivity.
  7. I will continuously ensure that others can cover for me, and that I can cover for them.
  8. I will produce estimates that are honest both in magnitude and precision. I will not make promises without certainty.
  9. I will never stop learning and improving my craft.