Without any programming jobs on my CV, what is a good way to penetrate into the market? I've had job interviews where I did a bunch of coding challenges (and passed), but didn't get accepted because of lack of experience. I considered that maybe I need to do a bootcamp as an initial way to back my skills up.
(grain of salt, just my opinion, etc...)
* Don't do bootcamps. It's a red flag for me. This can be said for any 100% online college. (again, I'm just being honest). Community colleges are fine.
* You having a Github that you've committed stuff to often-ish will most interest me. I don't give a crud if you contribute to open source. But just the fact that you're coding is what I care about. Yes, I will snoop around and see how good it is. No, I won't care if your code sucks. (side note: if your code is actually good, than that's better than a four-year degree at a college I've heard of imo)
* Don't get discouraged. I remember I searched for a programming job for two years before I got hired. The 70-ish times I was told "no" didn't matter after the one "yes".
* Be honest about where you are at (not programming professionally). I've always been open to hiring people outside the industry for entry-level programming jobs.
* Coding challenges are beyond useless to me. I will concede that they are valuable to some.
Hope that helped some. 80% of the advice given here is helpful as well.
Good luck. Please don't get discouraged <3.
Here’s what I would do:
Make up a name for your own personal company and get a matching domain. Make a basic website with your domain. Under the resume/CV entry for this make-believe-company write that you perform contract work and list projects you’ve done.Frame the entry to implicitly infer they were paid gigs. Don’t lie about them being personal projects but don’t say they were for free either! In the date entry for the job type a value that spans a time value of your choice, say 3 years.
Congrats you’ve now been writing code professionally for three years. With your new contracting company you have the scaffolding to get new paid projects to boot.
Welcome to professional programming.
You don't need to do a bootcamp (and I'd argue it would not help at all) rather you need to ship something and then layer that with previous non-programming job experience to demonstrate that you can deliver things as part of a team. My greatest value (as a software engineer) is in the non-code value I bring to my team. Given the choice between 2 candidates, 1 with only experience as a software engineer, and 1 with experience of non-programming jobs, I'd be giving strong consideration to the person with a broader range of experience. Leverage your non-programming work experience to show that you can deliver value.
Regarding passing coding challenges: coding challenges are a very lazy method that companies use to filter out candidates. Passing a coding challenge is easy and doesn't mean much (they're also just as easy to fail) so don't focus on them at all. Your focus should be almost exclusively on interviews, and you should work towards giving the interviewer as much confidence as possible that you'll be a valuable member of their team.
Also, don't assume that levels (junior, mid, senior) correspond to the amount of programming job experience you have. If you can ship code yourself, you're already mid or senior level at most companies.
How do you find opportunities?
Go to LinkedIn, search for staffing companies, and message their recruiters letting them know you are available. They will ask for a resume. However, a contractors/consultant resume is different than a salaried resume. You are open to include projects you’ve worked on in detail without them being part of a “job”.
Do you have a portfolio? If not, a small simple one works.
Bootcamps won’t help.
Feel free to email me. Happy to support you through the process.
freelance work.
Sign up on Upwork.com (or similar). Do a bunch of contracts. Put them on your resume.
I did freelance work for years before deciding i was sick of constantly hustling for clients. Then I applied for jobs and said "here's all the things I've done" and they were like "cool. interview. yup. you're hired"
Also, pro-tip: make contributions to big name open source projects. Not only will it be great to be able to honestly say "yeah, I'm a Rails contributor" (or whatever) BUT it is also great experience for working with others. The large projects tend to have high standards and require good code and unit tests. You'll frequently get a code review and need to make some tweaks before it gets merged. Good experience.
My second career is as a software engineer. I did it by leveraging my domain knowledge and going into R&D -- looking at how to design software for journalists to help them be more accurate and faster. For example, how to draw the eye toward areas where mistakes are commonly made and how to handle mundane things automatically. (These kinds of things are important on a news wire, where competition is measured in seconds.) Eventually, it was evident that I knew as much about programming as the programmers and things took off from there. I'm now a Principal at the BBC.
(Edit: I've been paid to program now since 2007, so I'm probably well on my way to having a second 20-year career before I retire.)
So, basically, start where you are, using what you already know. That's more valuable than you think. Most programmers know relatively little about their users, and one who knows can be very valuable.
Next, consider getting a certification or two. For someone with no experience or formal education in development, it can help.
Finally, if you're losing out to more experienced candidates, then maybe consider applying to true entry-level jobs to get your foot in the door, where experience is not required.
1) Ship something. "App Stores" make that easy. Interviewer can easily download your app(s) and have plenty of material to ask you about during the interview.
2) Get hired into "QA" — preferably for a position that allows you to write (code) tests. Many of our "testers" where I worked moved into engineering when they were seen as willing and able to make the move.
Pointed advice, specifically for you.
1. There is no links to any of your code. If you are actually in front of a computer so much, surely you have somethings you can share.
2. Your writing is pretty good, but you don't write about any tech stuff. Since your writing is good, write about some of your programming projects.
2b. The Linux post for example is pretty bare. You talk about weeks of customization, but you never explain what customizations. Just that everything works now. This is a boring and uninteresting read, and doesn't inform me at all about your ability.
3. The blog also has sone questionable material, which is fine, however the most recent post where you talk about events that lost your job or nearly lost your job are pretty big red flags.
4. I see ~22yrs in the service industry. This is also fine, but all the above is amplified. People are innately more understanding of an 18 year old not having anything to showcase, but someone in their 30s and 40s is less likely to be hired just for their eagerness to learn. As a result, you need to really have some visable passion.
5. All new hires, and especially new juniors, on a team are initially a productive drain on a team. Your teammates spend time and effort bringing you up to speed and mentoring you. There is risk and effort involved for them beyond it just not working out. This makes it tricky for new devs. All of the above is so you have something to prove you are worth the effort.
They did try to route me into QA first, but I ignored that and none of them were technical enough to know the difference.
Freelancing is another entry point and it'll teach you a lot about shipping features/products. Take small jobs initially and scale outwards. Obviously you can't charge top dollar but I recommend listing your hourly rate at slightly below market and then during the negotiation giving a discount to try and seal the deal.
If you find yourself being forced to do very low priced/almost-free work, keep the projects really small to limit being exploited but still being able to build your initial resume.
It was hard for people to even consider my CV until I shifted focus towards those projects and freelance jobs. Still, the job search wasn’t successful until one person decided to “just give me a chance”. His point of view, which I completely agree with, was that even with a lot of programming experience, he can’t be sure that I’d like working in the software industry. Fortunately I didn’t mind the process and the rest is history.
If I had to do it over again I would first figure out how software engineers really do work, that is learn the different team configurations, how engineers collaborate with each other and product people, the different frameworks used (like agile, XP, plan-build-release, etc.). Then if you decide you still like it, either try to connect your past work experience with this way of working, or try to acquire such experience as others have recommended (contractor work, open source contributor, consultancy work, etc.).
I‘m CTO of a Series C stage scale-up by now.
There are literally hundreds of such jobs out there you can‘t really train for with obscure names, just go browse some listings from companies with a good culture and a way up. Show up with a technical enough mindset and an attitude of making things happen and you‘ll get that job.
If you just go a bit above and beyond of what‘s expected and ask smart people smart questions, you’ll kill it in no time.
Good luck!
1) With a friend, I worked through a bunch of tutorials of the current startup web framework (at the time, Rails).
2) At my non-programming job, I looked for opportunities to code things. I made some internal websites, utility tools, stuff like that.
3) I worked my way through Cracking the Coding Interview. This was pre-leetcode.
4) I applied to early stage startups that were desperate to get talent in the door. I tried two, and got two offers.
5) I learned an incredible amount getting thrown in. It was brutal at first and I get like I was constantly failing. But I had good co-workers who helped me over the hump. I learned an incredible amount. From there I was able to move up the ladder to the FAANG level pay.
YMMV, 2023 job market is not the 2012 job market, but if your problem is “lack of experience”, the easiest fix is to find a way to get experience at your current job. Most employers do not consider Bootcamps as equivalent to real experience either.
2) Ignore experience requirements, apply for everything (within reason). Some folks seem to have the idea that job descriptions are carefully hand-crafted by the hiring manager to present an exacting description of their needs--but this is rarely the case. Don't be deterred by the ubiquitous requirement for 3 years of experience. That said, don't waste your time applying for senior positions, either.
3) Seriously, apply for everything. Many (if not most) of your applications will never be seen for a human being--particularly when applying for entry-level jobs, which see the highest number of applicants. Even when I'm fully qualified for a job, I assume that I'll get a call back on ~20% of applications. In your situation, the percentage will be much lower, probably less than 5%. Spam accordingly.
4) Track your applications in a spreadsheet, and follow up with a call to HR for the most promising ones. Tell the HR person that you know you're the right person for the job, and politely ask them to give your resume to the hiring manager. If you can find the hiring manager on LinkedIn, shoot them a (brief!) message saying that you've applied, why you think you can do the job, and include a GitHub link. Touchpoints like this elevate you from "just a name on a resume" to "actual human being" in the mind of the hiring manager, which is invaluable.
5) In the immortal words of Barney Stinson, "Ambition is the enemy of success." For your first job, just get a job. It will be infinitely easier to find the right job after you've got some experience on your resume.
6) If you get an interview and don't get the job, hit up the hiring manager on LinkedIn and ask if you can take him to lunch. At lunch, tell them that you've gotten a few interviews, but haven't been able to land a job. Ask for feedback, and make it clear that you aren't asking for politeness but for brutal honesty.
1. You can answer basic coding questions 2. You’re able to work on a team 3. You have some soft skills to work with customers to learn about what they want, so you can build it for them
The first step is to get that interview with the above resume. Then when you interview be sure to be transparent about your experience and interests and your desire to continue learning. If you’re working with _good_ hiring managers this is the most important thing to them.
And some colleges/universities have options for students outside of a Bachelor's degree program. These might or might not teach better than a community college. (But "Harvard Extension School", for example, will probably get past more resume screeners than a community college.) Both might teach you more than a bootcamp. And, again, look for something set up for internships, or with relationships with specific employers.
Beware that the field is absolutely flooded by everyone in their dog, and it's hard to distinguish yourself. I suppose the upside is that there's so much not-so-stellar work being done, that a newbie could their foot in the door at a typical place, survive while they contribute, and grow from there.
But this flood also means that people hiring will reach for a kind of gatekeeping (to narrow down the pool of candidates, and to try to cement themselves as a superior in-group), which, at the moment, means you probably need to practice for Leetcode hazings.
If you have a lot of time, doing open source is an option to eventually stand out, but if you do this, pick something in a space where people are hiring. ("I wrote a JIT compiler for a dynamic dialect of Haskell that targets GPU" wouldn't even get you considered for 99% of jobs, and most of the remaining 1% would insist you regurgitate Leetcode algorithm as performance art so they can "verify that you know algorithms" or so that they "can see how you think". "Yes, I looked at your GitHub, and it didn't have many stars." :)
Also keep in mind that Copilot-like tools integrated into IDEs are going to let a lot of low-skilled developers launder open source code, to pass off as their own (justifying it as "I let the tool do the boilerplate, so I can focus on the more difficult, higher-level problems"). I don't know how the near-term evolution of this will play out, but it might be best as a force multiplier for low-skilled, low-quality work. You might want to be thinking about how to be on a path to eventually stand out for high-quality work, for which companies won't trust this generation of automation (even if they were willing to gamble with a Copilot-induced GPL lawsuit, and VC due diligence doesn't start smacking down for this).
Long story short: You would very likely have a decent shot at an offer.
Now as I mentioned we don't have a branch in Sweden (and EU law would require one if you were to work for us remotely from Sweden), so I'm not here to advertize our firm. But maybe you can find similar companies? I know of at least a handful in Germany, so I assume there must be some in Scandinavia, too.
[0]: "Consulting" as in "We tell you how to do it and then we do it for/with you".
Example: https://www.knowit.se/karriar/trainee/
There are at least 5 such programs.
While you are applying and waiting, I also recommend to pick a tech stack that is attractive for employers in Stockholm.
TypeScript, react, net core web api (c#) and MSSQL are the only tools you need to master in order to become very attractive to all major employers here. Start learning these and publish your learning project on GitHub and you will be well on your way. Heck, when you are done building your asp.net core webapi+typescript react frontend project (a basic todo app, something that demonstrates CRUD (create, read, update and delete), contact me and I will get you an interview.
If you live somewhere with free or cheap public education then this might actually be easy. And even though I never finished the program (due to life reasons, not my intention) that first year really helped fill in some low-level gaps in my knowledge.
So! Not good advice but it could actually help if you've tried everything else.
Another option is to figure out an area that interests you and build something interesting (even if simple) and release it online. It's ok if it's released for free with no way to monetize it, your goal is to show you can program something non-trivial from 0 to 1.0 (both in terms of skill and wherewithal).
I learn program to make my own products. I made several working products but they didn't work as a business. I need a job to survive.
I tried to use Upwork to get a gig. There was a team hiring enginners. I showed the tech lead my repo and my working web apps. He is impressive. I get hired.
There are some luck involved. It turns out that my tech lead is not a good programmer. Maybe his lack of experitise is why he hired me. I don't know. But it helps to have working product and public codebase to show.
Wish you good luck!
I have to think that human nature is still somewhat the same and that kind of opportunity still exists. Probably a low percentage play, but wanted to share none the less.
What I did find was available were freelance gigs. I found these on job boards and started to build out my experience with individual projects. I also went to networking events and ended up getting a few jobs this way as well. I also did some free work for non-profits to round out my experience. I did this freelance work while I was in school and for about a year and a half after I graduated.
It took hundreds and hundreds of hours and hundreds of inquiries to get my first few jobs. It's a numbers game, but you still need to be competent and confident. After my first few freelance gigs I was "experienced" and was able to fill up my resume with the projects I worked on. I did good work so my clients introduced me to their friends, customers and clients and I got more work. One of my clients extended a full time offer to me, so that was my first FT job out of school.
Putting on my hiring manager hat for a moment, I really don't want to hire someone with no experience unless they are exceptional. Contributing to an open-source project would count as experience, but I would prefer experience in a business setting. Personally, I don't care as much about a degree.
To land your first freelance gig, I 2nd the advice about contributing to an open-source project, setting up a website portfolio and having business cards printed. You're trying to show your competency.
I was in your shoes year ago. - I was finance controller in huge corporation - I started coding in 2015 - Now I work as full stack developer
What I did: 1. The hardest thing: I was working full time in finance and in the meantime I started on upwork (it was hard..) 1.1. I managed to use the upwork conctatcs to be freelancer on my own 1.2. I remove finance work from resume as I had 2 years of experience in different companies (The owners didn't had any issue to me putting this as a experience) 1.3. The resume was literaly written like that: Compan XYZ, Developer; Company XYC, Developer; <- I never metioned it was a freelancing contract...
2. I start applying for a jobs to test out my skills 2.1. I quickly learn how to solve coding test and what to say during interview (to be honest I learn more in this period than anything before) 2.2. I got some job proposals in start ups but never took it as the rates were very low. I had briliant idea..
3. I use LinkedIn to conctact directly people and get job with rate I was dreaming about 4. I left the corpotation and I provide serivce to 2 different companies and I was never happier. (that was also hard the leaving process and constantly provide service) 5. 11 months later (nowadays) I still provide serive to 2 different companies but plan for 2023 is to be only on 1 contract and focus on family.
It was a long journey but definitely worth it and I had to admit I had a great support from my wife. Imagine doing full time job and learn/ or do work in other times. I want to point out it was challenging but definitely worth it.
[1] Which is something supposedly senior engineers fail at all the time in interviews. Even though the elevator design problem is literally a cliché now I still see supposedly senior engineers completely blow it because they can’t think about the internal and external elevator controls in terms of events.
Applied at a bunch of places even though I had zero work experience or matching degree credentials. What I did have though were a bunch of side projects that I had worked on...
Interviewed with some companies and found out that I was actually pretty competent. That process and working at said companies gave me the confidence boost that I needed to know I wasn't fully kidding myself about my skills. Rest is history.
I feel like if you love it as much as you say you do, you should probably have similar projects ready to show. Not these side projects for the sake of getting hired or bootcamp type demo things, but things born out of your passion.
Take this with a grain of salt for today's age, but this is what I did back then (10 years ago..showing my age here haha).
To address these concerns, consider contributing to an open source project.
Many of the hurdles a candidate has to clear to get a job as a software engineer are intended to determine whether you can actually program. Ignoring the effectiveness of these hurdles, the point is that you need to demonstrate the claims on your resume/CV. If you contribute to an open source project you are putting your work out there for everyone to see, including how you actually work with other engineers and how you deal with critical feedback about your work.
There is a lot of software engineering that is not interesting or attention getting but it has to be done. Often, this involves learning about things that you would not have bothered with if you are a hobbyist. By contributing to a successful open source project, you will be exposed to ideas that you might not otherwise have encountered.
You can then parlay that into a software engineering job or even a more ambitious SaaS.
You could go to a talent / recruiting program, there are usually some university affiliated programs that have ties to major tech companies or advertising firms.
Of course there are internships as well.
All of that is fine, but anecdotally I found it was far easier to just start doing weird / fantastic things with the internet. Experiment, have fun, create wacky things and blog / YouTube / TikTok about it (full disclosure there was no TikTok in my day). Get the word out that you do this stuff and funnel everything back to a portfolio page that says your available for contract or hire.
Additionally, start attending events where there are other “famous” devs doing what you want to do. Get to know the people and participate. Might take a few years, but if you’re motivated you can network your way into something.
Yeah it’s a ton of work - but that’s a barrier to entry also potentially highly lucrative.
There's a big difference between being good at hobbyist programming and being good at it as a job of any kind, but the closest approximation would be contracting. That's because as soon as it's something you have to do rather than something you just want to do, the entire dynamic changes.
You can also participate in open source projects. If you have projects from your tinkering that you don’t mind open sourcing, getting that out on github with some documentation explaining what you were trying to accomplish helps. You can spend a little bit of a time answering questions on Stack Overflow.
If you are using more niche languages (such as Elixir), spend a little time answering questions there as well.
Get links for that all on the CV.
Alternatively I think coding bootcamp or community college classes are a great way to show initiative and get interviews.
But ... be prepared at least initially to take a junior position. This is because we may need to train you for working in a larger group and you may have a bunch of bad habits. Like not writing understandable code, not writing good (or any) commit messages for other members of the team (or even not using version control at all).
The flip side to this is that junior developers where I work can be promoted very quickly. One recent hire went from a junior software engineer to principal (2 steps and a substantial pay increase) within a year.
Also while you're waiting to interview, please consider contributing to open source projects!
Next up, is being able to describe situations where you worked on a team doing software development, and how you handled things like unclear specifications, irascible colleagues or constantly changing priorities. Software development is a team game, we need to see how you fit into that team.
Lastly then is your technical abilities, and this might be assessed at more of a system level than a coding level. If you've got this, but miss the other areas then you'll find it harder to progress to an offer. Just my two cents from sitting in on plenty of interviews over the years.
Maybe your behavioral interview didn't go well. Maybe you're asking for too much money and a manager can hire someone with years of experience for the same pay as you.
If you got interviews and passed coding challenges, I wouldn't focus on the resume because a resume just gets you in the door. I would not take it at face value that you weren't hired because of lack of experience. Rarely do you get an honest answer and that could just be a cop out for "he's too hard headed" or some other reason that can get a manager in trouble.
I guess you can skip education, but where I come from, it's hard to get employed without previously working some place else, which is why most people do related work training (usually unpaid or poorly subsidised by the employment office). Educational institutions usually tightly knit into the industry with some companies running on a revolving door of students.
One other thing. Having a good github presence goes a long way. Make pull requests, interact professionally. People interviewing you will be reading all that.
If I had to go back, and had the time/money, I think I would take some time to get involved in opens source and try to build up at least a bit of reputation in some project. That’s about the closest thing to experience I can think of and I’ve actually still consider doing that a few times to break into new domains. Ofc that’s a lot of involved.
1. Being able to work with version control — pull requests, branching & merging, etc.
2. Being able to step through and debug code and write tests that expose low level bugs.
3. Being able to write defects clearly and precisely that others (technical and non- technical) can understand.
Sadly, most interviewers won’t be looking for these skills:
1. They’ll either be looking for someone who memorized (or can guess) their chosen coding challenge trivia.
2. They’ll want someone be who agrees with them and makes them feel superior.
3. They’ll want someone whose resume and demographics ticks the most boxes on their list.
The number one thing you should do is network: get out there and meet people (in person, not just over the Internet.) Here is an ancient secret of success, handed down to me from my father, that I now give to you neontomo:
STP ·)(·
What does it mean?"See Twenty People, Belly to Belly"
(Normally you draw the belly buttons closer to the belly curves, like on a napkin or something, the dots are belly buttons, yeah? Anyway...)
See twenty people belly-to-belly every day. Every day. You'll have a job in no time. :)
I can't tell you whether a bootcamp is a good idea without understanding what you know and what you're looking to learn.
The organizations that tend to have an open mind towards people like you are the ones that can't afford not to. Small companies, non-profits, agencies, underfunded startups. Your advantage is your cheap and you to dive in and learn new things.
It gets much easier after that first job.
How I got back on the dev track:
1. I picked up any gigs I could from craigslist, just to be able to get a recent job from someone who would give me a reference.
2. Then I took any contracting job I could get, again, focusing on getting experience.
3. From there I was able to get a full time job and leverage myself over a couple job hops back to where I would have been had I not left programming for a few years. I think that something similar would work for bootstrapping a programming career out of being a hobby programmer.
I had used a few other languages before but hadn't done much in the way of web stuff (this was almost 15 years ago)
I'd say try to find places that are looking for people that know things that you've been playing around with. Bring code to show them and be prepared to demonstrate what you know but don't pretend to know anything you don't.
Good luck!
Armed with the knowledge, you can build a portfolio that is relevant to the employers. Prepare to have some stories to tell how you overcome the obstacles: Just like what others point out, you need some evidence of get things done.
If you're more interested in startups that seem to require more practical experience, you'll probably need to do some personal projects or contribute to open source.
In my experience hiring practices wary a lot between different types of companies. Getting a job at a FAANG type of company varies from getting hired by a local web agency, a consultancy, startup or just being hired to run the company website.
HN tends to focus a lot on FAANG and well financed startups, but there are a lot of very different programming jobs out there.
On your end get into interviewing shape -- aka -- algos/datastructures and all that leet coding/whiteboard nonsense.
Honestly, one's network is the surest fire way to get hired anywhere in my opinion.
Unless a specific job you want needs a specific certificate, don't pay for them. Your employer probably should pay anyway.
Make a nice portfolio of projects, or contribute to open source projects. That's your resume.
You'll always have trouble getting hired in government or big companies without a degree, tho.
A coding challenge for 1 hour is the minimum. It isn't a real system that does useful stuff. What can you show them that is real?
Any project that is data-driven, includes authentication & authorization, and a clean UI.
All with minimal frameworks, and in public eye like GitHub so they can see code quality.
I think that paired with a good personality would be a home run getting a job.
It has 2 benefits:
- it shows that you can code something
- it shows that you can finish something useful
As most of the time a gamedev is only 20% fun and 80% debugging or struggling with the concept...
And the ability to ship something is one of the best skill to me. The rest, can be learned.
The other way around applies too: if a job simply needs you to show them that you can do the work, a portfolio can be enough, just like getting a contract job with a supplier can be (technically that'd be like a portfolio with internal stuff they already know about).
For jobs where you primarily need to be able to do the work:
- Showing off technical skills in various ways and shapes
- Showing off interpersonal skills in various ways and shapes
- Build up experience in non-hiring areas (communities, FOSS, contract work)
That last bit can be hard since contract work usually doesn't allow you to talk about what you did in detail.
One thing I'll add, having sit in many hiring committees over the years -- in addition to open source projects; I've seen some interesting work that was done by candidates as a volunteer at a non-profit.
Or otherwise build your own product open source or commercially for experience and who knows it might take a life on its own.
- Have some good code on GitHub
- Work for a startup, they are more likely to take chances on you
- Prefer working on-site if you can. Working remote is great once you have learned how to learn
Good luck with your search.
Companies have become much more accepting when it comes to non-traditional hires, in the past 5-10 years.
Having said that, the job market wasn't as rough back then as it is now.
What a shame. I hope whoever told you that keeps their advise to themselves.
Pick one.
Too much screen time if you do both.
Working on some simple AI projects to add to my portfolio as a start. OpenAI APIs are pretty easy to use.
100 resumes out, 2 interviews, no callbacks.
Dont' let anybody tell you its all roses out there.
Build something, anything, and put it in the wild. Make it open source. Repeat.
Startups will hire you.
1) Have you delivered something with business or monetary value? Can you explain it?
Hobby programming is great, but I’d hope someone coming from another industry had been able to identify a problem and used their programming skills to solve it.
2) Are you familiar with the larger software engineering toolset and mentality, or just programming.
Planning, estimating, architecture, design, testing, continuous integration, continuous deployment, logging, monitoring, infrastructure, etc… A lot of this falls under DevOps or application lifecycle management these days.
I wouldn’t expect a entry level engineer to have expertise in everything, but I would expect them to be know the basics of most or all of them and why they are valuable. Being able to talk to why CI and automated deployments made your life easier or how a good logging framework and implementation let you figure out an error are good signs you are really into the whole of the profession and not just the fun problem solving parts.
3) Convince me you are interested in the boring parts. In my experience most of being professional software engineer isn’t nearly as fun as hobby projects. Do you really want to do this when you are implementing a mildly customized data grid for the 100th time to enable someone to approve or deny travel requests? Or mapping 150 fields from one data source to another, each of which‘s column names are just different enough to need it’s org definition. Because ultimately, we are solving problems with business value for customers/partners and often the best way to answer those problems is… boring.
4) Most importantly, show me you aren’t a “hobbyist developer trying to become a professional developer”. I want to know you are a professional developer that hasn’t had that title yet. If you can solve problems with software/programming at your current job, do that and tell me about it. Build a product someone, anyone else uses.
If you can, move into a programming adjacent role (product owner/PM/analyst/etc) in your current industry.
Others have knocked bootcamps as a bad option. I’d say it depends. My company runs a training program for military veterans and it is wildly successful, but it also focuses HEAVILY on job placement. I also know a local boot camp in my (small) city that seems to have a darn near 100% placement rate due to an excellent network with local companies. If you find a boot camp with a strong reputation and evidence for high placement rates, it might be worth it. It’s worth noting the the veteran program is free and the local boot camp was cheap as they are programs looking to produce qualified employees for their sponsors rather than money making enterprises themselves.
Network (the interpersonal kind) heavily with other professional developers. Go to meetups. This isn’t so much to find a job directly from one you developing network (although that happens!) but to become familiar with the culture, learn what is being talked about, and learn about opportunities.
Finally, I’ll echo others and say you can go the route of getting a CS degree or similar. If you are going to work in the industry long term I think it’s useful- not only does it fill in a lot of gaps that often only become apparent years later, it also helps with “checkbox” resume screening, gets you access to a career services center and is a nice shortcut to large professional network. Let me put it this way- I’ve never not responded to a student or alumni from my university that has reached out to me. It’s a big commitment though- ideally find a program that caters to working professionals but is affiliated with a large / strong alumni network.
Good luck!
I think you have a few possible paths (many mentioned in sibling comments):
Ship something at least slightly novel of your own. Could be a web site, a web game, a mobile app/game, or something open-source that you've kept at for 6+ months. This will both sharpen your own skills and give an interviewer something concrete to talk about.
Complete Advent of Code. This isn't quite as impressive as the previous, but if someone has completed all of an AoC, that's a pretty positive sign for me. (Note that it's quite possible to cheat at AoC, making this not as strong a signal.)
People hate to hear it, but grind leetcode. Get to the point where 95% of leetcode easy problems are truly easy for you and where medium ones are 50/50 within your grasp. Not only will this sharpen your skills, but it (like AoC) will force you to work through some problems that are initially difficult for you. Just like lifting heavier weights, this exercise will make you stronger as a programmer.
Find an open-source project that has some beginner-friendly tasks. See if you can complete any of those. This will both give you confidence, but also give you a sense of "do I really want to do this as a job?" (A lot of programming is, IMO, the best job in the world. A lot of is...not...)
Keep at the applications. Ask for feedback from failed interviews. Sometimes the true answer is just "we had only one spot and the person we hired interviewed more strongly"; OK, only sensible thing you can do is keep interviewing. Other times, you might get a piece of feedback that really helps.
You could consider pursuing some (charged) AWS certifications. These aren't a major positive signal for a lot of employers, but they're a modestly positive signal for some and for a career-changer, they're probably a better signal of seriousness than a more traditional candidate.
If you find none of that lands you a role, depending on your location, age, and life circumstances, see if any companies near you have internship programs and if one would consider hiring you into their internship program.
I would only do the QA-first route if that was the very last option for you. (It's probably better than a bootcamp, but it's close.) Companies that hire you into QA won't want to quickly lose you from QA into coding. I have a few devs on my team who have gone through that route in our company, so it's definitely possible (and they're good), but I think it's on average a longer road than waiting and coming in the front door to software.
* 1 skill I really need - a language or a technology
* Attitude
I like to work with nice people and I don't care how "good" an arsehole is. So I'm looking for someone with give and take that my team would enjoy going for a beer with (or just a j20 or whatever) and someone who is interested in programming and computers generally - not doing it just for the money. They must have a little flexibility - be able to take some suggestions and yet also come up with arguments for what they think is best. You have to be able to review code whilst being very nice and not insisting that everything should change whilst at the same time pointing out the critical things that probably have to change. Egos get bruised so social skills help a lot.
I do have a bias towards degrees because I've met experienced programmers who do silly things just because they've never heard of "Big O" notation and never seen a parser generator in their lives so they think they are up for writing parsers manually. Or the one that thought he had sped up an MD5 algorithm by 1000x....... I just feel safer if I'm dealing with a person who groks some of these things but in the end I've accepted people without degrees who just gave me a good feeling about their openness to learning and general reasonableness and thus far in my experience I was not too wrong when I went with that.
I don't care about quickly programing some exercise but I want to give them code to write before the interview so that we can talk about it like a code review and we can see if they understand the ways we might criticise it or suggest improvements themselves. I want to see someone writing stuff that I would feel reasonably happy about maintaining not something that is so clever that everyone is at their limit of understanding when trying to read it.
I've met people who make a lot of effort but don't think in terms of algorithms very well. Their code is full of logical flaws but they are really great at reproducing bugs and doing other technical things - they possibly shouldn't be programming but maybe QA or something similar.
I've met people who can write algorithms but are very quick to give up when they hit a difficulty. They call out for help too soon so I ended up helping them all the time. Often the only real difference between me and them in some situation was that I felt I could not give up because there was no-one after me who could do anything for them if I didn't. I like people who struggle a bit before asking for help - they end up understanding the answers.
I'm not too familiar with bootcamps but I think I value someone having experience with debugging - with working out something that isn't going as it should or which they don't understand well enough to just know the answer but they set out in a logical way to try to work out what the answer is. This isn't strictly about programming but sort of seeing if they get the idea of divide and conquer etc.
I don't want to have to explain why code without tests is useless - and that's something that a lot of "experienced" programmers don't agree with - a bad attitude to that turns me off instantly because I don't want to have to fight the battle to change their minds.
Other than that, you could try building out a successful product or freelancing for some time.