Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: With nothing but an open-source portfolio, how to start job-hunting?
91 points by foundry27 on Feb 4, 2017 | hide | past | favorite | 48 comments
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?

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.

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.

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.

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.

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

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.

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!

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

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.

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.

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

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

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.

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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/ for finding local programming meetups. It's awesome. reply

By the way, what languages and paradigms do you think you are really good at?

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

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

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.

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.

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.

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

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.

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.

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

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.

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

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.

Why do you think he shouldn't?

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

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.

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

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.

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

Why dont you want to go to college?

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

His high school professors?

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.

I guess in high school, one has teachers. But you never know.

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.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact