So why leave a job like that?
It's mainly the pay but I also sort of fell in love with software this year. I started learning JavaScript last year, learned about databases, servers, React and Linux stuff. Loads of really exciting fun stuff!
So now I don't know how to transition to a software role. Many places I apply to want people who have experience in software development or they want to hire a junior for some super low pay. I can't put the words "software developer" on my resume but I have written a lot of programs for my classes and in hobby projects.
It feels like nobody looks at your GitHub profile though. I've got lots of projects I've done in the last year. But maybe that's just the grind? Just need to apply to enough places?
That's because you are a junior developer and you're only worth a junior engineer's pay. Sorry if that's harsh, I'm a bit blunt; but it's not a value judgement or a criticism, it's a statement of fact. Go work at a place that pays you a junior engineer's salary and learn the industry skills you need to earn a better salary.
>I've got lots of projects I've done in the last year.
That's really great, and it'll give you a leg up on the other junior programmers who are applying at places. But projects don't confer industry experience with a team, which is what places are looking for. It's a world of difference between "I've done projects on my own and I can complete them," and "I've worked with engineers, product managers, managers, designers, non technical people and together we have shipped software." All of the stuff you're doing is setting you apart from your competition, but realize your competition is for junior roles.
To answer the question:
>Is there hope for me?
Absolutely. You seem smart and driven and capable of communicating. In my 14 years of coding professionally, I've worked with people who studied communication, linguistics, a foreign language, creative writing, IT, electrical engineering, mechanical engineering, electrical engineering, music composition, etc. Some of the best engineers I've worked with had no formal training. It's totally doable. Being able to teach is a really good indicator of at understanding complex issues and being able to communicate them, all valuable skills for a software engineer.
Also, don't get discouraged during the pandemic. A lot of places are buckling down and if they do hire, it'll be an experienced person who normally wouldn't be on the market but is because of the virus. It's gonna be tough for junior engineers for a while until the economy spins back up.
Truth of the matter is that you're going to have to do the junior role for a year or two. However much you think you've learnt, you're going to have holes in your knowledge if you've not done it professionally. For example around reliability and handling edge cases, making things work when the underlying platform is buggy, etc. Good news is, if you're good at it you'll progress up the ladder quickly.
I'm self-taught, and I'm pretty good at what I do: at my first job I was already teaching my boss things he didn't know (I'd been programming for about 5 years as a hobby at that point). BUT I also made a ton of stupid mistakes. 3 years of professional experience on (broken up over a few different jobs, with breaks and Maths & Philosophy degree in between), and I'm leading a small team. But I definitely needed particularly the first year to fill in the gaps in my knowledge before I was ready for a senior role.
> I can't put the words "software developer" on my resume
> I have written a lot of programs for my classes and in hobby projects.
It sounds like you might be selling yourself short. You might not have experience as a professional software developer, but you have experience developing software nonetheless.
Don't forget that your resume is an advertisement. You should absolutely highlight the experience and knowledge that is relevant to the position you want. People spend very little time looking at resumes, if your knowledge of databases/servers/react/linux/python isn't immediately clear in the first 6 seconds of reading, your resume will likely be discarded.
So it's totally doable.
> Many places I apply to want people who have experience in software development or they want to hire a junior for some super low pay
The truth of it is that you'll probably have to take a junior job first. Even with a great GitHub profile, there is no easy way to know if you can actually do it, since there is no way to really know how much of your Github profile you actually created.
The good news is that if you really are good, you'll get promoted quickly (or be able to quickly move to a more senior role elsewhere). But sadly, you'll probably have to suffer at least a year in a junior role to "prove yourself".
It’s true you are junior in programming skills as you acknowledge. But you also talk about other experience: mech e, modeling, electronics, and teaching.
You may enjoy a job that values those other skills in addition to programming. E.g. a robotics company; car startup; a company like Coursera or Udemy or Kahn academy which are educationally oriented (the three have very different models) — even LinkedIn’s Linda division.
In these places you can probably add value beyond what a mere junior developer could, and after being at a place like that for a while you could go anywhere.
Good luck.
I think there are a number of factors that cause this:
1) Even juniors get paid quite a bit compared to many other professions. 2) Software engineers have an uncanny ability to be worse than useless. A bad software engineer means you need several other software engineers to clean up their mistakes. 3) Given the above points, generally speaking, the companies that actually can afford to take a chance on someone without a proven track record are also the ones that don't need to. FAANG companies can attract top talent using their brand and deep pockets.
I think 2) is somewhat misguided, though. The ones making terrible, costly decisions probably aren't junior programmers anyway.
Jeff Atwood has a really good post that I think is relevant: https://blog.codinghorror.com/nobody-hates-software-more-tha...
Re: your post in particular:
> I can't put the words "software developer" on my resume but I have written a lot of programs for my classes and in hobby projects.
This can certainly go on your resume, just don't misrepresent it. A common pattern I've seen is for folks to have a "Projects" section on their resume that mostly takes the place of what they would list as their relevant employment. If people don't look at your github, put your github where they do look.
[incoming potentially helpful, very self-indulgent summary of what that looked like for me]
I was one of those teenagers who always wanted to be a web dev but ended up majoring in biochem because I felt that, while both were interesting to me, self-teaching web dev was working for me and it's not easy to get your hands on centrifuges.
I made sure that my masters (experimental medicine) would encorporate wet lab work, as well as a big machine learning part (since that got me closer to code) and wound-up falling in love. After I submitted my thesis, I applied on a lark as an ML dev after I saw an ad on HN for an oppening at large-ish software company. This was a scary time and I was sure I wouldn't get it. The hiring manager had a PhD in CS, it was a Scala job and I never wrote a line of it, and I had a hard biology background. But I aced the take-home technical they gave me and snagged the job.
I'm now doing my PhD in Electrical Engineering to get that formal background in ML and could promise you I never knew exactly how I would make this diagonal move, but always felt it was likely.
[how I see that drawn out anecdote to apply to your case]
You have a background in 3D modelling and FEA, and I would suspect (though may be wrong) that there are plenty of positions that are looking for tools development for e.g. Engineering or Animation (the Autodesks of the world). Do you think that's something you'd be interested in/can learn? You seem to be a self-starter, which is key in this sort of thing.
Include in your search positions that don't have developer in the word but are technical roles in e.g. 3D modelling that would require you or benefit from you coding now and then.
Finally, the GitHub stuff is largely ignored from my understanding. It's great to give back to the community, you can meet great people (some of them who hire people), but short of that it isn't really an application boost.
Best of luck!
You can absolutely get a job with Software Developer on your resume, but the first one is the hardest. I ended applying for 3-5 jobs per day until I got hired. I applied for the job that hired me over a week in. don't be discouraged, and remember it's a numbers game for sure
Yes, but you might have to adjust your expectations.
It is not quite clear from your question whether your gripe is with having to apply for a junior role or that the pay is bad?
If it is the former: Why do you expect to enter a field above an entry level? From your self-description it does sound like you are in fact at junior/entry level (not meant negatively). I would expect you to grow out of that level faster since you do have prior working experience in a different field and maybe already in the interview process I'd put you higher. But I'm not going to take your word or cv for it.
If it's about salary. Depending on the area, I don't think there is much if any shortage of developers looking for their first jobs unlike at the more experienced levels. It can be that you face quite the competition for the jobs you are applying, many of which will look better on paper(especially from the perspective of automated resume scanners). So I think the options are:
- Keep going with the grind, finding the first job is probably the hardest. It gets a lot easier after that.
- Consider just taking any job to get the foot into the door, even if it is not sexy and not well paid. Having say 6 months industry experience as a developer can already easily outweigh all your github projects.
- Try to find a job, where your specific background gives you an edge over others. For example instead of going straight into a developer job, you could find a role as a mechanical engineer that can code and from there slowly transition into software engineer. Or a developer job in a company that deals with mechanical engineering one way or another. Domain knowledge can be a huge bump in hiring considerations.
Lastly regarding github profile. What recruiters will do varies a lot. Some really like looking at them, others never do it out of principle. Personally, I never look at profiles, I only look at specific projects if they are mentioned in the cv / cover letter with a description of what it is and what the candidates contributions are.
Hiring boards will often be concerned that the person applying doesn't have an engineering level degree, and may not have the intellectual horsepower to do the work. (I'm not defending this - I'm saying it is a thing).
You have an ME degree - which, say what you will, is, intellectually speaking, a lateral move, as compared to software engineering. They are comparably hard.
This is great! You won't get dinged nearly as hard, which will make your transition vastly easier.
You will have more opportunities than someone without an engineering degree, so that's a bright spot on your resume.
Do you just have code in Github or do you have an app running somewhere that people can actually interact with as well as the code for it on Github? If you don't have something live, push something live. Use Heroku or some other simple hosting solution if you want to get it live quickly.
You can also try to get involved with an existing substantial open source project. Try fixing a bug or adding a feature. Get advice from the project maintainers and work from there. That's as close as you can get to work experience of collaborating with a team. Get something merged to an OS project. And then when you interview you can talk about that experience so the company knows you can work with others to get production code shipped. You might have to log into IRC or Discord or send a bunch of emails to get started with the kind of direct communication necessary to do this. But learning how to take that kind of initiative is valuable in a company setting as well. If you do good work those open source maintainers could even become leads or references to help you find a first dev job.
Lots of people change careers into software development with less technical backgrounds than yours (I've met former actors, artists, lit majors...). You have much more than hope, if you're persistent you will find the job you're looking for, it just takes some hustle.
I have many friends who have arguably more successful careers in tech, they did not finish college. However, they are also incredibly talented and driven people (more so than me in many cases). If you don't finish school or don't have formal education know that there will always be certain forms of "high risk" or "critical" work that no amount of effort will qualify you for in the eyes of the people hiring you. Outside of that, the world is your oyster. But know that the lack of a degree will put you in the back-seat for raises, new jobs, and always be used as leverage AGAINST you. The reason I finished college was I knew I wouldn't have the drive / energy to always go up against this and knew that I'd never be okay knowing that something like that could've closed an unknowingly large number of doors on my career or startup ideas. It sucks but it's reality.
Companies like Apple and Google saying they "don't care about education" really just means they're excited to have another reason to pay employees less.
When I graduated I got a job writing computer programs for the Psychology professor I'd done my senior thesis with. After a couple of years I got a job as a software engineer with a defense contractor, and the rest of my career was spent working for defense contractors.
So it is possible to get a job as a computer programmer without a computer science degree. I would think that there would be a lot of software involved in Mechanical Engineering applications, and your degree and software experience would make you a good fit for those kinds of positions.
On a side note: I've often thought my background in Psychology was a big help in in dealing with my co-workers.
In well over 20 years I have never once had my education (or complete lack of) be an issue. I don't even think I was once asked about it. So don't worry about that. I suggest to up your game and build something with commercial potential. Go through the whole life cycle. Release it. Pick a domain you know (education? 3d modelling? Electrical prototyping etc.). It's possible you might luck out during the process and land a job you like (or decide to take a low paying junior role), but if you don't, by the end of it you'll have a complete project notch on your proverbial belt, and your chances will improve.
But I was confident then as you should be now, that if I stuck around and pursued improving my skills as I worked over the next few years, I’d become a valuable asset that lots of employers would gladly hire. In fact, I did. I eventually had recruiters contacting me!
There’s a lot to learn and it simply takes time and a commitment to doing good work. If you are excited about programming, then it’s a bit like a dream come true, that is getting rewarded for working hard.
> or they want to hire a junior for some super low pay
probably still better than what you were making in another field.
get a recommendation for a recruiter from another developer in your city.
I accepted what you would call a "super low pay" though, and I think you should too.
I think it is ok, and actually fair in most cases to accept as low pay as a junior development for your first job. Once you are in, you can get promotions/raises on your company or apply to different jobs for promotions/raises.
When I left, because I was still living overseas, I applied to many remote jobs with no success so I just started doing lots of freelance work on Upwork. Essentially I got paid while I was learning.
The pay was lousy and a couple clients were terrible, but two years later I landed my first ‘real’ software job for a startup in SF doing Rails and React.
So yes, it is possible. If I could make it so can you, especially since you have a degree in engineering and I had no degree at all, I don’t think it will be as hard for you.
Of course, as others have pointed out, your pay will be in line with real world experience, but it will go up over time.
Looking back now I can see why it was hard for me to break in. The factors holding me back, in descending order, were:
1) No industry connections 2) No relevant experience (.NET didn't count in SF at the time) 3) Wasn't really "plugged in" to the prevailing tech culture 4) Nobody had heard of my university. 5) Frankly I wasn't very good.
5 almost doesn't count; very few people are any good when they start their career.
The single most significant factor (the dominating factor, really) was simply a lack of connections. Nearly every significant job I've ever had is a result of a referral from a friend, and this is true for basically everyone that I know. I have coworkers now who not only have no CS degree, they just don't have _any_ degree, and we happily hired them on reference.
I guess my point is that yes, it'll be tough for you at first. Not having those magic "CS" letters will definitely hinder you. That said, it's not an impermeable barrier. The best thing you could do for your future is make friends in the industry. The second-best thing (in my opinion, others may not agree) is to participate in a well-managed Open-Source project. Not to burnish your resume, but to learn the processes people use to collaborate - source control, issue trackers, code review practices. That stuff doesn't get taught in CS programs either, but it's essential knowledge. Having it will help get your foot in the door.
Skills are important, to be sure - once you get the interview you still need to be able to successfully sell yourself - but IMO getting the interview is the hardest part when you're new.
You are going to need to sell it though, you need a good looking website highlighting all your projects, link to github and keep your github clean.
The way I started was doing freelance projects until you're confident enough to move into enterprise ( somewhat ironic because freelance work typically involves more understanding of every part of the system ... and better skills ).
Do projects in the language/technologies that you want to work in and highlight those.
Be fearless. Don’t waste time worrying about what you haven’t done and start worrying about what you can do.
Grew up doing web dev "as a hobby", basically self taught since middle-school. It was my passion, but never thought of pursuing it as a career or anything. Went to college, got a EE degree. Partly because parents thought it was generalized and better able to land me a job out of college. I partly agreed. Went to work at for gov't contractor and hated it. I would still code on the side when I got home. Left after a year and had my mini quarter life crisis lol. Decided to apply for a few jobs around me with zero experience in the industry.
2 interviews stuck out to me. First one was an a small agency. They gave me a coding test and I realized that I know a lot more than I thought I did and shouldn't imposter syndrome myself as much. Second one was a small startup. They saw a lot of apps I built on the side and were intrigued which netted me that offer. Decided to go for the startup and that experience really solidified my confidence that I could actually do this.
IMO, your engineering degree will help you get a foot in the door at least. ME isn't a piece of cake and you've proven yourself competent in that regard. Your lack of "formal" education might be a hindrance to some, but I think it demonstrates the ability to self start and figure shit out and most importantly to just build stuff. Just keep grinding until you find the opportunities; you might have to take a step 'sideways" to get them.
Programming is fun and exciting when it's a hobby or you are learning it. It's an entirely different beast when it becomes your job. There is a reason why burnout is so high in the tech industry. It's less "cool hacker" and more "code monkey". My guess is mechanical engineering was fun for you while you were learning it or it was a hobby. Then you got a job and it killed all enthusiasm you had for mechanical engineering.
> Many places I apply to want people who have experience in software development or they want to hire a junior for some super low pay.
Junior dev with super low pay? Where are you based? Maybe you should expand your search to other locations with better prospects?
> I can't put the words "software developer" on my resume but I have written a lot of programs for my classes and in hobby projects.
Why not? Put whatever you want, but just be able to back up your claims if it comes up in an interview.
Also keep in mind that even if you start off as a poorly paid junior dev, you can rise quickly in an organization ( senior dev/team lead/etc ) if you are competent and increase your salary accordingly.
Falling in love with programming has been very fortunate for me because it is one of the few professions where you can show your skills with a portfolio instead of a piece of paper, and it pays pretty well
Just wanted to let you know that I don't have a degree (nor do I know know FEA, transducers or electrical prototyping are)
I've been in the industry for hmm, a little over two years now, getting on perfectly well so if I can get in, so can you B)
I actually applied for a graduate role (after being turned down plenty of times) and partly through sheer luck, an opening in a different city being unfilled, and a bunch of self directed learning, I got an offer
Partway through, I actually left the graduate program through a bit of sneakery (I applied for a regular dev role and passed the interview) and have been working as an SRE ever since.
I happened to have a decent background with the skills required (Python backends) but my brief experience with React came in handy as we've flipped some internal APIs into self-service internal products and so on
Personally, I'll usually poke around people's Github profiles out of personal interest, as part of the interview prep process, but I don't assign any weight to it if there's not much to see. More like a cool added bonus but nowadays I don't publish much that I work on :)
For reference, I think I was 22 when I got my first role and I wasn't someone who had been programming since a young age (although I had picked up a bunch through osmosis reading eg; HN and so on) but there are people who make career moved even later in future
None of the above is necessarily actionable but I guess just know plenty of people have been in your shoes before so don't think it's impossible or even improbable!
If you really want to do this though, you might want to buckle down for a couple of less than glamorous years. You can get into the software industry without qualifications, but you won't get in at the top with your first gig. You're gonna have to work your way there.
Some advise: keep doing hobby projects, keep learning new stuff constantly, and if you have a choice, pick the jobs that will serve to evolve your skills, not the jobs that pay the most.
It's been ages since anyone even asked me about my education, the only thing that matters is my current and previous assignment, and that I can demonstrate logical thinking on the interviews.
I'll add as a disclaimer that YMMV, we're currently in difficult times, and it affects even software Devs. I also don't know where you're at geographically, here in Sweden I'd go so far as to say that if you can land a software job before going to collage/university doing it is a waste of time, as you'll learn far more relevant stuff way faster while working. But I hear in the States that diploma is more important, so I can't be sure.
Believe in yourself and don't give up! You can do it!
When you are not putting out fires of angry customers, you learn everything you can from the developers that work there even starting to write features, starting to find bugs, optimizing the software, creating new tooling, whatever. It's simple to transfer around internally, impossible to get in externally. Then from there you transfer into a developer role because now you're not just some unknown guy they don't want to risk hiring. Once you are no longer junior, meaning you put in the work at that imaginary place moving around roles internally you jettison out of there to the higher paying positions because now you're an experienced developer and probably have a little network you can use, in other words no longer a risk.
Has never detectably held me back and I very rarely even got questions about it. It was entirely "can you code? let's talk about it to be sure..." [just like anyone else]
The problem with GitHub profiles is that they tend to contain a lot of noise that nobody has the time to go through, and when they do, the projects are usually not very impressive. They tend to look like they were made by a project generator with little subsequent work by the actual human.
My advice to you would be:
1) keep applying to jobs
2) clean up your GH account to only contain 1-2 extremely great projects. Hardly anyone would look beyond that. Get rid of the CRA based CRUD projects if you have any, they will not impress anyone.
3) use your unique background to stand out. Make sure your projects are unique, interesting and draw attention visually. Use your background in 3D graphics. Use your ME background where there's a wealth of data to be analyzed and presented. Be creative. Put up informative and interesting READMEs for your projects, as they will be the deciding factor in whether anyone decides to spend more time on your project.
Good luck! Feel free to contact if you need advice or guidance.
edit: can never get HN formatting right
I did 5 years of elec hardware design and then got a job as a software dev. Been doing it now for 7+ years.
My advice, look for a scale-up. A business with a proven product market fit, but still looking after the pennies. The one I found was willing to take the risk of a good find because the “formal education” lot were more expensive. I’m reasonably sure my first boss would back me up in saying that the risk was well worth it’s. Apply, show them real world work, I’m sure you will go far. Engineering mindset is actually a real skill, most formal education backgrounds I talk to don’t think of things like failure modes or really understand the importance of good requirements like mech/elec engineering I’ve met.
Also, email me whenever to talk chris at matheson dot it
But, I’ve heard of people from other countries talk about getting “certified” in a particular coding language or technology. I can’t tell if that was just a scam, or things like that have some weight in other parts of the world.
I’m sure people here have worked for a small company led by some sales guy who didn’t know what he was doing and would expect engineers to have degrees and certifications. I wonder if in other parts of the world, where those with knowledge of running a modern software engineering organization haven’t risen into leadership roles yet, it’s impossible to become a SWE without a whole bunch of diplomas.
Eventually I got a break - and it was all because of the CD!
Just as most hirers today don't look at Github profiles, most back then would have binned the CD - I reckon if your Github profile checks out and you keep at it, you'll get a break eventually.
My path: undergrad and masters in MechE, learned a little machine learning with matlab in grad school, taught myself python and hacked at AI/ML side projects while working at a startup doing FEA for about a year, eventually got an internship with an ML startup... eight years later I'm Chief Scientist at a near-unicorn AI startup.
Of course they don't. Unless you built something that many other developers use, nobody will know you exist. The industry is extremely competitive.
Given your current optimistic frame of mind, I would say yes, there is hope for you but you're going to have to work yourself to the edge of insanity to get a shot at getting your GitHub profile noticed at all.
If I were in your position, I would try to work in some area of software which is related to your expertise (mechanical engineering). That can give you an upper hand.
For applying to jobs, consider being creative in your application. Can you speak directly to the hiring manager? Can you make your application stand out somehow?
The best engineers I've hired have usually been ones with the drive and without formal education. Best of luck.
At RedHat, we mostly don't care, if:
a) you still are a student of at least a vaguely relevant field (we had someone from Linguistics, I'd think Mechanical Engineering bachelor is fine)
b) you have some relevant experience (i.e. I had 2 years as a sysadmin on friends projects?)
c) you don't need the degree for employability (i.e. we had people needing degrees for visa purposes, but you have bachelor's so that is fine)
So, you should be fine. Ask friends for entry-jobs, or start building a pipeline for consulting projects.
I changed careers from one where I was making 6 figures ... but tired of that line of work and decided to try my hand at coding and start over as a jr. developer.
I got paid very little when I joined but proved my worth and QUICKLY my pay rose.
The key as a Jr. is to get experience, get your foot in the door, do the work, and then evaluate your pay / options.
Really your first job doing a thing is less about up front pay, than it is experience, resume, and then deciding what to do next.
One of my first projects was a lisp + cad + export bill of materials + inventory + versioning. I was the younger and the only one they can find to automate the workflow. That was a big lever for next salary negotiation.
Software in industry is always applied software, being able to speak mechanics and software place you in an invaluable place. Use it on your favour.
I only had an Economics degree with no formal IT education and now I had a software dev job.
Like you, I was self-taught and only had built some personal projects, but it was enough to land me my first IT job in a shitty startup. And then you can have easier time finding other software dev roles.
Maybe you could leverage your domain knowledge to get some software-adjacent gigs to pad your resume? I started my software career in musical audio signal processing, which branched out to mobile, games and machine learning, gradually opening more and more doors.
i have absolute zero of formal software education, and i'm pretty senior devops i bet there are other near-software fields that could be relevant and hiring managers are more flexible
If you're going to follow my example (and I'm not necessarily suggesting you do -- my path did not feel close to optimal), then you should start applying for those "junior for some super low pay" jobs, for at least a year or 2, as long as it's enough to support yourself.
What I did after that was move to the Bay Area and ended up taking a job at a startup for $105k and some worthless options. From there, it was a steady progression. Next job was $140k and some probably worthless options, until now where I'm over $200k total comp at a public company.
I'm not saying any of this to brag, either. If anything, compared to online salary and comp resources, I'm probably around the median for 6 YoE in the Bay Area. But, the median SWE comp is still really good, and you can live quite well on it while maxing out 401k's, paying off student debts, or whatever your financial priorities are at the moment.
If you go this route, be prepared for a lot of rejection looking for that first job. Some companies will see no CS degree, no tech internships, and no coding-related work experience, and just bin your resume. Even on my second job, I was finding myself getting rejected or ghosted for positions where I felt my resume was nearly a perfect match to the job description [0]. Persistence is the only way through.
Stuff I would advise you to do that I didn't do so well would be things like get a LeetCode premium subscription and start solving the problems. I don't mean "grinding LeetCode" like you see people bragging about on /r/cscareerquestions; I mean start with the easy problems and use those to learn more about programming, then move on to medium problems and use those to learn about CS, while also gaining insight into interview questions you'll see in the wild.
If you have friends in the tech industry who are at companies you'd like to work for, try and get some referrals. This can get your resume looked at, even if you wouldn't appear qualified on the surface.
If you land a position that's primarily coding/software-oriented, but it's not literally called something like "software engineer," consider putting it on your resume like "$ACTUAL_TITLE (software engineer)". Part of my problem after my first job was that the position title wasn't called "software engineer" even though writing software was literally all I did.
There's probably more, but those are the main things I can think of right now.
The vast vast majority of job postings are looking for experience in particular areas, such as programming langauges, game engines, commonly-used libraries, software suites etc. Some places will literally not even consider candidates who don't match some of the stricter requirements, like a certain number of years writing C++ or whatever. Fortunately, many places will overlook a "miss" in key categories if there's a lot of good stuff elsewhere.
As someone who has been programming for work for over 20 years, I'm going to disagree with some suggestions you got on here about getting a master's degree. My personal advice, based on my own experience, is you're better off getting in the industry as soon as possible. You will be literally getting paid to learn, and making contacts who can inevitably be your "in" at other companies over the years (if necessary).
Everyone's experience is different of course. I'm one of very few people at my job who are at my level and have no degree at all. On that note, I know many people who say their degree was completely useless for getting to where they are now (other than maybe looking good on the resume).
I think most places will look at your Github profile if you link it -- depending on the company. Even if I didn't mention it to them, I've looked at the open source contributions of every single candidate I've ever evaluated, if they linked it.
From what you're summarizing, you can absolutely put "software developer" on your resume. It sounds like you've done a bunch of programming over multiple years and built a bunch of real, working projects. Though unfortunately, those are not usually given much weight because most companies want to see your experience building shipped products, with a team, over some period of time. Regardless, you're applying for a certain role, so tailor your resume (skillset and experience) to correlate best with that role.
Anyway, yes, search around for places that seem interesting and look for the roles they have open. You may have to apply for many! There were many places I was so sure I'd get an interview at, who didn't even respond -- even when I had quite a bit of experience. It's not a big deal, just keep trying man.
When you get asked about stuff you don't know in interviews, don't worry about it - just say something like "Ahh I don't know about that, but I'd love to learn about it". I mean, assuming you actually would like to learn more stuff, and excel at new programming/technology skills! :)
If you want to discuss further I'm actually totally glad to talk, though my experiences might not be directly relevant to where you're living. Either way, take care and best of luck!!
I went to school/failed out, left with some debt(still in debt). I was going for Phys/Eng co-op program(5 years).
I got into web development luckily(personally trying to make high traffic ad revenue websites) that didn't work out but I became a full stack developer(can build an interface/make matching backend with auth in LAMP).
I freelanced online(UpWork) then got into a local web developer agency(WordPress... templates...) then I got lucky to make the jump into a local corporation in my state where I'm now an SE. It was unreal to me at first as my previous job I only made $50K/yr and mandatory 45 hrs for "salary".
Now I just keep learning so if I lose my job I can hopefully get hired elsewhere.
I was washing plates/worked in a factory/did data entry... yeah I'm super lucky I made it.
So it's entirely up to you and I'd say with a degree the odds are even more in your favor since that always bothers me as a lot of jobs I can't apply to "no degree".
It's entirely up to you, you have to want it. For reference I was not into computers when I was younger, we had one and I just played Runescape on it. My journey in this field started in 2013 so it's not something I just pulled out of my ass overnight.
Use LinkedIn by the way it works, but be truthful as well, don't game the system.
...
Personal rant
This is a personal opinion but I've been pretty stressed out at my job, mostly the "bureacracy" like "every line of code" is traceable. JIRAs, design docs, unit test/selenium/regression testing... so much work I can't just "solve this problem" you know... I don't know. It's interesting, my prior job sucked because there was no chance to learn and it got super repetitive building template after template from a design. But there was also barely any sort of structure/no testing... we barely knew how to use Git as a whole.
Clarifying, I'm not against the concept of testing. It's nice being able to run old ones and see the app didn't break when a new feature is added. Just saying there's a lot of "paperwork". Which... get a hobby right or change jobs(what I'll probably do).
I'm at the point now where I can almost make anything I want. Granted I am not a scaling-god or super devops heavy(aside from using Docker)/not an algorithm guy. Also have not bit the ML/AI bullet yet. But yeah, there's a lot to it, the surface area, but a lot of technology now makes it super easy to get into/accessible. Think React and React Native/Electron so easy to build cross platform. Crash courses online to quickly pick something up.
And all the commoditized services eg. Twilio/Mailgun/AWS/Browserstack/etc... (I don't like AWS expensive).
I have no degree, but I started my career with a lot of open source projects on Github. If you work hard enough there, and you actually market your projects and your own brand, you will have a chance at getting hired. I was offered my first job at a very, very low salary and I took it. After a year, they realized I was worth my salt and they wanted to keep me, so I got a hefty raise.
If you want into this industry, I recommend you do the same. Make some open source projects which are useful and market them. Make them look good, visually, and do the same with your own website. Meanwhile, apply places and talk to recruiters. If you get an offer and it's a low salary, you should probably take it. The only reason you shouldn't would be if your personal expenses require a higher salary (i.e. you have a kid); you may need to lower your class of living, if you're single and used to making a lot more. However, once you get that first job, do everything you can. Learn everything you can. A couple years in, people won't know you don't have a degree; you'll just be another dev.
There's one key thing about practice that I'll mention here, though: stick with one thing, at the start. You need to make up for your lack of credentials and experience, so it would be good if you're very comfortable with something. For me, it was C++ and game engines.
With that said, the lack of degree still bites when it comes to job changes. Even later in my career, I've had teams give me the "okay" and even welcome me to the company before someone higher up sees I don't have a degree and calls the whole thing off. That primarily happens with larger companies, though, so you're better off sticking with smaller companies until you have enough work experience to make people no longer care where/when you went to school.
Lastly, I mentioned this above, but it's the most useful point here and it's worth saying multiple times: market your fucking brand. Firstly, if I spent a weekend making a FOSS project, I'd spend the next week adding documentation, CI, code coverage tests, and everything else which people expect from a Github project these days. Why? Because it looks better and it makes you look better. Secondly, if I make a ray tracer or game engine, I'm not going to show it rendering some spheres; instead, take the time to parse some file formats to show a whole scene. This is because people make up their mind about something they see in the split second when they first see it. It doesn't matter how slick your code is; make it look good to recruiters, team managers, and passers by. Thirdly and finally, know your audience when you're making things look good. When you build your website, build it not for super technical people, but for the most average mouse clicker you can imagine. That's who you need to impress in order to get your résumé in front of a dev.
Or maybe write a lot of public code. This is highly risky, though. Few places consider those credentials.