- Post whatever you have on github, polish it up of course, with proper README files with description, installation, etc -- whatever would be necessary for someone to take a look and reasonable have enough understanding after a minute or two of what it does and how to compile it/run it
- Write a few blog posts on whatever interesting, useful or challenging things you've seen in 20 years (github will also host you site for free (https://www.google.com/search?q=github+blog+free), or use wordpress, medium, etc)
- Contribute to whatever interesting projects you've seen -- start with a bug you've come across that's annoying but conceptually simple to fix, very easy way gateway into contributing to open source
- Link your github, open source contributions, blog on your resume
- Spend the remaining 2.5 to 5.5months grinding leetcode and interview prep material
Solve it.
Publish the code on github.
Do that in a few different languages.
Over 6 months figure you could cobble together 10 hacky minor (but working!) projects and 2 decent ones.
Do a decent job of a README.md which explains the problem the tool solves and put one of those nice animated GIFs showing the tool working or just screenshots so people can grok what the problem you're solving is and that you have a working solution (and nice screenshots will frankly discourage me from downloading your semi-hacky code).
Put link to github on your resume.
I would also say that if by "I could spend 6 months doing that" you mean that you want to quit your job and spend 6 months programming before you run out of money, I'd strongly suggest against that. Spend an hour or two a night and/or more on the weekends and stretch things out to a year or more. The stress of being unemployed and NEEDING to find a job is not going to be your friend here.
> but have no portfolio or commercial track record
A 20-year hobby, dedicated enough to be "decent", but nothing to actually show?
Not trying to take a jab or anything, it just more leaves me wondering maybe you're starting from a fairly low skill level. There's plenty more to software engineering than just languages.
In which case, maybe a 3-6 month full-time course? I work with a guy who was a carpenter. He did a 3-6 month (can't quite remember) full-time coding course. It was very practical - Javascript, HTML, etc. He then took an internship at our company. I'm not sure of the salary, but it would have been fairly low. But just through hard-work he's now a terrific mid-level engineer, and he could move on to another company with a solid story to put on his resume.
I suspect a lot of people might be against coding courses and more leaning to DIY self-learning. But not everyone can stay on track, it's hard to know exactly what to study, a good coding course can point you in the right direction with jobs, and it looks better on your CV. Just my 2c.
Do this not in a big rush, but slowly. It is more important to work on this everyday than to spend a night to finish something.
Write about your journey while building this. Setup a simple technical blog (use write.as, hashnode.com, ... ) and document every few days a problem and how you think about solving that problem, your decision process and the solution you choose and implemented. Make sure you show the code there. I cannot underline this enough: do not invest time to setup your own blog. Use something existing, just focus on writing.
Use Github or Gitlab. Create there MRs/PRs and review them yourself. Then refactor based on your own reviews. This will show how you think but more than this it will contribute a lot on growing as a developer. Do the reviews first thing in the morning before starting working on the project so that you look at your code with fresh eyes. Ask for code reviews from other programmers if possible.
Then register, yourname.dev and post the work their with a resume or something similar and a little bit about you etc.
You can put the work on github if that's applicable as well.
Add a few side projects interfacing with API's as well. Just pulling basic data and manipulating it a little bit. Provide working demos and the code on your site.
Explain that most of your coding knowledge was learned through the Department Of Corrections inmate education program and the 20 yr gap in your work history is because you owed a debt to society.
2. Read the skills they're looking for
3. Learn those skills. If that's not feasible, return to 1
4. Create some simple projects on Github to demonstrate them, and blog about them to explain what you've done, why you're doing it, etc.
5. Apply for jobs like the ones you found in 1, referring to your new portfolio.
There's no point just aimlessly creating projects - make sure you do things that demonstrate skills that are in demand.
Also, your projects don't need to be massively complicated. I got offered a load of roles just from a blog post I made about how to use a JS library that was popular at the time.
If you have no formal training, you might consider taking a few CS courses on Coursera and adding those qualifications to your CV too.
If you’re interested in an Elixir job then an acquaintance of mine has a site that might be a useful resource: https://underjord.io/jobs.html – there’s a mailing list there to get notified about Elixir job opportunities.
He also has a YouTube channel with videos about Elixir and other stuff: https://www.youtube.com/c/underjord
Also: On 2022-05-01 there will be new hiring threads here on HN. There’s always three threads: Who is hiring? • Freelancer? Seeking freelancer? • Who wants to be hired? So maybe just post in the who “Who wants to be hired” thread and see what happens? :)
https://news.ycombinator.com/submitted?id=whoishiring
Godspeed!
Based on what you've mentioned, sounds like you're a web person? Maybe back-end or full-stack?
I've heard people say a CMS is a good baseline "I can do web dev" project. It's a CRUD app, but one of moderate complexity which involves some interesting problems. Demonstrates full-stack skills, and also leaves room to tune it to your particular strengths (front-end ninja? do a fancy SPA; back-end focused? do it all server-rendered with some Bootstrap styles and maybe have it support multiple databases or something. etc.)
But in general: if possible, do projects that are specific to the job you want (if getting a job is the goal of them)
Specifically, I would grind LeetCode, learn system design questions, and start contacting company recruiters on LinkedIn.
After all, portfolios are just like resumes in that their purpose is to grab the attention of someone to get a conversation started. Focus on telling a story that makes people want to hear more.
Not strictly programming but perhaps a useful gateway drug: how about learning the dark arts of AWS management? Massively useful, non-obvious, well-structured and with ample learning material, it gives potential employers, certainly smaller firms, a good reason to hire you. If you’re a coder with unclear track record, hmm, but if on top of that you’re good at cloud setup wrangling, that’s a win.
It’s what I’m considering doing every now and then, anyway.
Another approach, slightly cheeky but whatever, is to make a blog with at least 20-odd entries (I know, it’s not nothing), but backdate the posts, so it looks like you’ve been doing it for a while. Maybe add some comments from a few “dedicated readers”. It’s not really misleading, anyone looking at your blog would mostly care about the content, but creates more of an impression of continuity (which it sounds like you have, just not documented).
Start with your resume and get that perfect
Create a site with details from your resume
Pick a few scripts/pieces that exist, clean them up and add them to github
Spend the rest of time on:
- leetcode - Building one thing
Every hobbyist with years of experience has likely contributed to Open Sores Software.
Better yet, just interview somewhere for a job. Likely, even their junior devs will know a lot more than you. Persist. You may get hired. If so, learn from those junior folk and get a better position next time.