Learning to code doesn’t mean you have to become a programmer. Coding is one of those professions with a lot of transferable skills: logic, clear thinking, problem solving, and attention to detail, to name just a few. So learning a programming language can open up a whole range of opportunities, even if you decide to veer away from becoming a developer.

We spoke with Peter Bell, founder and CTO at CTO connection, on our podcast to see what avenues are open to those that learn how to program. Here’s what he said.

Be an individual contributor

If you enjoy programming, but don’t enjoy the management side of the role, then you’ll want to look into becoming an individual contributor (IC). An IC is someone who focuses on the actual programming, without any of the management responsibilities. In the past, this wasn’t a viable career path. But things have changed.

“It always used to be like: Hey, if you want to make more money and, you know, make your parents proud, then you've got to go become a manager and stop doing the thing you're actually good at. Which is writing code,” Peter explains. “So it's good that we've got the dual-track career path, now.” -On the Dev Interrupted Podcast at 04:43

Now, if you want to focus solely on being a programmer, that’s a viable option.

Get into management

The fact that we now have a dual-track career path means that if you’re particularly extroverted or enjoy training others up, you can choose to head in that direction. Sure, you won’t be coding as much. But your coding knowledge will help make sure that you can train up your team, and understand what they need to work on.

On a similar vein, it’s worth considering overseeing an entire product. This is where you can take that extra step away and really think about the user experience. What makes the best sense for them? How should this piece of software work? How do all these pieces fit together? A product manager needs the skills of any manager, but also needs to be able to think about the actual experience.

“Somebody who has a solid technical background who moves into product, it's another way of scaling your impact, because now you can think about the user experience and the flows without having to be like: Dammit, I got the semi-colon in the wrong place,” Peter explains. “So you get what the geeks are talking about, but you can actually focus on the impact for the users... You can still talk thoughtfully about, you know, how are we going to run this in a Kubernetes cluster and how are we going to think about, you know, real time stream queries against the data source?” -On the Dev Interrupted Podcast at 05:06

Being able to take a step back away from the day-to-day coding can be great for those that enjoy reviewing code and looking for errors. When developing products, you won’t spend as much time writing new code, but you’ll get to think through the problems at a more abstract level.

Train or consults others

Another role, which can suit those that prefer the freelance life, is to move into training or consultancy. Companies are always looking to teach their staff about new techniques and languages. So if you have a knack for passing on your skills, you’ll be in high demand. In fact, Peter described on the podcast how he started off by writing blogs about ColdFusion. 

“I started presenting a technical conference around the US and around the world, and then I realized, once I got to a certain point, that people would pay me to do this,” Peter says. “I've been on the other side where I'm paying someone to come in and talk about Redis or whatever. And I'm always saying to myself: This is really expensive, but we're still paying for it.” -On the Dev Interrupted Podcast at 06:36

Being able to pick up a new language or technology quickly is a skill that not many have. So if you can do it, you can easily go into consultancy or training and earn a substantial salary. For example, Peter explains that large companies will often pay between $10,000 and $15,000 for a single day training 30 engineers. If you can pull it off, and leave those engineers with the right skills, you only need a few jobs to make a good living.

Try being a sales engineer

If you’re someone who enjoys working with people and thinking about the overall architecture of a project, rather than the fiddly details, then you might have more impact if you become a sales engineer. This role is all about understanding a product inside and out, giving demos and presenting the facts. The best sales engineers are the knowledgeable ones.

“It’s this intersection between understanding computers and being able to speak to a human. And it’s a relatively rare trait,” Peter says. “It seems engineering is awesome because what you do is you get to go and hang out with other geeks, and understand their problems.” -On the Dev Interrupted Podcast at 13:20

So rather than focusing on coding, then coming back in six months with a finished product, you get to have those high-level talks. What are your big pain points? What are the issues with your engineering flows? How might this tool or product reduce cycle time? Which can often be a lot more rewarding and enjoyable.

Check out the podcast

These are just some of the jobs that are available to you, once you know how to code. But if you’d like to hear more about what Peter talked about, listen to our podcast.

