Breaking into engineering

A breaking a blogging dry spell :D I spent so much effort on this email, it'd be
a shame to let this go to waste
This commit is contained in:
R Tyler Croy 2022-04-20 09:18:53 -07:00
parent fdde7ce77d
commit aa579c8c3b
No known key found for this signature in database
GPG Key ID: E5C92681BEF6CEA2
1 changed files with 103 additions and 0 deletions

View File

@ -0,0 +1,103 @@
---
layout: post
title: Tips for breaking into Software Engineering
tags:
- opinion
- leadership
- software
- software development
---
I was recently emailed by a new friend asking for some tips on how to break
into software engineering. I *love* emails like this for two reasons: I really
want to help everybody be successful in this industry, and I think we need more
people from "non-traditional" educational backgrounds to enrich the industry.
Since I had some _scarce_ free time, and I ended up writing them a novel of a
reply, I wanted to share my tips with anybody else for whom they might be
useful!
My new friend, let's call them Sarah hasn't been working in the tech industry,
but has lots of experience in managing a business and working directly with
people. They asked (paraphrased):
> I am looking to break into a programming job, I've done lots of Perl and
> Python scripting for automating mundane tasks at work before and in my hobbies.
> There's still a lot I still need to learn, but what suggestions would you have
> to start re-orienting my career?
Below is my advice almost verbatim.
---
My advice would be to look down one of three avenues for breaking into the
software industry given your background and current level of experience:
* QA/Test Automation
* Data Scientist / Analyst
* Infrastructure ("DevOps", which used to have a real meaning)
I have worked with a number of folks that have broken into Engineering by way
of QA from let's call them non-traditional software engineering backgrounds.
The benefit of folks like you is that you have good people skills, high levels
of user empathy, and haven't spent the last decade in the narrow
user-experience silo that most developers have. In many of these positions
people will find themselves writing integration, Selenium, or Appium tests
which are commonly Python, and might match well with some of your existing
experience and desires. I have seen this job position also described as
"Software Development Engineer in Test" (SDET). From the QA organization, it's
easier to train up on an existing code-base, and the motivated individual can
start fixing bugs, rather than just filing them, beginning a transition into a
more traditional Developer role.
Data Scientist / Analyst or even a "Machine Learning Engineer" are all really
people that don't typically have a software engineering background, but are
good at smashing scripts around to get the answers they want from data. Knowing
SQL well enough is usually a pre-requisite, but that's something I am sure is
within your reach. These positions are poorly defined and the interestingness
of each company may vary widely. Sometimes they're in the Engineering org,
sometimes they report under CFO or COO types, so it's kind of a crapshoot if
your ultimate goal is to transition into a classic Developer position. That
ambiguity can also be to your benefit because if the Finance org is
interviewing you, your bar is going to likely be more focused on communication
and people skills rather than raw technical experience. At the end of the day,
it kind of doesn't matter how sharp of a programmer you are long as you are
able to read the tea leaves of data effectively for what the business needs in
these roles.
Infrastructure engineers used to be called sysadmins and were ornery bearded
dudes who wrote Perl, they have all since had to reform and learn how to write
Terraform and work with other systems. The benefit of the infrastructure space
is that it's really a job of gluing things together rather than creating
software from whole cloth. Your existing experience might be the weakest here,
but the scripter background bodes well for jump starting on some of the many
online training resources that are available in the Infrastructure space. I
don't give much credence to certifications, but training up for an AWS
certification would likely give you the fundamentals you would need to get your
foot in the door in many infrastructure organizations.
Lastly, everybody is remote, that is to your advantage and disadvantage. That
means your hiring pool extends far beyond your current location. But that also
means you may be competing with folks who are able to command a lower price
because they live in Nowhere, Indiana.
My career has been defined by startups, and the benefit of many of them is that
their hiring processes aren't rigorous and formulaic like a Google/etc, and
people with gumption can go really far in these types of organizations.
Depending on the direction you want to go, I would also recommend tailoring a
resume to that end rather than submitting your CV. I can help provide some
guidance there.
---
I hope this is helpful to anybody else looking at breaking into the Software
Engineering space with some scripting experience. I'm happy to help review
resumes, give pointers, or in any way my capacity allows, just shoot me an
email!