Don't sell yourself short, Vladimir. If you're going to work for free, try contributing to an open source project you find interesting. If you're going to work for a for-profit company, you should be paid :)
This does seem to be a mantra on HN. I can't speak for anyone else, but where I live "junior developer" positions are looking for 3+ years experience, "Preferably" a masters degree in computer science, expert Linux, HTML and JavaScript, and so forth. While globally it is a hacker's job market, those of us who are not currently free to move to where the jobs are (I'm a single parent and don't want to uproot my kid again) sometimes have to try to get our foot in the door in this employer's market by begging for the chance to work even for free.
Not trying to be a Debbie Downer at all, by the way. I moved from the valley to the Midwest (I know, I know...) so I know that there are tons of jobs for people like me (and Vlad, probably). However in my opinion "Don't work for free for a for-profit company!" isn't advice everyone is in a position to follow. I wish I could.
(Disclaimer: I am a junior dev with Django/js experience in both personal and open-source projects, without a degree. So take my whining for what it's worth.)
This advice is contrary to my personal experience. I live in a part of the US with a similarly craptastic market for programmers. In a recent job search, with very little formal experience as a software developer, I was turning down offers and taking my pick of interesting positions. From what I could gather this was almost entirely due to a github page with lots of code and a portfolio of interesting projects.
However I originally did think the market looked like you describe until I realized this amazingly valuable insight: My resume was almost instantly rejected by any company where an HR person/recruiter got my application; Any company where an engineer was the first to read my resume I was eagerly contacted in less than a week. A related insight: I don't want to work for companies where engineers aren't doing the hiring.
I also had no interest in moving and found, much to my surprise, that there are a lot great telecommuting options out there these days.
edit: I just want to clarify the tone/message here a bit, I'm not saying "your doing it wrong" but that it's easy to be discourage by being rejected by companies that aren't worth your talent. There was definitely a point in my search where I felt completely doomed, but then I realized that I actually wasn't aiming high enough and was underselling myself.
"From what I could gather this was almost entirely due to a github page with lots of code and a portfolio of interesting projects."
I've been a hiring programmers for almost 10 years. It's so rare to get a resume with something like a link to a github page. You're pretty much guaranteed a phone screen with me if I see this. I know it's hard for people just starting out to understand this, but demand far exceeds the talent pool. You will always run into the managers that want to see "oracle blah blah blah" experience. When you get rejected by them because you couldn't answer how to solve some oracle specific problem in an interview you just ignore it, and keep applying.
It's so rare to get a resume with something like a link to a github page. You're pretty much guaranteed a phone screen with me if I see this
Yes, yes, a billion times yes!!!!!
Even if it's some tiny little project that went nowhere, the fact that you actually have some code that is yours and that you can discuss intelligently puts you well ahead of 99% of the people I see.
That's the important thing. Sometimes the initial excitement of seeing that github account wanes when you realize 8 projects are forks of existing projects with one change, and the other two are a stock rails project with only three or four minor commits on top of that.
What about an application server that was abandoned after padrino became available. I built it on top of sinatra, it was to include authentication and authorisation as well as a few handlers.
I'd generalised it from another webapp I was buildingfor someone else (that didn't pay) summer last year.
This is pretty much some of the only code I've made available in public. Should I put up the entire webapp that I built during the summer? It's not doing anything.
My new résumé app/service aimed at hackers has integration with github, hacker news and stackoverflow. You can see at a glance what people have been up to on these sites by looking in the sidebar of any Mighty CV powered résumé. Though integration with these sites must have been switched on by the owner of the résumé for this to work.
I'm hoping to finally launch the private beta this weekend, there are still some invites left. You can sign up for one if you like at:
I've been doing this recently: gathering up my recent and old code and putting it on GitHub. I'm employed currently but this is still something I've been pushing off for a while.
One of the things that held me back though was that I wanted the projects to be "ready." To get them to a point where I can show them off instead of having several abandoned and "poorly written" projects. (Quoted because you really are your own worst critic.)
I now think it's much better to show you can ship on your ideas. To build, publish, and move on to your next idea. It's a much stronger indication of your passion for programming than words alone. Saying "I like to hack in my spare time" without further evidence just doesn't have much impact.
Does anybody disagree? Are there cases where publishing imperfect code and abandoned projects alongside your best was a disadvantage to you?
I have github and bitbucket on my resume. It was only noticed and mentioned by a smaller "startup". So if you're applying for a job at a much larger company with your "average" (the ones who toot about this new CVS technology) manager, they might not even know what github is. YMMV
I'm at a start-up now, but before that I got sick of developing professionally and took a break. Probably because I was one of those people who didn't look good enough on paper, and only got through the resume pile at corporate jobs or body shops, and got fed up with the bs you see there.
So after my break, I honestly listed that as 'funemployment' on the resume, with a brief human understandable explanation. (I actually was working on some of my own non-programming related projects, and explained as much.) In the email cover letter, I basically said "Here's my resume, but I think my website does a better job of explaining my real strengths as a developer."
An interesting thing happened. Without exception, any company with an HR department totally blew me off. And without exception, any company where the owner screened the resumes, I got a phone screen and a real interview.
I also think that's something where having a custom domain for your email really helps. If any tech-savvy person gets a resume from blah@not-gmail-or-yahoo.com, they're pretty much going to instantly open up a browser and type http://not-gmail-or-yahoo.com.
Definitely what I've seen from the applicant's side as well with regards to the Github link. I was told that I got the phone screen for my current job because of it. Before adding it to my resume I hardly had interviews for an entire year.
My job search experience in a small western college town has pretty much mirrored yours. I'm a grad student so I'm only looking for part time work, and about twice a year I send out a few applications for development positions and almost always get as many offers as I applied to, from which I either take a better position or use as leverage at my current position. I'm not a CS student, but I think my resume (where I list tons of projects completed and programming languages I'm comfortable with) stands out against the CS student/new grad resumes they're probably swamped with.
Occasionally I'm turned down for something like not remembering some syntax triviality, something that could easily be looked up; that's a sure sign that I wouldn't want to be working there.
Hey, thanks. I actually do include my Github page (though admittedly I don't do much interesting I'd say) on my resume, but I'd never considered the difference between an HR manager and an engineer seeing it. Great insight, thanks.
I am working on a large open source project right now via a connection I made on HN. By hanging out in their IRC channel and listening, I've been able to fix a couple of problems before they left the "complaining about it in IRC" stage and percolated up to the "file a bug report" stage. If you're the first to move on it you get to fix it.
My recommendation is find something in open source you use and see if they communicate in IRC or some other open medium. Probably not great universal advice but it has worked for me.
The presumption here is that doing open source work does not open doors to employment – in fact, that's quite far from the truth.
If you're a contributor to a well known open source project there are lots of doors that are opened by being plugged into a network of other good developers that are often being pinged by people looking for work to be done. Prior to starting a startup virtually every job that I'd gotten had been either a result of or significantly influence by having done significant open source stuff and to this day, despite having been mostly inactive in open source stuff for about 4 years, I still regularly have people contact me asking if I'm available for contract work.
Oh, I don't dispute that whatsoever. I'm working on an open source project via a connection I made here on HackerNews. It's not an employment thing but I'm working with one of the (employed) team-leaders on the project. I know it looks great. But it would be nice programming to pay the bills in the meantime instead of whatever else I've got to do.
(edit: I should say I left a career in another industry to pursue programming full-time, so I'm not complaining about having to do other things. I knew it was a gamble, but it was and still is worth it.)
The presumption here is that doing open source work does not open doors to employment - in fact, that's quite far from the truth.
It is in my experience that in large open source projects that anyone is impressed with, the people with commit privileges don't want more contributors.
It is like Wikipedia where if you make an edit to their code or a replacement, they take personal offense to it and will fight you tooth and nail to get it ignored. Or in one case, just ignore me for over a year saying they will merge it and never do it. Or if they merge it, they don't give me credit.
I won't ever hire a developer to work for free - I remember being in this boat when I started as a self-educated programmer. The employers that you attract by saying you will work for free in exchange for possible future employment and experience are usually not that great.
The suggestion to contribute to an open-source project is, by far, the best advice. Open-source projects tend to be (but not all) meritocracies; you will learn far more by contributing to an open-source project because of the big-team culture...
Thanks. For bonus points, I'm a single dad raising a little girl with no mom in the picture. She likes science and math, and has a few ideas for a website or two :P
I'm a single father of an 11yo boy. He started saying things like "I want to make...." when he was 8ish and then I showed him a some html and got him his own domain to play with and call his own. But when I showed him view-source, it really took off. He went to some site that archived sites from 10 years ago of some games/toys/shows that he likes and viewsourced them all and started adding features to his site (actually plural now). After playing with that for awhile, he wanted to make "forums" and etc., and so needed some php. First with text files, then mysql. It has been fun watching him.
I'm taking it slow with her so I don't totally put her off it. She's starting to ask what I'm doing while I'm at my computer, and she was shocked that I actually made a website that she could access and use from a different computer. "You made this? Wow!"
I am considering open source as good place to learn and to generate some value for people. I do love sinatra framework. I pull source and read diffs every couple days. But they have core team which fixes all bugs in seconds, so I cannot find application there. And my goal is more to make some contacts and to know people in this field. I always was a silent reader and now I want to communicate with intresting people.
Vladimir, open source contributions tend to suck unless you're scratching an itch for yourself. You don't contribute for the sake of contributing, that's not going to work.
That's why you shouldn't work on Sinatra and other open source tools meant for developers.
Instead, build an app for a much wider audience. Do what an entrepreneur trying to sell his app would do, but with open-source - i.e. the end goal being to have real users that appreciate your work.
It seems to me that what he's doing is rather smart. It gives him an chance to be exposed to more opportunities than if he was trying to get hired and he can pick those on which he wishes to take a risk.
I would certainly change the wording a little to weed out the people who will just try to take advantage, but the overall strategy seems quite appropriate.
This will work very well for a person who's confident in their skills, but maybe having a hard time finding income from traditional sources. Get in, kick butt, make a statement and earn income.
Working on open-source has the same benefits, and while a good profitable gig coming from that would probably take longer than 1 or 2 months, the benefits of being a known open-source author will last for much longer and fare much better going forward.
I swear, every time someone (with a known/useful open-source contribution) came to an interview for any company I worked for, everybody was drooling uncontrollably and thinking "how the hell could we please this guy to stay, after all, he's Google material".
Unfortunately, more often than not, this mentality is taken advantage of. To the pressured manager, Vlad provides an easy-out. It also sets a bad tone for the relationship between employer and employee.
It's also a negotiation uphill battle to go from $0 to $50,000/year. Any looming economic crisis multiplies the battle, and in turn, valuable enthusiasm for the industry.
His work is probably better than most, but his self-esteem regarding his abilities is apparent - especially to an employer.
While I don't completely disagree with you, I think his chances of success are better than spending x amount of time applying for jobs trying to get an interview.
I don't recall which company, but in the last two weeks, one of the big name startups put out a competition to solve a problem regarding log file parsing. It was an opportunity, basically, to get a job with them. Now, with this approach, the OP might be competing with thousands of others - and his chances of standing out are reduced. He's taken the inverse approach, and HE can pick the challenges he wishes to solve, with same end goal: income.
It's not unique - it's what a lot of driven people have done in the past to get in the door somewhere.
> I don't recall which company, but in the last two weeks, one of the big name startups put out a competition to solve a problem regarding log file parsing.
You can also do work for non-profits or charities. Sparked.com always has some Web-related work that you could easily do in a couple of hours at a whack and build up a portfolio. (Sparked.com being a site I learned about here, and I've done a couple of little tasks there.)
Exactly, there's a big difference between pro bono and paid work. And trust me, the people you do free work for will expect A LOT MORE from you.
I would say the exceptions would be: a) it's a charity or a cause that you like, or b) you really need to improve a particular skill and it's more of an internship you're looking for.
Either way though, I give you mad props for initiative.
I generally agree with your parent that he ought to spend that time doing something that can showcase his skills and increase his chance to get hired. He can gain more exposure working on something in the open (a personal project, an OSS project) than doing some work for a single company.
To be honest, I was looking at filled submit link form about 10 minutes, thinking that my offer don't worth people time. I hoped to get something like 3 comments. So much attention is amazing to me. This was not planned as clever lead gen trick.
Many people have a misconception about this. An intern is a hired position (albeit temporary), and working for free is simply volunteering. There are unpaid interns, but there are probably more misconceptions about that. http://www.nytimes.com/2010/04/03/business/03intern.html?_r=...
Makes sense on paper but its a bad move, trust me, I've been there ... people simply don't appreciate free labor the way they would if they paid something for it.
Smarter move is to say "Hey, I bill out at $80/hr but to work at your startup I'll only bill $20/hr for 2 months", then make sure to send an invoice every 2 weeks with the bill at $80/hr with a line item showing the discount ... that way they are reminded of how lucky they are to have you.
PS: All this is moot if you aren't actually awesome at coding.
This is exactly the advice I was going to give Vlad. Start at a low $10 and work your way up the ladder. If your first contractor is happy with your work (ie. he'll be extremely happy for how cheap you developed a 100 man-hour project for 1k instead of 10k) then he will gladly pay you more for the next gig, or at least refer you to some colleagues. Then charge $20, then $30, and in no time you will have built a rock solid reputation and in a year you will be able to charge whatever you want based on your skills.
Never do work for free, ever. That diminishes your value and moral, and as collateral damage the coding market suffers as more and more people start working for peanuts.
glad you think so ... just remember that idea comes from failing often ... being burned numerous times by people who took advantage of my free labor :)
But will this work with someone living and working in Russia? It's one thing to work remotely in the US for a US company and it's an entirely different ballgame to do this when you are outside the US. Am I right?
What's the difference? I have a pair of designers/devs that I've spent a lot of money with, they're in the Ukraine. I've never met them. We skype, use basecamp and email to get the work done. They invoice, I pay through paypal. We've done several projects together and I plan to work with them as long as they're available.
Whomever hires Vlad, please pay the guy at least $10 an hour and gain some respect from the community not to be seen as a greedy bastard abuser. That, and all the life-karma you'll get.
Idea HN: Create a page for 'Hackers in need' where people can offer their services for $10/hr until they get out of the trouble zone. Lots of people can benefit from some quick and inexpensive coding while helping a fellow coder.
I like this "hackers in need idea". Though there needs to be a way to keep out the leechers/time wasters. A turing test of sorts or captcha for programmers?? Dunno...
You can require anyone trying to sign up to complete a reasonably difficult programming problem. It could either be sandboxed on the server, like Facebook's engineering puzzles, or require a short output like Project Euler. This would drive away people who can't do FizzBuzz and nontechnical people who want to hire someone to make Facebook for dogs or whatever.
I'm always wary of free labor, mostly because I did some before so I know what it can feel like.
When you work for free, you never feel obligated to deliever or perform at your best because nobody is paying you, so if you get fed up you can just leave -- why put up with the bad environment? Sure it might be fun for a week or two, but people get bored, and it is usually monetary of personal incentives that keep us going. Working for free provides neither of these. It isn't my project, nor am I getting anything in exchange.
Now I'm not saying that he will be like this, but this flipside of mentality is definitely something to consider when you hire "free" labor.
Are for-profit enterprises in the United States allowed to accept free labor? I know that nonprofit organizations can accept volunteer labor (and do so all the time), but I thought that business corporations and business partnerships that check the law (in the United States, at least) find out that they cannot accept free labor. What are the applicable laws involved here?
Unpaid internships are legal in the United States. I know of a few businesses that build these internships into their model as a way of keeping costs down.
"I know of a few businesses that build these internships into their model as a way of keeping costs down."
According to those regulations posted we see that a business can't legally have an unpaid intern to keep costs down. The pros for an unpaid intern would be; 'Intern gets experience,' and 'business has potential future employee.' Whereas the pros for a paid intern would be; 'Intern gets experience plus compensation,' and 'business gets profitable labor, and has potential future employee.'
You're absolutely right, but it's hard to enforce. I'm not saying it's right, but this kind of thing happens all the time in old media jobs and elsewhere. For example, if I brought you in as an intern and showed you how to write a story that's technically training, but your story may very well displace another reporter's story, too. Young workers live with it because they want to build portfolios and work experience.
I read an example on the net once that might clarify the "no immediate advantage" thing.
The guy was talking about working at a rail yard. At the end of the day, train cars were driven back into the yard for maintenance and/or storage. Interns were not allowed to do that, since it benefited the company. So the cars had to be moved back into the yard, then one or two were taking back out so interns could drive them back.
There is really something wrong in the job market when I work two years to get a good hire for my small development company (at a good hourly rate, telecommuting, etc.) and people like Vladimir have to give away their services...
I just hope that whoever hires him gives him something truly challenging and engaging to do. The biggest risk of working for free is that people think that since it doesn't cost anything anyway, it doesn't matter what he does (e.g. the internship curse).
Cut down 2 months to 2-3 weeks and your offer will pass for a reasonable probation period, albeit free to the hiring company. Alternatively, and this is more in line with what others are saying, - say "free 2-3 weeks of probation period and then pay me for this time if we continue working together."
I am just looking at this whole situation from employer's perspective, and the ability to test a developer for few weeks (and not needing to pay if he does not work out) is a really attractive proposition. On the other hand I would not consider dealing with a dev who's ready to work completely for free. Based on my past experience such devs are either seriously underqualified (and through that unreliable and require lots of mentoring and hand-holding) or they would gear down and slack if the project is not truly interesting for them. The money factor serves as a retainer and the conditional payment works as an incentive.
Vladimir, I'm not sure if what is your visa situation, but getting a work visa in the US is very hard and takes a lot of time and effort.
I would start researching it right away and collecting your documents (degrees, awards, letters of reference, etc...). If you just want to come visit, you won't be able to work here with a tourist visa so start looking into it.
Good luck.
Suppose Vladimir has an incorporated business in Russia, comes to the USA with his laptop and does some work for a USA startup from his laptop VPNned to his home base in Russia. The bills are sent from his Russian business address. After a while when his tourist visum expires, he flies back. Would this be viable?
First, I'm not an immigration lawyer so don't take my advice.
However, I've been through a lot before I got my green-card and very familiar with the process.
Coming here as a tourist and working (even for a Russian company) is illegal. even if you come here just for a tech conference without working, it's considered a business trip. bottom line, you have to declare you are here on a business trip cause they will check your laptop, go though your emails, find out you are performing some work for a US entity and deny your entrance and take away your visa.
Definitely, not something I would recommend.
I got a good job once by offering to trade 5 hours a week of work for desk space to (ostensibly) work on contracting. Within a couple weeks they were paying me full time. This is probably a better approach than offering half time for free.
I could never accept such an offer. I hope that Vladimir will gets at least a minimum U.S. hourly rate for his efforts. Edit: A minimum US hourly wage is a very decent pay in Russia.
Hey Vladimir, what kind of salary range are you looking for when you get hired on full time? Or what hourly rate are you looking for if someone was to work with you for a little while and decide "hey, this guy is awesome, I need to start paying him enough that he'll stick around and keep helping us out"?
"I can perform task like making your html pass validation tests, writing js widgets, adding ascii art to your nginx conf, writing specs for your code or hopefully implementing new features at your beloved startup."
I see what you did there. Testing to see if people are reading it all, are we? :D
Vladimir, you should find the open source projects that interest you and work on those, or build plugins for them. Why not volunteer for Rails or Sinatra? Or write Emacs plugins/extensions? Write about your experiences with these systems...blogging and contributing to open source will absolutely get you the contacts you are looking for, without having to resort to working in enterprise for free. While I would personally love the free help, I don't think any ethical entrepreneur here on HN would take free work, and we'd all encourage you to at least charge for what you're doing if it's going to be with a for-profit company.
While I agree that you shouldn't sell yourself short, I think it is also interesting that somone is taking the first step in letting their potential employer validate a potential employee's potential (too much potential there).
Also, it lets the employee validate the quality of the work.
I think it;s okay if done for a couple weeks (short project/assignment). If the employer likes him, he/she can pay him for the work done - out of goodwill.
Vladimir, I won't hire a developer to work for free. But if you can pay me 5$ (I donno what's the unit they talk here per hour, per day or even per week) I'll assign you work. And... you can have all the experience.
Your 1st assignment: As my office work is worse than yours like ftping files sending reports etc. you can create some apps for teaching me Ruby, Javascript etc. and then add my details too in you website.
Before I got hired on at my current job, I had planned to find a local charity and build a pro bono site for them. It (1) would give me experience and (2) would help out a charity I favored.
I didn't wind up having to do that, but I absolutely think it's not a bad idea.
Although of course you do leave yourself open to abuse if you don't have a good line in the sand visible to all.
Hiring someone for free is a two-way risk.
If you are working on some prototype, will you reveal the general core idea to him?
If you do, he might run away with it. If you don't, he will get bored and run away.
I'm not saying that he may be bad but just trying to highlight the two-way issue.
replying on hn since this may interest some other folks too.
If you are interested in building something of worth and like the idea of open social networks and producing opensource software, there's always small modules that need building to make buddycloud feature complete. Pick a part of the architecture that looks interesting to you (http://m.buddycloud.com/tmp/proofs/buddycloud%20architecture...) and chat to the rest of the team in our chatroom. More dev details on http://open.buddycloud.com
We also have some cash coming in... not a huge amount but enough to provide some support if you turn out to be good.
It's great that there are people here offering up opportunities to do this. There's a Rails one up there, and if you can put that on your resume, it's a plus.