Starved for top-level software engineering content? Need some good tips on how to manage your team? This article is inspired by Dev Interrupted - the go-to podcast for engineering leaders.

Dev Interrupted features expert guests from around the world to explore strategy and day-to-day topics ranging from dev team metrics to accelerating delivery. With new guests every week from Google to small startups, the Dev Interrupted Podcast is a fresh look at the world of software engineering and engineering management.

Listen and subscribe on your streaming service of choice today.

Discover Our Most Popular Podcasts
Join the Dev Interrupted discord

In a typical manufacturing company, a supply chain is the chain of companies that you rely on to make your product. For example, a mobile phone manufacturer buys processor chips from a supplier. That supplier needs to buy a part from another manufacturer. And that manufacturer relies on yet another company for the raw metal.

But what is the software supply chain? And how do you keep it secure? We spoke with Kim Lewandowski, co-founder and head of product at Chainguard, to explain the details.

Your software supply chain is more complex than you think

The software supply chain can be complicated. Mainly because it’s difficult to know how far it reaches. Take a simple example: If you use Salesforce to keep track of your customers, you store your customers’ data on Salesforce’s servers. Not a problem, surely? But Salesforce could have a breach. And what about the servers themselves? Those servers might run on Windows. If that has a security bug, hackers have another way in. How about the software that Salesforce uses to host its website? If that is hacked, you have yet another breach.

 

“When I think of the software supply chain, it’s all the code and all the mechanics and the processes that went into delivering that core piece of software at the end,” Kim explained. “It’s all the bits and pieces that go into making these things.” -On the Dev Interrupted Podcast at 11:28

Keeping the software supply chain secure involves checking who has keys

The important part of keeping your supply chain secure is making sure that you track down what you’re using. And checking that they’re secure and reliable. Every new third party can be a potential problem. If you don’t do your due diligence, you won’t know what risks you’re taking.

As Kim explained, a favorite analogy of hers is thinking about doing construction work on your own home.

“You have a contractor. Well, they need keys. They have subcontractors. You give the keys out to all their subcontractors. Who are they? Where are they from? What materials are they bringing into your house?” -On the Dev Interrupted Podcast at 12:09

The more third party tools you use, the more out of control it can become

It all comes down to accountability. It can easily start spreading rapidly. One third-party tool that you use to create your software might rely on five separate third parties. And you don’t know what code they’ve got hidden under the hood. Your keys are suddenly all over the place.

The only way to keep it under control is to remind yourself to check and to do regular audits of the services you use. Kim believes it’s helpful to think of every new tool as a package coming to your home.

“How is your package getting to your house?” Kim said. “What truck is it riding on and who is driving those trucks?” -On the Dev Interrupted Podcast at 12:44

Get the full conversation

If you’d like to learn more about the software supply chain, and how to make sure that yours is secure, you can listen to the full conversation with Kim over on our podcast.

Starved for top-level software engineering content? Need some good tips on how to manage your team? This article is inspired by Dev Interrupted - the go-to podcast for engineering leaders.

Dev Interrupted features expert guests from around the world to explore strategy and day-to-day topics ranging from dev team metrics to accelerating delivery. With new guests every week from Google to small startups, the Dev Interrupted Podcast is a fresh look at the world of software engineering and engineering management.

Listen and subscribe on your streaming service of choice today.

Discover Our Most Popular Podcasts
Join the Dev Interrupted discord

Hiring neurodiverse developers can be challenging, particularly for smaller companies that are less experienced at hiring. This isn’t because you need an entirely new process or that neurodiverse people are inherently trickier to interview. It’s that small flaws in your hiring process get exacerbated. Obstacles that cause neurotypical people to stumble, become outright blockers to a neurodiverse person.

So we asked Matt Nigh, data engineering manager at UW Medicine, to give his tips on how to make sure your hiring process suits everybody.

“I think there are companies that other organizations could mimic,” Matt explained. “I would look at Google as one of probably the best that I’ve experienced.”-On the Dev Interrupted Podcast at 25:50

1. Interview processes should be conversational

