[HN Gopher] Ask HN: How to switch software engineering domains
       ___________________________________________________________________
        
       Ask HN: How to switch software engineering domains
        
       Hi!  I've been a Software Engineer at a medium sized Canadian
       company for almost 4 years now. It was my first job out of
       university. The work is backend application development for the
       company's platform. While the work can be interesting at times, I
       feel like I don't enjoy it anymore. I want to switch into a new
       software engineering domain that isn't as high-level. I'm fine with
       switching to any other field, I'm just don't know how to properly
       make that transition in a way that would allow me to get a job.
       Currently, I've been doing some personal projects in computer
       graphics, and I've always enjoyed C programming (I was a TA for my
       systems programming course in undergrad). I also just completed my
       Masters in Computer Science.  Despite this, I'm having trouble
       applying for jobs. I usually don't meet any of the requirements, as
       I don't have actual work experience that the job description
       expects. And when I do apply, I get rejected before an interview.
       For those who have switched domains, any advice on how to go about
       this transition?
        
       Author : SomeDaysBe
       Score  : 33 points
       Date   : 2023-06-29 18:44 UTC (4 hours ago)
        
       | eklitzke wrote:
       | I made this exact career transition, the first ~10 years of my
       | career were doing backend development at web companies (mostly
       | Python, but later Go) and I switched to working in C++ in the
       | autonomous vehicles industry.
       | 
       | The key is really just to apply to these jobs, even if you don't
       | have direct work experience. I had a blog on my website that had
       | a lot of C/C++ stuff which I think helped a bit, but in the end I
       | just applied to a bunch of jobs and eventually got a technical
       | phone screen. I described some of the C/C++ projects I had worked
       | on in the past (mostly personal projects). I got grilled fairly
       | hard on C++ stuff in that interview because the company knew that
       | I wasn't coming from a professional C++ background, but I knew my
       | stuff so it ended up not being a problem.
       | 
       | The other way to do this would be to try to get a job at a
       | company like Google or Facebook. Typically you're just another
       | person in their recruiting funnel and whether or not you know C++
       | doesn't actually affect how their hiring pipeline works. At both
       | companies you're typically not applying for a spot on a specific
       | team at the time of your interview, so you don't even necessarily
       | have to write C++ in your interview to end up getting matched to
       | a C++ team.
        
         | Solvency wrote:
         | What does C++ grilling look like? Types of questions they asked
         | etc?
        
       | esafak wrote:
       | Find a team that does what you want, and get a position doing
       | what you are currently qualified to do. Learn to do the other,
       | new thing, then get your manager's help to make the transition
       | official.
        
       | keb_ wrote:
       | Is your company's product a web application? While looking for
       | jobs, maybe try looking into WebGL or WASM to see if you can
       | apply your interests in a way that you cab still do graphics work
       | at your company in the meantime.
        
       | ajhurliman wrote:
       | I would recommend dabbling in different fields and writing open
       | source stuff. If you like the work, you'll probably build
       | something cool that may get you hired. If you don't like it, drip
       | the project and try something else.
       | 
       | I got really into options trading and built a paper trading site
       | that eventually got acquired (for actual money!), and that's been
       | the talking point of every interview since I sold it.
       | 
       | If you decide you like robotics and you build a library that does
       | fast matrix multiplication leveraging webgl or something, I think
       | a lot of people would be very interested in at least having a
       | conversation with you at that point. People who can "get things
       | done" are always valuable.
        
       | giantg2 wrote:
       | It seems like using one's network is how you can get into a job
       | that you don't currently meet the requirements for. If your
       | current company has any role in a different domain, they might be
       | open to you requesting a transfer.
        
       | petesergeant wrote:
       | Find a company that does both, and that will hire you for your
       | experience in one. Maybe that's a Python company that needs to do
       | Rust stuff, or occasionally has performance constraints that mean
       | they need to use C?
        
         | earthboundkid wrote:
         | Yeah. Companies hire you to do A, but they let you do B, and
         | then you find a new company that will hire you to do B, but you
         | end up doing C, etc. Your job title is always the thing you
         | were doing at your previous job, not the thing you do now.
        
       | throw1234651234 wrote:
       | If you wanted to get into full stack dev or something, the answer
       | would be obvious - do a project, apply, get job because you know
       | the fundamentals.
       | 
       | If you are trying to get into something specific like graphics, I
       | imagine the formula is the same, but probably with much lower
       | likelihood of success.
        
       | sillysaurusx wrote:
       | I've switched domains four or five times now. I started with
       | gamedev, went to finance, then pentesting, then machine learning.
       | 
       | The key is to have a strong portfolio. Every successful switch
       | was based on that. Even in areas where you can't really show a
       | portfolio, like pentesting, I was good at it and was able to
       | demonstrate it.
       | 
       | It's really that simple. Be good, and show that you're good.
       | Don't wait for someone to show you what to do.
       | 
       | Oh, as for the mechanics of getting the job, it's the same as any
       | other: Forget the resume process. Find someone in the industry
       | you want to work at, flatter them (everyone likes to be
       | flattered, and you should lean on this tool as much as possible)
       | and show them you can be useful.
        
         | __dave__ wrote:
         | Nice. I've worked for awhile in backend dev and
         | infrastructure/cloudops, and thought about trying to transition
         | to pentesting to try something new. What did you like about it?
         | What did you not like? What made you decide to leave the domain
         | for ML?
        
           | sillysaurusx wrote:
           | It's mostly a writing gig. (tptacek disagrees, but that's
           | fine -- we disagree on lots of things.) You don't really make
           | anything, and I liked making things. It was kind of that
           | simple.
           | 
           | But! I also met some of the most interesting and capable
           | people I've worked with. So if you're interested, I encourage
           | you to give it a shot.
           | 
           | As for "why ML," I liked ML and it was full of mystery, which
           | was good enough for me.
        
             | __dave__ wrote:
             | From the outside looking in that's pretty much what I
             | guessed: Lots of report-writing and little if any
             | programming, but a lot of very talented and interesting
             | people.
             | 
             | It seems like with the proliferation of bug-bounty
             | platforms today, there's a fairly clear way to prove
             | yourself and get in the door while picking up a little cash
             | on the side. Heck, maybe just dabbling in bounty programs
             | is enough to scratch the itch.
        
             | maxlamb wrote:
             | For your switch to ML did you also work on a portfolio of
             | ML projects? If so, what's an example ML project you worked
             | on that you were able to show your future employer?
        
         | PaulHoule wrote:
         | It helps to be be entering areas where demand is exploding and
         | the supply of experienced people is thin. I have a long track
         | record of being fast to pick up the methods of new domains and
         | I've frequently had people riding my tail to help them out with
         | a project in a new domain, even if I wasn't really that
         | interested in the switch.
         | 
         | It's a part of my origin story because the whole reason I left
         | physics and went into software development was that I watched
         | one of the best physicists of our time crying every night
         | because he had no idea where his next job was coming from
         | despite having written half of a very good textbook and
         | numerous great papers. He made it big in the end but I had
         | neither the tolerance for that nor the talent or motivation.
         | I've had the occasional job search that took most of a year but
         | I've had some that lasted 72 hours.
         | 
         | Thus I skip all the fancy programming languages and work in the
         | big commercial ones in demand unless I get cash on the
         | barrelhead. For years I avoided Python but I worked for a few
         | people who needed "data science" so they paid for my education.
        
       | mehagar wrote:
       | Does your current company have any lower level positions open? It
       | may be easier to switch internally.
        
       | nitwit005 wrote:
       | It may be easier if you wait till you have exactly five years
       | experience. I suddenly got a bunch of recruiting emails when I
       | crossed that threshold.
       | 
       | It tends to be much easier changing around what you work on
       | within a company. I started doing embedded and server software in
       | my first job by just helping out on bug fixes without asking.
        
       | mindcrash wrote:
       | I assume you are trying to break into the game industry?
       | 
       | I applied as a intern and a tool developer once at two pretty
       | famous AAA studios (due to friends, both actually didnt work out)
       | and trust me when I say the bar is MUCH higher than a average
       | backend job.
       | 
       | I do not want to discourage you, but if you have zero credits on
       | MobyGames expect that they DO want to see proof that you can
       | develop something like a fully working game engine from scratch
       | (which means you understand the base concepts of game system
       | development). Also, any proof of handson experience optimizing
       | code for modern consoles which nowadays amount to Playstation 4,
       | Playstation 5, Xbox One and Xbox Series S/X will probably be a
       | huge plus.
       | 
       | If you can't show any of those things I am afraid most, if not
       | all, studios will not be interested.
        
         | ellisv wrote:
         | > I assume you are trying to break into the game industry?
         | 
         | Curious what lead you to this assumption.
        
           | clarge1120 wrote:
           | You mentioned computer graphics and C language, so game
           | development strikes me as a reasonable guess.
        
       | havkom wrote:
       | Apply "lower level" approaches to your current job and get
       | experiences you can talk about in application processes. For
       | example, if you code backend C#:
       | 
       | - Apply "lower level algorithms" to tasks where it fits (if you
       | find good use cases you will be seen as a genius by the other
       | "high-level" programmers)
       | 
       | - Implement "lower level programming approaches" to solve
       | problems. For example, there may be good use cases for emitting
       | MSIL-code in parts of projects (for example where interfaces are
       | injected, you could inject emitted classes on the fly for example
       | in some instances). Again, you will be seen as a genius if you
       | find the right use cases.
       | 
       | - Implement "lower level" communication protocols where suited,
       | for example a home made UDP protocol where you benefit from not
       | having a stream and some packets are not needed.
        
       | extr wrote:
       | As a hiring manager, I'm not averse to hiring someone with non-
       | domain experience for a domain-specific role with but I usually
       | have a few apprehensions. You can make yourself a better
       | candidate by pre-empting these questions:
       | 
       | * Were you actually good at your previous domain? (Be Good)
       | 
       | * Does this person know they actually like working in this new
       | domain? Or do they just think it might be "interesting"? (Show
       | some proof that you are already investing yourself in this new
       | domain)
       | 
       | * Do they have a track record of successfully learning new things
       | in the past? (Any other non-domain skills you've picked up that
       | show me you can be successful doing that?)
       | 
       | * Are they at a natural career inflection point and a good time
       | for a transition? (You just got a Masters, so this is covered)
       | 
       | Trying for a totally cold start is tough though. I would try to
       | get a foot in the door via career fair or university contacts.
       | Use whatever coursework you have completed in the area to show
       | aptitude/interest. Good luck.
        
         | lylejantzi3rd wrote:
         | > Were you actually good at your previous domain? (Be Good)
         | 
         | Can you define "good"? and, more importantly, how do you
         | convince others that you're "good" within the context of a job
         | application?
        
           | vsareto wrote:
           | You advertise some qualities that you think is good and see
           | if it passes their bar of good. There's certainly some
           | subjectivity here.
           | 
           | A more general indicator is how far down into the details you
           | can dive. Another is how well you can teach things to others.
        
       | cameronfraser wrote:
       | With things like computer graphics you're competing with a very
       | different pool of applicants than you likely were before. People
       | with PhD's and Masters in related fields. I have found success
       | with positioning myself as someone who works on the edges of
       | multiple domains. So if you were a web developer before it would
       | be at an intersection of web development and computer graphics
       | which could be web gl or operationalizing graphics applications
       | for web or cloud integration. This won't work very well at larger
       | companies that have a lot of clear boundaries between positions,
       | but it will work at startups where boundaries are less clearly
       | defined and people wear multiple hats. In summary, try startups
       | and position yourself at the intersection of multiple domains to
       | get your foot in the door.
        
       | myth_drannon wrote:
       | Right now, just changing a job is hard. While waiting out the
       | downturn you can work on some personal project, just to have
       | something to show. I hope in a year or two it will be easier to
       | change domain as the market recovers.
        
       | koblas wrote:
       | Keep in mind that the layoffs earlier this year have still had a
       | huge impact on the job market for software engineers. Many
       | companies moved their hiring bar higher and have gotten more
       | selective over their canidates. 2 years ago, if you pretty much
       | had a pulse you could have jumped fields (yes, some jobs did
       | require specialized knowledge).
       | 
       | Many Canadian companies are not doing "interesting" things so I
       | can understand the perspective of being at the long end of the
       | funnel on sprint tasks for a product that might not be getting
       | huge marketing wins. You've already taken the first step at
       | figuring out what's interesting to you. As others have said,
       | start learning about some topic areas find the meetups over those
       | topics and start networking and getting to know people in the
       | field.
       | 
       | Lastly, interviewing is a skill.
        
         | JohnMakin wrote:
         | > Keep in mind that the layoffs earlier this year have still
         | had a huge impact on the job market for software engineers.
         | 
         | People keep saying this like it's a fact but I've not seen
         | anything in the employment data to suggest this is remotely the
         | case. Tech unemployment is startlingly low, and even during
         | some of the massive layoff months, tech was still adding jobs
         | faster than it was shedding them. Last I checked, tech
         | unemployment was at 1.5-2%, much lower than the national
         | average (USA at least).
        
           | tracerbulletx wrote:
           | My anecdote having just switched jobs is that It did not take
           | long to get a new job, only about one week to get an
           | interview, a month to complete the process and start and I
           | had 2 offers. However I applied a bunch of places, and even
           | with referrals, only a small fraction got back to me which 3
           | years ago when I last changed jobs almost everyone always
           | did.
        
           | myth_drannon wrote:
           | Tech hiring is completely frozen. 2 years ago I had ~80%
           | response rate, now it's 1%
        
           | sokoloff wrote:
           | I think what I've seen is that with the near hiring freeze at
           | Amazon and a substantial slowdown at Google means that the
           | next tier down of employers are having their pick of
           | candidates that they might have had a harder time landing
           | when Amazon and Google were hiring 5-figures of SWEs every
           | year. So, even if everyone ends up being employed, the
           | selectivity could still be higher than normal. I know we
           | amped up our thresholds for hiring quality.
        
             | [deleted]
        
       | ramesh31 wrote:
       | >Despite this, I'm having trouble applying for jobs. I usually
       | don't meet any of the requirements, as I don't have actual work
       | experience that the job description expects. And when I do apply,
       | I get rejected before an interview.
       | 
       | That's just how it is. Keep applying. I doubt anyone is getting a
       | job these days without making dozens of applications, or having
       | serious connections. It's brutal and discouraging, but you just
       | have to stick with it.
       | 
       | For some more actionable advice, focus on your framing.
       | Interviewers don't care at all about what interests you, or what
       | things you're most excited about getting to work on. They care
       | about what you can do for their company right now, especially for
       | a mid-level role. Think less in terms of "I'd love to join your
       | company because I'm excited for the opportunity to learn more
       | about XYZ" and more "I'd love to join your company because I have
       | a good working knowledge of XYZ, and believe it would be a huge
       | contribution to your development efforts in that area."
        
         | willio58 wrote:
         | Agreed, I think OP will get there eventually but it's just
         | going to take a lot of work taking into account the change of
         | work domains.
        
       ___________________________________________________________________
       (page generated 2023-06-29 23:02 UTC)