
Ask HN: With nothing but an open-source portfolio, how to start job-hunting? - foundry27
I’m a young student in high school who has predominantly spent their time working on open-source projects to create a portfolio demonstrating proficiency with a range of tools, languages, services, and paradigms. With this as my main asset, how might I best go about searching for a job given no prior formal work experience?
======
jonstewart
I'd use the adult network of your parents and teachers to find an internal dev
team at a local business, something relaxed where an older (mid-30s - 50s) dev
or two can mentor you and you will have the freedom to experiment and make
mistakes. The point isn't to make money or learn the latest greatest tech, but
simply to practice and observe and practice and practice and practice, not to
mention getting comfortable in an office environment. You'll naturally keep up
on the latest tech yourself, but learning some legacy things will help provide
you perspective and an internal shop typically has a great deal of interaction
with end users--developing user empathy is a skill that's hard to learn on
your own or in school.

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.

------
49531
I had a friend I met doing open source who was still in high school. He was
similarly looking for work, and eventually found a summer gig between his Jr
and Sr year of high school.

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.

------
ChemicalWarfare
One thing I'd mention is - regardless of your inclinations (sounds like you're
more of a backend developer) - put together something that is easy to
showcase. Something "live" running on aws/heroku/digital ocean/github pages
even - no matter how trivial (well maybe a static "hello world" might be too
trivial :) ) - would go a long way towards convincing your potential employer
that you have the tech chops.

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.

~~~
ianai
I'd suggest an online portfolio like that to anyone looking to develop or sys
admin. There are predesigned webapps for this sot of thing.

~~~
rpgmaker
Isn't the point to showcase his developer abilities? Not sure why he would
need a pre-designed Web app for this.

~~~
ianai
If he's a backend sort of developer he could benefit from some prepackaged
front end - "and I modified the backend this way..." etc etc.

------
trcollinson
It would help to know where you live and what type of work you would like to
get. But I can give you some general advice in the mean time. Really, you are
in a good spot to do well!

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!

~~~
foundry27
Thank you so much for taking the time to reply. If you (and anyone else for
that matter) are curious, I live in Ottawa, Canada and am looking to get
involved with backend or low-level work (though I’m trying to learn everything
and anything that I can).

------
brianm
Reach out to the folks using the open source software you've written or
contribute to. To these folks, you are already vetted -- they rely on your
code and they "know" you from the community around the projects.

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.

------
k-mcgrady
I would take the opportunity to build something yourself. If you're young and
in school chances are you don't have any big financial concerns. This is a
great time to try to build and sell your own products, something which becomes
much more difficult when you have to pay rent. I'm speaking from experience
too as it was in high school that I started selling my own software and my
services as a freelancer. I didn't make a huge amount of money (although it
seemed huge as my reference was a £50pw supermarket job) but I had a lot of
fun, much more than I've ever had working at a company, and continued it for a
few years after high school. This also gives you the freedom to make mistakes,
tackle problems you're interested in/expand your knowledge in areas where you
are weak, and it looks great on your CV when you do actually need a job
(despite 'average' skills I was able to get very well paid dev jobs without a
college degree).

Secondary to the above it gives you some basic business and marketing/sales
skills which always come in handy.

------
kafkaesq
Don't sweat it. Lots of people are _eager_ to hire students with no commercial
experience for certain projects (and in facts, say as much in ads --
especially on Craigslist -- even though this is actually blatantly
discriminatory).

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).

------
a-saleh
When I was in similar shoes ~8 years ago, my first jobs without "prior formal
work experience" looked like this:

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]