If you use a lot of formal language, jargon and needlessly complicated words, you’ll make it much harder for your interviewee to understand what you want them to do. It also makes the interview artificial and cold, which can lead to unnecessary stress and anxiety in your interviewee. This is true for everybody, but for a neurodiverse developer, it can be much more potent.

 

“The most inclusive interview process I ever experienced was at Google,” Matt said. “And the reason I felt they had such an inclusive process is that it was wildly conversational. They were incredibly good at explaining what they were asking and what they were looking for. And to me, it was an incredibly friendly process.” -On the Dev Interrupted Podcast at 24:10

2. Neurodiverse developers prefer straightforward and clear instructions 

When giving instructions, particularly in practical tests, it’s important to make sure that you’re being clear and straightforward. Leaving ambiguity can cause problems, especially for neurodiverse developers. That ambiguity can distract away from the actual task at hand. The clearer your instructions, the better you’ll test a developer’s actual skills.

 

“I would say the reason I failed the system design interview was (and this is an example of what autism will do during an interview) it was the first system design interview I ever had. And I spent half the time trying to understand the language that the individual was using, rather than solving the problem, trying to make sure we’re just on the same page with what we were saying,” Matt said. -On the Dev Interrupted Podcast at 24:40

3. Neurodiverse developers need diverse recruiters, and stick around for longer once hired

Everyone has their own biases. While we should all strive to overcome those, it’s not always possible. The best way to avoid those problems is to make sure your interview team is diverse. Some coping mechanisms and strategies can seem strange to a neurotypical recruiter at first.

For example, someone with ADHD might ask you to repeat points or be typing as you speak. While it could initially look like they’re answering emails or not paying attention to you, it’s more likely that they’re taking notes to make sure they follow your instructions properly. The more diverse your recruiters, the fewer false assumptions you’ll make.

“Most recruiters are used to looking at neurotypical applicants, and they essentially have mental flags that come up with certain things, certain questions or anything like that,” Matt said. “Companies should ask: Do I have inclusive recruiters? So say, for example, at Google, they had incredibly inclusive recruiters. I was recruited by a deaf individual, for example. So this person very clearly understands me and anything that was going on.”-On the Dev Interrupted Podcast at 25:13

4. Neurodiverse developers could be more productive, and worth changing your processes

A program at Hewlett Packard Enterprise hired over 30 neurodiverse people in software testing roles at Australia’s Department of Human Services. The initial results from the program seem to suggest that those testing teams are 30% more productive than others, according to an article in the Harvard Business Review, called neurodiversity as a competitive advantage.

 

It would seem that, while a neurodiverse person might struggle in some areas—like the social anxiety brought on by an interview—they could exceed in others, such as pattern recognition.

Watch the full interview

If you’d like to hear more from Matt on neurodiversity in software development, you can watch the full podcast on our channel.

Starved for top-level software engineering content? Need some good tips on how to manage your team? This article is inspired by Dev Interrupted - the go-to podcast for engineering leaders.

Dev Interrupted features expert guests from around the world to explore strategy and day-to-day topics ranging from dev team metrics to accelerating delivery. With new guests every week from Google to small startups, the Dev Interrupted Podcast is a fresh look at the world of software engineering and engineering management.

Listen and subscribe on your streaming service of choice today.

Discover Our Most Popular Podcasts
Join the Dev Interrupted discord

In my role as an engineering manager, I know making the leap from an individual contributor (IC) to engineering manager (EM) is not a promotion. Instead, it’s a different career track. What we are discussing here is a fundamental difference in terms of the responsibilities of the roles. What you do as an engineering manager versus what you do as a developer is fundamentally different. There is a possibility that you might not write code altogether. A promotion means continuing to do the same thing, while being paid more to do it. Becoming an engineering manager means transitioning to a different role with different responsibilities. In other words, a separate career track.   

