You will then be very well positioned for college internships, where you can make $$$ and work in a higher pressure environment on cutting edge things. Your résumé will show job experience and you'll likely have more poise than your peers. Be sure you don't stress out too much about a high school job. Life is long.
The thing that got him in the door was attending meetups. We were doing JavaScript stuff so he attended his local NodeJS meetup and met some people who eventually hired him. So if you're in a location where they have dev meetups I'd get out and attend, talk to people, maybe even present.
Also, just being realistic, it's WAY easier to get your foot in the door doing frontend stuff. Doesn't mean you have to drop everything and become a UI person, but if you have some kind of an API sitting on aws, having a UI to drive it vs. driving it purely with curl/postman/etc shouldn't take much effort but will be a good bang for the buck no doubt.
If I were you I would start to consult on the side while in school. In fact, this is exactly what I did do in high school and college. Make a small but well designed site which shows your projects in a portfolio style. Offer your services to local businesses while trying to focus on solutions you can offer them to help them with their specific problems. For example, as a freshman in high school I helped a specialty billing company to automate some of their reporting which used to be a manual process. I figured out they needed this by calling them up, introducing myself as a high school student who was trying to find companies who needed my services as a software developer, and asking what problems they had. It turns out, it's really that easy sometimes.
If you'd like to get a more salary based job on a team at a company, you might be in a good spot for this too. Create a resume. Focus on what you have worked on and what accomplishments you have achieved. Send this out to prospective employers. It would be good to still create the small but well designed portfolio site to show off your open source projects and mention this in your resume. Send this resume out to 5 companies a day, every day, and you will quickly find you start to get quite a lot of response.
We all started somewhere. A lot of us started out with a lot less experience than you have described here. You'll do well!
Different projects have different norms around job seeking, so this might take the form of reaching out 1:1 to other contributors or users you have interacted with, or it might take the form of "Hey, I'm looking for a new job..." to the mailing list for the project. Do understand the norms for the projects though, as sending a blanket "I'm looking for a new gig" to some places will lead to being ostracized, whereas for others it will lead to flurry of folks reaching out. If in doubt, reach out directly.
Secondary to the above it gives you some basic business and marketing/sales skills which always come in handy.
The pay is peanuts, usually, but that's entirely beside the point. Just make sure you always work for good people and are allowed to do good work (which is sometimes tricky, because lots of times people either never provide you with the right information so you can do good work... or they just don't care about, or can't tell the difference between good and bad work).
With a preference for work you can include in your portfolio. From there it's lather, rinse, repeat (and watch your earnings and self-confidence rise).
First, rewriting ugly perl script to ugly python script for businness of father of one of my friends from high-school. I knew my friend was writing enterprise java in their family bussiness since he was ~14, and he knew I am a decent programmer because we worked on a class project.
Second job was creating a webpage for my aunts language-course. (Based on this, I realized, that working for family is more trouble than worth)
For my third job, I was a intern/junior windows sysadmin for ~two weeks. My father overheard their IT guy that they would have large workload due to some QE testing and that they wouldn't be able to do the usual windows/workstation maintenance work. So they hired me to help out on his recommendation.
Another job was rewriting some legacy app from outdated Borland Delphi to QT/C++. This was through a differend friend of mine heard of his fathers friend problem, and managed link us through. The resulting app was not very good, and I don't think they actually used it. But they did pay me for the effort :-)
Last, a friend I knew in my local church had a spare server-grade tower lying around under his desk for some reason. So we decided to connect it to the net through a guy working at local ISP. We started hosting the church pages and some local missionary organization an I was sysadmin there.
In the end, everything I did was through friend of a friend, and usually the work I did wasn't really good. But if you look at the bullet list of the stuff and squint a little, you can make a decent looking CV out of that.
Windows sysadmin here, Linux admin there, desktop C++ app somewhere else ... I remember when I applied for my first internship at a corporation, the hiring manager was actually impressed by my "prior formal work experience" ... I just smiled and waved [1]
First of all, I don't think it's a bad idea to just email someone who you think might have a job that you like. Luckily, for most Software engineering roles, a good portfolio is far more important than an obscure number for the years you have worked. If you think that you are good enough to pick up a small internship, it might be a good idea to send an email to a recruiter describing your situation and your portfolio.
Another thing to consider is that startups are generally more keen on hiring young and unexperienced people than big companies. It's usually because they are low on fund, but it can be a great learning opportunity.
Personally, the website angel.co has been very useful for me and the people I know. Might as well give it a shot.
1) While you search, you might start contributing to bigger open source projects that have visibility. It shows you can be part of a team. Then you also have "references" that can vouch for you; your employers can see your work directly.
2) Try thinking of your professional identity; how do you market yourself. This is a combination of your skills and interests in terms of what types of projects you want to work on and want to be called upon. What do you want to be known for?
Truthfully, your biggest asset right now will probably be that you have some skills (don't have to be trained from zero), and are super cheap and willing to do more than you get paid for.
For either of the first 2 options, call around to your local businesses and ask about internships. That would be an easier sell, and get you experience.
For a full-time job, you methods really aren't any different than the rest of us. Meet people, talk to them, apply to their posted job openings. Let people know you are looking so they think of you for opportunities that are not posted.
1.) Keep contributing to open source and working on/releasing/blogging about/otherwise promoting side projects.
2.) Contact founders directly via email and ask about job/contract opportunities.
The bigger your profile/the more samples of your work out there, the easier it will be to get positive responses out cold emails.
* Find some developers in your local area who maintain, or can merge into, an open source project. Work on what they are passionate about, and get to know them. Learn what it takes to contribute effectively, and you'll get noticed. Bonus points if that open source project is something someone uses for work, as you're now another local expert in a tool that someone actively pays people to develop.
* Find something in your local area that doesn't work as well as it should and fix it, or at least offer to fix it. There's a crosswalk signal on my block that is malfunctioning. It's supposed to flash a red hand (aka don't walk) with a countdown from 10 to 1 seconds before turning solid red. Instead, it flashes "99". If you saw that malfunction, you could do a bit of research to see who the manufacturer is, call up city hall, and tell them you'd like to work with the technician who is tasked with fixing the light. Ask the technician if his company has any work you could help with.
* Find out who developed the websites for some local business in your area, or visit that local computer shop that offers website development along with their services. Ask if they'd hire you as an intern, showing them the work you've already done. Even if they don't ask them if they'd be open to discussing their process for hosting and deploying websites. Find a way to improve it, open source the solution, and give it to them. Now you've got a customer for your open source work, which is something you can most definitely put on your resume.
At the end of the day, you'll have to decide if you're willing to figure out what it takes to create opportunity for yourself, or if you're willing to settle for opportunities advertised to you.
Good luck, and stay awesome. And props to you for asking this question in the first place.
That's how I got a job as a very junior developer.
Also, at a job you'll usually only be doing specialized work anyways.
Check out http://meetup.com/ for finding local programming meetups. It's awesome. reply
By the way, what languages and paradigms do you think you are really good at?
I believe you can achieve similar results by showing the work you've done on OSS projects. Just share your commits with potential employers.
Do this a bunch of times and you should be hired somewhere.
1) Show value you have added to OSS in an easy digestable way for potential employers. A 2-minute checkout on the web, with explanations where needed to have people understand what you did.
2) Show value you can add to their business. Place yourself in the position of the businessowner, and match this with your skills and talents. Eloquently writeup what value you can add to their position in the business.
I've hired several people with no formal experience, but some awesome open source work.
In my high school, the physics teacher also ran the computer lab. He had all sorts of connections. He even hooked me up with a babysitting gig.