How Software Engineers Are Staying Ahead of the Skills Curve

Keeping up with change is a central part of software engineering. But how are tech professionals in Austin doing it?

Written by Lucas Dean
Published on Mar. 03, 2023
Brand Studio Logo

Some things remain unchanged with time: the laws of physics, mathematical principles, Ben Affleck’s unfaltering dedication to Dunkin Donuts … et cetera. 

On the other hand, some things will never cease to evolve and transform. The field of software engineering is one. There are thousands of coding languages (granted, a much more limited selection of these are commonly used), numerous tools and platforms to leverage and a continuously evolving set of approaches and methodologies. 

Consider binary code. Although it is still a core facet of computing, it is rarely directly written by software engineers. Decades ago, this was an unavoidable part of programming. Nowadays, high-level languages have made it easy to avoid. 

Some things remain steadfast, but engineering is certainly not one of them. “01110011 01101111 00100000 01101001 01110100 00100000 01100111 01101111 01100101 01110011,” which, translated from binary to plain English, means, “So it goes.” 

For software engineers, evolution is one of the few constants, and learning new tools, programs and strategies to stay ahead of the curve is simply part of the job. Without information sharing and collaboration, these professionals can quickly find themselves stuck in the past. 

Built In Austin connected with engineers from Iodine Software and Lendflow to find out more about how they keep up with recent developments and streamline the learning process. 

 

Image of Rick Powell
Rick Powell
Principal Software Engineer • Iodine Software

Iodine Software is an AI-driven company with a focus on automating complex clinical tasks, generating insights and creating value for healthcare professionals. 

 

What particular habits or routines do you employ to develop your skills as an engineer? How does your company specifically encourage you to do so?

I listen to podcasts about software and technology to stay on top of trends and emerging technologies. Another great source is listening to industry experts discuss where the industry is going in some of the many free virtual conferences or presentations from conferences that are posted online. After listening to one of these podcasts or talks, a new idea or approach may emerge, leading to a proof of concept and changing how we develop. Iodine’s culture promotes these opportunities to learn and innovate.

With online courses from companies like Coursera, Pluralsight or O’Reilly Online Learning, it’s possible to get a much deeper level of understanding on a variety of technical tracks. These courses typically have hands-on coding exercises to enhance learning. Each Iodine employee is given a $2,500 annual training and continuing education allowance to pay for these kinds of resources.

Iodine also fosters an environment where learning from each other is essential. We use Slack for brainstorming and discussions, wiki or Intranet for sharing all forms of information and office hours, tech meetups and hackathons for more collaborative ways to share and stay up to date.

 

What specific tools or programs have been especially helpful in your professional development? How?

For me, professional development starts with reading, watching and listening. I am currently taking an online DeepLearning.AI course at Coursera on machine learning engineering for production specialization to broaden and deepen my understanding of machine learning and how data science workflows impact the traditional software development life cycle.  

The next phase of “peeling back the onion” involves producing documents and notes, writing PoC code or creating diagrams to share with stakeholders and team members. One of my favorite tools for this is Miro Online White Board. This collaborative tool allows you to intuitively share, collaborate and iterate on your ideas.

The last phase of skill development typically involves teaching, being able to bring someone else up to speed on what you have learned. That can happen in a variety of ways, including office hours sessions, code, design and architecture reviews, ad hoc Slack huddles or Google Meet screen shares. Iodine has employees from all over the world. Our tools and practices promote this last phase of learning even while many parties are remote.

 

Are there particular challenges that you have encountered to staying current with — and growing — your skills and knowledge? What advice would you offer individuals and teams looking to avoid these potential pitfalls?

Many challenges facing developers today are the same ones from decades ago, such as: keeping up with rapid rate of change, deciding between being a specialist or generalist and understanding the business problem.

Our industry changes rapidly, keeping up can be exhausting. Don’t “chase every shiny new object.” On the other hand, don’t get “stuck in the dark ages,” unwilling to learn anything new. Figure out what areas should you and your company be an innovator versus early adopter versus early or late majority. For each project, pick one thing to learn and apply that will improve your wheelhouse.

Our industry changes rapidly; keeping up can be exhausting. Don’t ‘chase every shiny new object.’ For each project, pick one thing to learn and apply that will improve your wheelhouse.”

 

Deciding between being a specialist or a generalist is a personal decision, but with either path, you will need to be learning your entire career. It’s extremely difficult to be an expert on everything, so figure out what is most important to you and your company and focus on that.

Make sure you really understand the business problem before trying to solve it. Understanding the business domain will pay dividends, getting a better solution into your customer’s hands sooner. Don’t feel you need to use your new skill for every use case. Use the right tool for the right problem.

 

 

Image of Bianca Rosenbaum
Bianca Rosenbaum
Senior Software Engineer • Lendflow

Lendflow combines a credit decision-making engine, contextual product placements and a marketplace of specialized lenders that enables fintechs to embed credit infrastructure in their ecosystems. 

 

What particular habits or routines do you employ to develop your skills as an engineer? How does your company specifically encourage you to do so?

One of the most useful habits that has helped me grow as a developer has been reviewing code for other developers at my organization. Code review can seem overwhelming, especially when you have so much on your plate, but honestly, that’s one of the best ways to learn. Not only will you pick up other aspects of the product that you might not touch on a regular basis, but you will also see how other developers have handled engineering challenges and learn new things about the framework that maybe you weren’t aware of. If there is an engineer at your organization that you admire, make sure you review their code, ask questions and learn as much as you possibly can from them.

If there is an engineer at your organization that you admire, make sure you review their code, ask questions and learn as much as you possibly can from them.”

 

What specific tools or programs have been especially helpful in your professional development? How?

So many tools are available these days, and it can often be overwhelming to navigate. Some things I’ve tried to do lately are basic things, like turning off Slack to prevent distractions or using a Pomodoro timer. A timer is a great tool to use when you need to focus on just one task. Sometimes when I look at a piece of code, I’m so tempted to fix or refactor things that are unrelated to my current task, and having a timer has been helpful in keeping me on task. 

Another strategy that I have been employing lately is making sure that I focus on the hardest or longest or scariest task first — “eat the frog” strategy. I am one of those people who get overwhelmed by large tasks and then become paralyzed by anxiety, so I know I need to shift my perspective. Thinking about how to split up a task into smaller tasks can be helpful. Expecting non-perfect work and iterating is also helpful.

 

Are there particular challenges that you have encountered to staying current with — and growing — your skills and knowledge? What advice would you offer individuals and teams looking to avoid these potential pitfalls?

Keeping up with new tech is extremely challenging and hardest to prioritize, but it is so very important for growth. Find an education platform that doesn’t just focus on one specific framework but instead focuses on multiple aspects of programming. For me, that’s been Laracast and Udemy, but there are many others. Set aside time each week to brush up on a skill. Don’t worry so much about which skill; just get into the habit first. Treating it as part of your job is imperative to success.

 

Responses have been edited for length and clarity. Images via listed companies and Shutterstock.