[1]
[https://www.youtube.com/watch?v=DvYBZRwwGB4](https://www.youtube.com/watch?v=DvYBZRwwGB4)

------
chetanbhasin
Having been through a somewhat similar situation, there are a few things that
I've done.

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.

------
aviraldg
I was in a similar position a couple of years ago, and HN's advice as well as
some HNers helped me get started with consulting online:
[https://news.ycombinator.com/item?id=4079567](https://news.ycombinator.com/item?id=4079567)

~~~
foundry27
I’ve only looked at the first few reponses you received so far, but what I did
see looked very insightful. I’ll be sure to look over the rest of it when I
have time, and I really appreciate your help, especially since it looks like
we were in pretty similar (with our respective stacks inverted) situations at
one point.

------
hatmatrix
Overlapping with some things mentioned by others:

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.

------
codingdave
It depends on what kind of job you are looking for - part time while still in
high school? Summer job? Or full time permanent?

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.

------
nicoburns
I did this a few years ago. My suggestion is just to create a CV that
showcases your experience, and then start applying to jobs. Definitely try to
apply directly to companies rather than through recruitment agencies (as they
won't understand), but I can't imagine you will find it too hard to find a
job. Developers are in high demand.

------
hluska
If I were you, I'd either:

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.

------
amorphid
I have a few ideas here, and the common theme between all of them is that you
have to put yourself out there:

* 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.

------
tps5
Build and host a web app that uses some real-time public-facing data (train
positions, bus positions, satellite positions, cab fares, etc) and renders
that information in a helpful way.

That's how I got a job as a very junior developer.

------
cube2222
Find local meetups regarding those technologies. I'm in high school too, with
a good amount of knowledge already and definitely the best way to find good
jobs/people you can learn from are local meetups. Try to find the most
advanced/knowledgeable/passionate developer there and discuss something you
both are passionate about with him. After repeating this a few times you'll
surely have a lot of job offers. Otherwise, you'll know what you have to work
on.

~~~
cube2222
Also, if you're parents can still provide for you, don't rush it. I mean,
don't choose a job that is in an area that doesn't interest you that much. For
example, is you're a backend developer, don't take a frontend job.

~~~
foundry27
That’s actually an interesting point you make there. I’m tentative to make an
upfront declaration along the lines of “I’m a backend developer” since I
really do want to cultivate as broad of a skillset as I can reasonably
support, especially at my level of work experience.

~~~
cube2222
Well, at least from my experience, it would be good to find something that
REALLY interests you, and get a big expertise in it. Especially at your age,
if your an expert in something, people will be astonished by your professional
knowledge. They won't care about the fact that your not that god in other
things if you already blew them of their feet.

Also, at a job you'll usually only be doing specialized work anyways.

Check out [http://meetup.com/](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?

~~~
foundry27
First off, thank you for the informative reply. I’ll be sure to poke around
and see if there are any groups around here that fit the bill! Answering your
question, I’d say that Java, C#, and C++ are my strongest languages (by virtue
of me having known them for longer than anything else), and I can safely say
that I’d feel pretty comfortable talking shop about JVM or CLR internals at
any level. As far as paradigms go, I’ve been adopting a strongly functional
programing style with a healthy dose of aspect-oriented and actor-based system
design (though I’ve started to be more wary of the former in favor of plain
old composition).

~~~
cube2222
Sounds great! Then maybe try to find some functional programming meetups
nearby? There'll surely be a java meetup somewhere nearby.

------
innocentoldguy
My company recently hired a young student right out of high school. What made
him stand out was a few apps he had published on the App Store. I believe he
had a couple of games and two or three utilities. All of them were free, but
they all had quite a few reviews and 4 to 5 star ratings.

I believe you can achieve similar results by showing the work you've done on
OSS projects. Just share your commits with potential employers.

------
tomjen3
Find a business that could use one of your projects to solve one of its main
problems. Then get a meeting with somebody there who has the authority to hire
you (this can be done simply by email, but it helps if you have some common
connection with them), go to them and show them what you have made, explain
how it and you will help their business, then ask for a job.

Do this a bunch of times and you should be hired somewhere.

------
sharpercoder
Show value.

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.

------
nfriedly
I have a list of several hundred recruiters who have spammed me - my email is
in my profile if you'd like to return the favor ;)

------
nojvek
Create a resume. List your OS projects and the impact you had. List your
github profile and the technologies you're proficient in. Just having a good
github profile is really going to take you far. And then apply to places and
follow people you like to work with. Occasionally retweet them and kindly ask
if they could refer you.

------
rhizome
You're in high school, so you aren't old enough to sign contracts. Get a job
at In-And-Out, it'll be funner.

------
DEinspanjer
If those proficiencies include Angular 1 and you have the passion it seems you
might, I would be happy to see that portfolio.

~~~
foundry27
Sadly enough (for both of us!) I can’t say that it does. I’ve been working
with every JVM and CLR language I could get my hands on, with a healthy dose
of C/C++, Rust, and Python on the side. I’ve worked on a few small projects in
vanilla ES15, but not with anglular.

------
segmondy
Go to school, go, don't work while in school, load up in your course works and
finish fast. Then do the job thing.

~~~
danblick
I've worked as an SDE at two of the big five tech companies. By far the most
common route to getting a first job at these companies is to start with a
college internship and continue from there. Basically with only a high school
education you wouldn't get an interview, and I'd say pre-university work
experience is not too important in the application process either. I'd
recommend focusing on your studies first - take the time to learn about
graphics or AI or some topic that interests you and will help you succeed in
university. You can worry about getting a job afterwards. Personally I had
small jobs making web pages before college but the first programming jobs on
my resume were with scientific research groups at university.

------
z3t4
just apply for some jobs. most of your competition has nothing to show. so you
already have a big advantage

------
lesingerouge
For some companies, open-source projects or contributions to open-source
projects are a pretty strong signal that you: a) are commited enough to work
on a long term project; b) have had some experience in working on a team; c)
have worked on a project that has real-life use.

------
ProAm
Start applying for entry lever or junior level positions showing a need for
the skills you have.

------
eli
Write a good cover letter and include some open source projects on your
resume.

I've hired several people with no formal experience, but some awesome open
source work.

------
paulbaumgart
Did you contribute to any larger-scale open source projects? There might be
someone on that team who can give you a leg up.

------
kapauldo
Why dont you want to go to college?

------
amorphid
Ask your professor(s) if they have any suggestions.

~~~
emodendroket
His high school professors?

~~~
gravypod
Actually some of my high school teachers knew "a guy who knew a guy". It's
very common. People usually talk to other people and anyone can be part of
your professional network.

