It's not hard, you say? Give us some pointers then? I'd appreciate a legacy code janitor job for a few years while still collecting $10k a month. I need the break from stress.
You have to move there. Even if you put it up front in your resume (they usually only read it 30 mins before they interview you). None of these companies want to hire from another state. As you can not 'start tomorrow'. Even though they will have these positions open for a year or more.
Be up front you about what you are doing. They are going to think 'he is going to jump at any time'.
Be willing to stay there awhile. But be warned some of these places there may be one to two 'big companies' that hire there (and if they do not hire you are SOL). There may be some small startups here and there. So plan on that. There may not be much to choose from there for you. It is why many move away from those areas. So if you are 'lucky' enough to get into one of the companies do not plan on jumping around a lot. You will burn bridges and the community of devs is small there, and they talk.
Be willing to dig into some seriously legacy code. "oh we still use sourcesafe and vb5". The Joel test is a good indicator of how strong they are. "oh we buy the best for our devs" and the computer on existing devs desks is some beige box from the late 2000s with a CRT.
Set your pay expectations much lower than what you are used to. Had one I was looking at, I was one of 3 people who applied. He passed me over because 'I was not in the same state'. I had 5 years 'full stack' exp on the exact type of system he was working on. After a bit of back and forth they wanted to pay nearly half of what I was looking for. Which was not terribly out of line for that area. Another dude thought he could snag me for 1/4th what I wanted. These guys can be cheap. They have a product someone tinkered together years ago. But they do not have enough income to really justify any sort of real work. So they do what they can and usually just farm it out to some consultant group.
> You will burn bridges and the community of devs is small there, and they talk.
You've hit the nail on the head here and this is my main worry. I've been much more selfish lately (last 3-ish years) and I know I definitely did burn some bridges but I can't make myself care very much -- I am 41 y/o and at one point participating in a one-sided "exchange" of trying to appease while mostly humiliating yourself becomes impossible to swallow (but then again, I recognize I've had both shitty luck and self-selected bad employers due to personal drawbacks that I am still actively fighting with).
> Be willing to dig into some seriously legacy code. "oh we still use sourcesafe and vb5".
One of my strongest selling points as a senior dev is that (a) I don't mind dirty and heavy work at all, and (b) I have an excellent eye for detail, very rarely miss something and (c) I try to leave the code with better readability after I finish my current task on it.
That being said, many companies are too impatient. I've hit the brick wall of "we want somebody who can hit the ground running and we won't provide any training" personally at least 5 times in the last 3 years. And I seriously don't know what to do about that; I certainly can't know all tech stacks and domain expertises on the planet!
And it's flabbergasting how much in denial many companies are about the risk management aspect. I mean they know; they absolutely know what's going on but they concluded that training new hires is a huge business risk (due to most people never staying more than 2 years on a job) so people like myself -- even if senior and very experienced -- have literally 1% chance of getting hired in many such places.
They do have a point and they are mostly acting rationally in this situation; but they could still spare some minimal training so they stand to gain a bit more from the employee that's going to move on maximum 24 months after being hired. One or two months of training isn't that expensive for them I'd think.
> These guys can be cheap. They have a product someone tinkered together years ago. But they do not have enough income to really justify any sort of real work. So they do what they can and usually just farm it out to some consultant group.
I am realistic about that aspect and I accept it. If they wanted to pay top dollar they'd just court somebody who is 45-50 or more for several months and then do their very best to promise them retirement in the company and all the good stuff that a long stay can benefit the person.
I know they want to pay less but I'd aim for having 3-4 such customers, independently, and collect a 120% - 200% of my normal payment combined through such venues. Not always sustainable in terms of mental strain and energy but I've pulled it off successfully even as shortly as 9-10 months ago without being hugely taxed in terms of health.
RE: the consultant group trope, I suppose this is where I fail in terms of marketing. Many companies just can't take a single random person seriously even if he's John Carmack in disguise. I suspect I need to make a fancy consulting website with some fake testimonials and pretty graphics, have a photo in a rented suit and then I'll suddenly be taken seriously. People can be very shallow and easy to manipulate, huh?
I am a bit flippant here but I likely should indeed work on marketing. But how does one strong and senior single programmer advertise themselves as a consultant or, generally, a guy you go to to solve a business problem, and who is not a wage lemming? Got any pointers on that?
The consultant thing is usually a matter of budget. Hiring someone is the personal budget that has had an increase of just enough so everyone does not flee and zero real room for a new head. Yet a consulting budget is from a 'different bucket' and can usually scale up and down quickly. Those are taxed at different rates and depending on their accountants how it will work out.
For your last Q I would say a lot of the same points still matter. They are going to want someone 'local'. Someone who can come in on a moments notice when they are in the thick of it. Also keep in mind a business is not programming. I would suspect what you are really asking is 'how do I sell things'. That is a much different topic. But targeted advertising, cold calling, trade shows, emails to former and clients and colleagues. It may be worth looking into hiring an advertisement firm for some small ideas. Do what you want your customer to do and hire an expert. If you do not have the cash for that you are going to have to do it yourself. Your personal network is probably your best bet for starting to grow your business network. My dad a former insurance salesman spent a lot of time in bars selling and meeting people. They had hundreds of hours of training they took to be any good at it. It may even be worth getting a short part time job as a salesman to get the idea of what to do. Think of it as just as there are jr devs you are jr salesman. But keep in mind, there are several types of sales. Those that sell themselves (they were already going to buy it, it is just from who that matters). Those where you need to work the sale. This is the harder type. You have to basically sell yourself to them. This is either showing them they have an existing need that is not being fed, or faking it by 'creating' a need they did not know they had. Another way is to associate yourself to one of the consultant groups out there. They take a cut but can help with lead generation.
Getting the first few years of experience is going to be the hardest--hardest relative to the rest of your career; it's not that hard by any absolute measure. Apply broadly, and take whatever comes. If a company is looking for a junior or mid-level SE and wants "1-3 years" of experience (which is common), your degree is that experience. If you have a CS degree and are in a low- or medium-cost of living area, you should expect $60-80k to start. If have a CS degree and are in a high-cost area, you should expect $100k.
If you don't have a degree or experience, it's going to be harder. But why should a shortcut be easy? Is there a secret backdoor career path for people who want to become physicians without going to medical school? No. Do the work, and earn the reward. There are plenty of online and nighttime options for earning a CS degree.
If you apply somewhere and don't get a call back, don't sweat it, and don't take it personally. It just doesn't matter. Hiring is a noisy process, and the cost of a bad hire is tremendous. Most companies will try harder to reduce the number of false positives than to reduce the number of false negatives. Again, apply broadly and treat it like a numbers game. There are limits, though. If you've applied for 10 jobs and not gotten a single interview, pay a professional to rewrite your resume for you.
If you're getting interviews and bombing the technical questions, then study. If you're bombing the cultural/behavioral questions, read some self-help books and join Toastmasters. If you think you're acing the interviews and not getting any jobs, then you're probably bombing something but are too clueless to realize it. Hire an interview coach.
If you're at the point where you have a degree or 5ish years of experience (or ideally both), you are ready to be a $100k code janitor. Learn a common stack well enough to do smart things with it. For instance, if you learn .NET, you should be able to manipulate collections in interesting ways with a single expressive LINQ statement. Pick one from each category (but don't combine Java with SQL Server - I don't think you'll see it as much in the wild):
1. Java or .NET
2. Angular or React
3. SQL Server, Oracle, MySQL, or PostgreSQL
I'm going to offend a ton of niche fanboys now: Don't pick Vue, Go, Erlang, Haskell, or Rust. I'm sure each of them is amazing in its own way, but getting a job is your goal, so you don't pick a technology used by only 1% of employers.
Now I'll offend the embedded and systems programmers: Don't pick C or C++. They're just not widely used in business applications. I know both (at only an intermediate level), but I've never seen either used in a business application. You should know both on some level, but you're not going to get a Fortune 1000 code janitor job with either of them.
Congrats, you are now qualified for the majority of SE job postings at non-tech companies.
19.5 years of programming, but mostly web programming for the last ~12. I want to move away from that, I am sick of it already. There's always something more to learn and even though I don't mind at all -- it keeps my mind sharp which is something I want to keep all the way to my death! -- the churn of knowledge in there is exhausting.
> If you have a CS degree...
I am not from USA and have no degree. I am 41 y/o and I'm a self-taught programmer ever since 12 y/o. Not sure how well that flies on interviews; I feel the US companies put a lot of value on degrees?
> If you apply somewhere and don't get a call back, don't sweat it, and don't take it personally. It just doesn't matter. Hiring is a noisy process...
Completely agreed. I've been in a rough mental and physical health patch for ~3 years now and I've changed more employers/customers than I wanted. Tech hiring is completely broken indeed. You're quite right.
> I'm going to offend a ton of niche fanboys now: Don't pick Vue, Go, Erlang, Haskell, or Rust.
I am not a fanboy at all. I've used 8 languages over my career -- Elixir (stepping on Erlang) and Rust included and I've picked them based on their true, proven and testimonialized merits.
I don't take offense with your statement at all. I presume you meant "aim for something huge and somewhat commoditized that has a ton of legacy code to maintain"? If so, I'll agree with you immediately; there was a period during which I've been barraged by offers from German and Swiss companies almost every day, for months -- all for Java and C# huge legacy beasts.
But sadly that's not where my heart is. :(
Furthermore, I am willing to bet my neck most of those are NOT a code janitor job at all. They'll require a ton of time and attention every day. If I'll do that I'll just find an Elixir or Rust job but at least be happy with the tech stack (if not the area -- the webdev -- which I hate with a passion nowadays).
> Now I'll offend the embedded and systems programmers: Don't pick C or C++. They're just not widely used in business applications.
I haven't been an active C/C++ programmer for like 12-13 years now but IMO you're not on the mark here: there are a lot of business apps but they usually belong in huge old mastodons that are too stubborn to move on (I personally know the VPs of engineering in two such companies!).
But overall you are right -- they are niche but not the good kind of niche; you need a metric ton of battle scars to even qualify there.
> Congrats, you are now qualified for the majority of SE job postings at non-tech companies.
I'd agree but I've neglected networking -- both physical and virtual -- for most of my career and now at 41 y/o I started to feel the negative effects of that. :|
> 19.5 years of programming, but mostly web programming for the last ~12. I want to move away from that, I am sick of it already. There's always something more to learn and even though I don't mind at all -- it keeps my mind sharp which is something I want to keep all the way to my death! -- the churn of knowledge in there is exhausting.
The churn of knowledge can be limited by choosing technologies that don't require constant adaptation. (Time to offend the .NET fanboys): If you pick .NET, there isn't that much difference between .NET Framework 4.5 (from 2012) and the latest version of core. The job still gets done, just with a different set of packages. If you don't have a use for async/await or the TPL, you can go as far back as 3.5 (from 2007).
> I am not from USA and have no degree. I am 41 y/o and I'm a self-taught programmer ever since 12 y/o. Not sure how well that flies on interviews; I feel the US companies put a lot of value on degrees?
Some do, but with 19.5 years of experience, this wouldn't be much of an impediment for you in the United States. All of my opinions apply only to the United States. I haven't worked in other countries and can't comment on them.
> They'll require a ton of time and attention every day.
IMO, a "code janitor" doesn't just sit around all day reading HN. When I use those words, I mean the type of job where you're expected to fix bugs and implement features and not much else. Even if there is talk of higher expectations, there are never any consequences for just going with the flow. You'll rarely/never be asked to work overtime or learn on your own time. You'll only pay lip service to clean code, clean architecture, and long-term thinking. You'll still be expected to show up by 9, hang around until 4, and not screw off the whole time. The job is still a job; it just doesn't strain your brain.
> I'd agree but I've neglected networking -- both physical and virtual -- for most of my career and now at 41 y/o I started to feel the negative effects of that. :|
Headhunters are the antidote to this. When a recruiter wants to connect on LinkedIn and have a short phone conversation about an exciting new position, you always say yes. And if they're not sending connection requests to you, then you send the request to them.
> IMO, a "code janitor" doesn't just sit around all day reading HN. When I use those words, I mean the type of job where you're expected to fix bugs and implement features and not much else.
Yes. We are on the same page, just using different words.
I definitely didn't mean "slacking off". I meant exactly what you said: have 3.5 to 4.5 hours of good solid programming work per day (because realistically that's what most programmers cover in terms of actual focused productive time in the standard 8h work day) where you have already ticked the boxes (or nobody cares about them as you said) so you just pull stuff from a backlog and move at a steady pace with not much supervision.
The company I am very soon starting with has people I like very much, plus I love what they do. But if that turns sour then I'd likely be looking for 2-3 "code janitor" jobs in parallel in order to protect my mental health for a while.
> When a recruiter wants to connect on LinkedIn and have a short phone conversation about an exciting new position, you always say yes.
Maybe you are right. To me outright insisting on a phone call is very disruptive and out of place. I've tried it several times and maybe I drew the short end of the stick every time but they all were young and fairly clueless HRs who just wanted to parrot their speech that was supposed to motivate me and then immediately pressure me for an answer. Don't know, didn't find that a good expenditure of my time.
Maybe I am doing something wrong, I am open to that, but I really am not sure that I want to expose myself to such toxic time wasters. Any advice?
> But if that turns sour then I'd likely be looking for 2-3 "code janitor" jobs in parallel in order to protect my mental health for a while.
Oh, I wouldn't try to juggle multiple code janitor jobs. It only takes one good one to pay my bills. And it would defeat the benefits that I perceive in the code janitor job. If someone wants to put that level of effort into his career, he's better off aiming higher.
> Maybe I am doing something wrong, I am open to that, but I really am not sure that I want to expose myself to such toxic time wasters. Any advice?
Ask for the client and salary range immediately. If they don't give you a straight answer, politely end the conversation.
It depends on the type of recruiter. If you're working with an external recruiter (like an agency recruiter), they're not going to do that. They'll just give you the client's expected salary range. I've never had an external recruiter play this game with me.
If it's an internal recruiter, you might get that question. In that case, have a good idea of what you're looking for, and throw out a number at the top end of the range. If you're talking about a senior software engineer job, and you know that, in your area, they generally pay $120-150k, then say $160k. If you want, condition it based on total comp and benefits. Most Fortune 1000 code janitor jobs will offer a nominal bonus, anywhere between 5-20% of salary. Nothing like the huge FAANG bonus structures. But saying "depending on TC and benefits" gives you some leeway to ask for something even higher later on. And it tells them that, if they can pay you $150k plus a 20% bonus, then you could be happy with that. It leaves the conversation open.
If that makes them walk away, then you didn't want to work there. And don't feel bad negotiating like this even if you're going for a code janitor job. Compensation correlates with negotiating skill more than software engineering skill. It's just the way things are.
Hm. Mostly what I expected then. With one exception: I am in the EU so here $120K a year does not exist. Not even $100K is easily achievable although I've commanded the equivalent of ~$90K a year and will soon work for the same figure.
So I started wondering if I can pivot to the US market -- which was never a goal.
I appreciate your advice. Insecurity and the impostor syndrome can hit even super capable people (I've seen it). Your words help me reassert my self-confidence, and that's sometimes shaky. :)
Retirement, healthcare, and taxes eat up a significant portion of a US earner's pay.
The amount of money that actually gets delivered to a worker's bank account could be a little as 2/3 of their stated salary.
And many things cost more here.
It'd be a good idea to work the numbers and figure out what your take-home pay would be and how your expenses would change. There are some expat websites devoted to this.
I see many, many more developers lamenting the "requirement" of a CS degree to get a software development job than I see lawyers lamenting the "requirement" of a law degree for a law job or doctors lamenting the "requirement" of a medical degree for a doctor job. If it opens doors, and you want that door open... get the degree!
Because developers want it both ways... they want the benefits of a job that makes money while also not wanting the requirements that those jobs usually require.
CS Degrees from local universities can be had for far less cost than a 250k law degree and less time than a 13 year MD.
It might be hard to get a FAANG job, but it's not hard to find a $100k legacy code janitor job at any old Fortune 1000 in a flyover state.