Just like the title says, this is some hopefully helpful info from my experience. YMMV.
Networking background: expired CCNA, 5yrs managing regional K12 network. Cisco/Aruba/Palo. very basic hub/spoke topology, minimal redundancy, vanilla EIGRP. decent experience in ISP/DC/access networking, but nothing crazy. No public cloud experience.
Automation background: no formal CS training. tinkered with batch files and TI Basic in HS, wrote some PHP/JS in a former life. started with /u/ktbyers' python for network engineers course about 5yrs ago. basic netmiko led to building a toy framework for automation (think nornir but waaay worse :) focused on doing everything programmatically even if it meant taking longer than by hand. implemented a freeztp provisioning pipeline. branched out into native APIs w/ Solarwinds orion (powerorion) and Palo Alto for a particularly complex firewall change. started ansible about 3 months ago, mostly to see how "everyone else" does automation, but then found I really liked the native cisco modules for desired state config.
For my portfolio: I got permission from my employer to push my work to github. This was its own great learning experience. I realize this is uncommon and most employers would not allow this. If so, I highly recommend building a github in your off hours, as my work there came up in almost every interview.
About 6 months before my job search, I started a linkedin. took my time building that w/ all relevant details & also dusted off the ol' resume, added all the automation stuff I did. when I started my job search in earnest, I searched linkedin for "network engineer", left location blank, and hit the "remote" flag. Applied to anything that even remotely interested me or seemed like it might be a good fit. applied to "senior" roles, and also searched for "network automation engineer". sent out 20-30 applications & changed my profile to "looking for work."
responses trickled in at first. didn't take long before I had multiple recruitment offers a day. within 2 weeks I had a full calendar of interviews, some from large-but-mostly-unknown companies, a startup, one from a fortune 50, and even one from a very well known social networking service.
Interviews:
- All of them start with a screening call from the recruiter, usually 10-15 mins.
- After that, it changed based on the job. Two of them went straight into a live coding interview using coderpad.io. Gave me 1-1.5hrs to solve 1-2 problems in python3. google is allowed & the interviewers were helpful, not giving the answers away of course, but steering me in the right direction. overall a great experience, seemed very real-world and relevant to the job.
- for the next round, the startup and another one then launched into a marathon of 4-5 back to back interviews, total time ~5hrs. I met with peer engineers, engineers from other teams, all the way up to VPs. it was exhausting and IMO kind of a waste of time. The fortune50 crammed all that into a single interview with 4-5 guys at once, seemed like a way better use of time.
- Final round is usually a short recap with the recruiter
After landing interviews with 5 places, I declined further recruiter emails. 20+ hours of interviews is plenty for me & a few really interesting prospects came up.
Results:
- The startup declined to make an offer, citing my lack of BGP experience. This makes sense as their product is a way of optimizing global internet performance. the recruiter apologized because she knew I didn't have BGP experience, but thought I could mentor underneath some senior guys. she didn't realize that wasn't possible for this particular role.
- A private nationwide company made an offer right away. on the lower end of the pay scale but overall awesome-sounding team & interesting role (I started out interviewing for a neteng role, but ended up in a SRE role, doing high level integrations/optimizations across the whole tech stack)
- Well Known Social Networking Company also made a (better) offer. this role is working with automated deployment/tshoot of caching appliances.
- Fortune50 is my favorite, a very popular entertainment company. recruiter says to expect a response today.
- Global Fintech company is also working on an offer
- Expecting one more offer from a hospitality/booking company this week
I was totally unprepared for this response. Once I saw the positive feedback I put in my notice at $currentjob. Thankfully my manager was super cool about letting me interview during this time.
Stuff I did right:
- put a lot of real, working code on github
- refined my elevator speech of who I am and what I do
- declined to state a salary range. told them "I don't have a number in mind" or "My salary needs are flexible" or "I want to wait and see what kind of value I can add to the team before making that judgment." The first offer I got was a 30% pay increase, and Fortune50/fintech is looking like a 50% increase.
- Learn ansible. holy shit I'm glad I dove into that because everyone does ansible. It's a PITA to set up (took me at least 1 full day to just get working) and it's slow as fuck, but it's the defacto standard and I would have not gotten past the second round if I didn't have that experience.
- API experience with Palo/NMS/REST
- lots of linux experience
- asked for extra time on coding interview due to my ADHD/Aspergers.
Stuff I would do different:
- learn public cloud networking (azure, AWS). at least as common as ansible.
- CCNP (or at least solid understanding of iBGP/eBGP). came up multiple times, thankfully a few are OK that I don't know it yet
- better pure python skills. I almost choked a few times on the coding interviews because my skills are focused on netdevops. there are a ton of holes in my foundational knowledge I need to shore up. hackerrank.com has a bunch of challenges that I started & plan to continue.
- learn terraform, also very common
- take notes during interviews. they all blur together so it's hard to remember what's what.
Cheers!
-Austin
No comments:
Post a Comment