Uncovering hidden career paths in tech

Love technology? Want to make a difference in your career? If so, then joining a software company that’s developing some exciting, next-gen technology is a great way to do that. But here's a surprising twist: the tech landscape keeps changing so rapidly that there are a growing number of jobs for which "traditional” training paths really don't exist yet. In my opinion, these "hidden" career paths don't get sufficient exposure, given their high demand in the industry, so I'd like to take a moment to highlight two of these and offer input on what you can do if one inspires you.

Software QA  

A.k.a “Quality Assurance”

Job title / Job postings to look for: “Software Developer in Test (SDET)”

TL;DR job description: Ensure product releases get tested thoroughly before launch to find & fix issues before users ever see them.

Are you a good fit? Are you naturally curious, well organized, and detail-oriented? If you can document complex processes, then turn those steps into software-based test scripts, this may be the field for you.

What you do: Great news! You get to see the latest product features first, but… they’re in beta and may have bugs. Your job is to find those issues before releasing them to the public. To do that, you’ll use a combination of “hands-on” and software-based testing. As your skills progress, the latter becomes more of a central theme, as you enhance & scale your QA automation capabilities, so you can test more, faster.

How to get there: Software bootcamps, such as the Nashville Software School, are a good primer. You don’t necessarily need a computer science degree, what’s essential is the ability to contribute to a QA framework & codebase of an application under test.

Interested? Here are a few concepts & tools to jumpstart your research:
Application Lifecycle Management: 
Azure DevOps, JIRA
Programming languages: You can test in almost any language, so specialize in one.
Testing tools:
Web: Selenium, Protractor, Cypress
Mobile: Swift XCUI, Kotlin, Xamarin
API: Postman, Swagger
Data: tsqlt

DevOps

A.k.a “Development Operations”

Job title / Job postings to look for: “Site Reliability Engineer (SRE)”

TL;DR job description: Set up infrastructure & deployment workflows that reduce bottlenecks in the software delivery process.

Are you a good fit? Passionate about deployment technologies, yet adaptable in your thinking? Effective with cross-team communication? Great, because you’ll need to translate the needs of the IT, Dev, and Product Management departments, as you implement changes that increase the pace of software delivery.

What you do: Heard of the Agile methodology? I thought so. These days, it's what every modern development team is doing to deliver software quickly. However, not every Agile team is as efficient as others in minimizing bottlenecks in the delivery process. Increasing performance, scalability, and visibility into the deployment process is the realm of of DevOps. Other key facets of the role involve configuring hosting infrastructure, networking, and security. That’s a lot of breadth, isn’t it? This specialty ensures code can be versioned and deployed effortlessly, while application performance & security are maintained, from release to release.

How to get there: DevOps specialists typically come from either a programming or Systems Administration background. You’ll need strong scripting capabilities, so that infrastructure and deployments can be defined programmatically (i.e. infrastructure as code). The goal is to be able to simply “hit play” on your scripts and have your deployments and infrastructure operate in a fast, predictable and scalable manner. One favorite DevOps practitioner to follow is Microsoft’s Donovan Brown.

Interested? Here are a few concepts & tools to jumpstart your research:
Cloud Hosting: Azure, AWS, Google Cloud
Networking: Firewalls, Load balancers, application gateways
Server Management: Terraform, Ansible, Chef
Deployment software: Azure Releases, Jenkins, Octopus Deploy, Team City
Programming languages: Scripting for Powershell (on Windows), Unix, Python (Linux)
Security scanning: Static & dynamic code analysis tools

Previous
Previous

Techniques: Converting Azure Pipelines from GUI to YAML

Next
Next

Strategies: Building QA in your organization