First, let’s break down our target audience into two groups. One group who is transitioning into engineering management. And then, the second, folks who have been made engineering managers recently. For those who are still considering, this decision could be made due to a couple of factors. It could be tenure-based, it happens in many companies where you are the senior-most engineer, or you have spent a fixed amount of time. The company or the team believes that you're ready for managerial responsibilities, asking you to make the switch. This is a more traditional track that we see. Alternatively, there's a more interest-based approach that you could be even at a mid to senior software engineer level.

An important clarification with this is when to use the term "tech lead" and "engineering manager" interchangeably. The Tech Lead is a system owner, and the Engineering Manager is more of a team/people manager equally. So the former is responsible for the overall success of the architecture while the latter is responsible for the team success, motivation and morale of the people they manage. 

There are some key signals regarding both the tracks (IC & EM) to be aware about. They are:

1. Amount of coding time

Are you able to compromise on the technical output that you will end up with as an engineering manager versus a strong engineering IC? If you are coding 60 to 70% of your time currently, let's say it's going to reduce to 0 to 30% of the time. Yes! ZERO is a reality in this case. I have spent months where I'm literally not doing any coding in my role. There are EMs out there who would say they are able to still do coding and remain technical in terms of writing code day in, day out with an EM role. But, honestly, I don't believe that is a scalable practice.

If you are still taking on critical hands-on development tasks as an engineering manager, you run the risk of becoming a bottleneck for your team. For instance, if you are not available during the week, you need to do a lot of performance reviews or you are in some strategy meeting.

2. Focus time vs meeting time

Are you okay with spending 50-75% of your time in meetings and tackling action items? If a company is in a hiring mode or if there is a performance review season, or if there is just any ad hoc conflict that comes up, or mentorship in your one-on-ones with direct reports, there are many meetings/commitments. This is especially true now with remote culture and distributed teams. The amount of context needed to succeed in this role is quite high.

3. Definition of success

Are you okay with the definition of success becoming vague? What I mean by that is, as an engineer and an individual contributor, there were days where my code would pass, I would complete the feature, the build was great, I would get a dopamine boost at the end of the day and I could say, "Wow, it's a productive day!" Basically, I could see clear output as an engineer when I completed a task, or my work was released.

As an engineering manager, it's difficult to define what success looks like for you personally, because there are no metrics which tie to individual engineering management. For an engineer, it is lines of code or the amount of work you completed, features you pushed, zero bugs introduced. All those things are great success indicators for a strong engineer.

For an engineering manager, you must find your own metric set of what success is, which is ‘maybe there was no conflict in the team this week’, ‘maybe there was no deadline that was missed this week’, ‘maybe there is no question in terms of the meeting’ that I had with the stakeholders, and everybody clearly understood the requirements that were there for that week. Overall, it becomes abstract, and you need to self-identify what success looks like.

 

______________________________________________________________________________________________________________________________________

Sponsored Section

Want a better understanding of your success as an engineering manager? Need to understand how your team is performing? LinearB automates your teams metrics program so you can drive continuous team improvement - and provides your developers with tools to help improve, orchestrate, and automate their work. 

Learn more and get your free metrics runbook today.

_____________________________________________________________________________________________________________________________________

 

4. Being an enabler, not a creator

Are you okay with the mindset of being an enabler versus a creator? As an engineer, an individual contributor, you have dedicated time to implement features. It’s your job to create things. However, as an engineering manager, you are responsible for enabling the creators to do their job. So, you are unblocking the team, you are giving clarity to the stakeholders, you are giving clarity to the team, you are providing updates to the leadership, you are sharing updates with other teams. Thus, you are enabling a lot of information sharing and removing bottlenecks for your teams and team members. 


For me, it's clear that the engineering management and leadership track is a parallel career ladder on a separate track. It is a lateral move in that sense. It's not a vertical move and it's important to know the difference. The good part? In my experience, it is worth attempting to become an engineering manager because if it doesn’t suit you, you can always go back to being an individual contributor.

______________________________________________________________________________________________________________________________________

If you haven’t already joined the best developer discord out there, WYD?

Look, I know we talk about it a lot but we love our developer discord community. With over 2000 members, the Dev Interrupted Discord Community is the best place for Engineering Leaders to engage in daily conversation. No salespeople allowed. Join the community >>