Ask HN: Desperate Python Hacker Seeking Help and Suggestions

212 points by helpmehn ↗ HN
I don't really know where to start here, as I'm near the end of my rope.

For personal, family, and financial reasons, I've been looking for jobs (unsuccessfully) in west Michigan for the past year. Now, my savings are depleted, and I might be looking at homelessness if I'm not able to get something going quickly.

Background: I'm a graduate-educated Python hacker with advanced coursework in mathematics and a couple CS courses. In my studies, I've taken courses in graph theory, linear algebra, neural networks, numerical analysis, and theory of computation. I also audited a course in programming languages one semester simply because I was bored.

I first learned C nearly 20 years ago, and, though I can't really quote chapter and verse of the standard anymore, I'm still quite good at it. I've also used Python in school and as part of a short stint as a software tester for about 5 years. I'm also interested in learning Haskell and have been working on that for a couple of months.

I can code FizzBuzz in multiple idioms (functional, OO, procdural) in multiple languages. I know algorithms fairly well and love solving problems. I'm willing to do any test anyone has for me to prove my abilities. I do also have some public code on github, but it's just a couple small projects that aren't even really useful at this point.

In spite of all that, I haven't been able to turn it into a job in this area, because I have no real contacts in the industry (meaning I have to go through HR), and all the job ads specify things like "5 years C# experience," so I think my application is just ending up in file 13 because I don't tick the proper buzzwords.

I've tried Odesk &c and haven't been able to get any traction there. I don't really have the ability to do a startup because I'm about $100 short of "$100 and an idea" that's needed to do so. :/

I'd appreciate any help anyone has for me. Please either reply here (and please upvote! this account is, of course, a throwaway) or email to desperate_hacker@ymail.com.

Thank you all,

A Desperate Hacker

193 comments

[ 2.5 ms ] story [ 206 ms ] thread
Why are you not at PyOhio? The west michigan group carpolled. Broadly speaking: go to python meetups, network.
I second this. Also consider Python-related meetups and user groups, like Django.
I realize you're using a new HN account, possibly throw-away, or you may actually be new here. At the start of every month on HN is a "Who's Hiring MM YYYY" thread (which includes remote work), and a "Freelancer/Seeking Freelancer" thread.

The most recent were on July 1st, and on Monday new ones for August will be posted. The most recent are linked below, but keep your eyes open for Monday.

http://news.ycombinator.com/item?id=2719028

http://news.ycombinator.com/item?id=2719083

good luck!

Have you considered a drastic move to SF, NYC, Boston, or another startup hotspot? Having no money in Michigan is no better than having no money in a more expensive city, so cost of living shouldn't even be a factor here.

Also, don't limit yourself to Python / C. Stress that you're able and willing to learn any programming language and solve any challenge that comes your way. I know there isn't a single unemployed Ruby developer in chicago, thanks to Groupon.

Finding a job as a developer is actually not that hard, in this economy. Be thankful you're in this industry and not, say, the automotive industry.

Have you considered a drastic move to SF, NYC, Boston, or another startup hotspot?

Ah yes, it's so easy to move when you can't even afford $100 to start a company. Great advice.

Finding a job as a developer is actually not that hard, in this economy.

Looks like you're wrong, in this instance at least.

(comment deleted)
Wow. Nice tone, man.

> Ah yes, it's so easy to move when you can't afford $100 to start a company. Great advice.

Many, many companies would gladly pay to relocate a good developer right now.

> Looks like you're wrong, in this instance at least.

He's talking about places that aren't in BFE, and he's right.

Definitely, relocation costs vs recruiter fees? Easy, easy choice for a good hacker.
> Ah yes, it's so easy to move when you can't afford $100 to start a company. Great advice.

My biggest pet peeve about HN? The automatic assumption that if you're not looking to start your own company, you're a worthless idiot.

As bretthoerner pointed out, many companies will pay for you to move. And even if they don't, putting $5k on a credit card to move to someplace where you would actually be employed is still a better plan than starving to death next to your bed.

My biggest pet peeve about HN? The automatic assumption that if you're not looking to start your own company, you're a worthless idiot.

Woah, didn't mean to imply that at all. I just used the "to start a company" bit because he had said that in his post. I notice that attitude around HN and i hate it too.

As bretthoerner pointed out, many companies will pay for you to move. And even if they don't, putting $5k on a credit card to move to someplace where you would actually be employed is still a better plan than starving to death next to your bed.

You are probably absolutely right. I felt that if he can't put $100 on a credit card for some reason he probably can't put $5k on one, but i don't know what kind of relocation assistance companies provide nowadays.

Even if a company doesn't have a formal relocation program (it's unlikely a startup would), the founder/hiring manager saying "here's my personal credit card; put all the charges related to your move on it, and I'll expense it for you" relocation plan is probably quite common at a startup; the only provision would be that you have to repay it in a timely fashion if you switch to another job within a year or so. (IMO, if someone gets fired or just doesn't work out, it's pretty pointless to try to collect relocation/education expenses, since he's possibly broke; the case to worry about is relo for job A and then switch to job B at a competitor once you're already here).
I'm sorry, I didn't meant to snap at you.

And I imagine that putting $100 towards a startup and $5k towards a move to a guaranteed job are vastly different - startups can, and often do, fail. A job offer is much more steady - and if he has a family, stability is important.

  > My biggest pet peeve about HN? The automatic assumption
  > that if you're not looking to start your own company,
  > you're a worthless idiot.
I think that this attitude defies logic. Where do the employees come from if everyone is their own boss? Does this mean that when you hire employees you automatically assume that, "well they must not be looking to start their own business," and therefore think the worst of them?
I find it interesting that your hostility came through so easily and without consideration for how your words could effect someone seeking to employ you. (which is the actual reason I had read this post)

You seem to focus all of your attention on what "skills" you have without regard for the personality traits that make a desirable team member. I can guarantee you that you will meet many developers with greater skill than you poses.

When I look to hire a developer or if I were to be considering you as a co-founder I would first judge your ability to be an asset to the team.

I'd be curious to learn why you were let go from your previous job, but It is certainly a combination of your personality flaws, lack of relevant skills, and inability to adapt.

While the advice of moving to a new city may not seem plausible to you, your reaction to the question is quite telling. 1) You are condescending and inaccurately view "reality" 2) You are a linear thinker (consider becoming more lateral)

I'd wager that the reason you are unable to find a job is because of these 2 character traits...

I'd start with those

You write as though you're responding to OP, but this was someone else's remark. Wasn't it?
mtogo is a random commenter, not the same person who is looking for help in Michigan. I'd love to know what company you work for, though, so I can stay far away.
(comment deleted)
> Ah yes, it's so easy to move when you can't even afford $100 to start a company. Great advice.

I don't think he means he has no money (completely broke). I think he means he is about... So I hope he has a plane ticket.

(comment deleted)
I'd echo what SeoxyS has to say, in that companies want you in their doors, and that means heading to where they are. The market for remote workers is think to say the least, especially for folks that are not close to company headquarters (speaking from over seven months and counting of looking for exactly that).

However I'd be pessimistic about marketing your skills to shops that dont' use the tech that you have experience in. I've found with my own quest that employers are for the most part, not convinced that it's the programming knowledge, not the syntax that matters. This may be less of an issue in the hotspots though.

And yes anything manufacturing....well it's the 1930's all over again.

I'd also add that Boulder, CO's demand for developers is insatiable. Plenty of startups (and more established) tech companies here that are dying for more help.
Moving to SF/NYC/Boston is really good advice. I moved to San Francisco from Rochester NY after running my own company there for a while. I had NO MONEY left, in fact I was way deep in debt. Surely people thought I was crazy but you know what, I wish I had moved sooner. I waited a year to move out here and I will never get that year of life back. Now, after being here 2 years I've paid off all my debts and have saved up a bit of money!

Don't delay, we have more job openings in the valley than we can find qualified programmers to fill. A full on workers shortage! Don't delay, move out here already, get a job, and be happy!

Move.

Really.

SFO, NYC, Boston, Atlanta, all need tons of work.

Do you have to stay in the area? Would you be willing to relocate?

I agree that any developer meetings (not just python) would be good for networking.

Wait, why are you mentioning FizzBuzz? It's like saying "I can walk in many ways".
I think it's a way of saying "I'm not unemployed because I'm incompetent, and I'm not emotionally attached to Python".
Sure, but it comes off as "I think FizzBuzz is some sort of significant problem, as attested to by my mention of it", which acts pretty negatively.

You wouldn't expect a carpenter to say "I can both screw and unscrew screws from wood". It's sort of a given if you have the slightest bit of domain knowledge.

Depends who you're talking to, I think. Hip hackers on HN are going to laugh at you, but hiring managers? Maybe not.
Jeff himself said, rather horrified when people started posting solutions to FizzBuzz:

> FizzBuzz was presented as the lowest level of comprehension required to illustrate adequacy. There's no glory to be had in writing code that establishes a minimum level of competency. Even if you can write it in five different languages or in under 50 bytes of code.

> The whole point of the original article was to think about why we have to ask people to write FizzBuzz. The mechanical part of writing and solving FizzBuzz, however cleverly, is irrelevant. Any programmer who cares enough to read programming blogs is already far beyond such a simple problem. FizzBuzz isn't meant for us. It's the ones we can't reach-- the programmers who don't read anything-- that we're forced to give the FizzBuzz test to.

I think that mentioning it as a skill (unless it's in jest), seriously hurts anyone's chances at being taken seriously. Exactly like someone would be dubious if their carpenter said "I can definitely make that cabinet for you. Hell, I can screw and unscrew!"

I didn't take it so much as a "skill" as a, "my lack of employment is not because I can't pass fuzz tests"
it comes off as

I don't think it came off that way at all. He's stating that he can demonstrate a basic, fundamental grasp of code structure in several languages and types of languages, which is pretty good.

I don't know, maybe it's just me, but I think the only thing easier than FizzBuzz is Hello World. I wouldn't advise anyone to mention they can write one in their resume.
I don't have any reason to believe he put it on his resume.

As for complexity, FizzBuzz is nothing like Hello World. Hello World only shows that one knows how to make a program compile/interpret and display fixed output. FizzBuzz demonstrates the above, plus an understanding of looping, basic arithmetic operations, and how to create program flow from that. Like it or not, that covers most of the actual coding requirements of probably 90% of jobs out there. It shouldn't be a deciding factor in getting hired, but it's an excellent first step in weeding out those who shouldn't be considered.

I recently interviewed a Ruby programmer, who was unable to write a Hello World in C, despite the fact he studied C and C++ in university.
You wouldn't expect a carpenter to say "I can both screw and unscrew screws from wood".

Given that a huge number of professional programmers can't do the programming equivelant of screwing and unscrewing screws, that actually does make a difference.

True though that may be, I don't think the OP's intention is to convince us that he's less than utterly incompetent...
I took it as a lighthearted, joking statement.

Besides, just the fact that someone knows about FizzBuzz is a good sign in my book (also the fact that they know about HN, but I digress).

Heh, I think the fact that they know HN is more of a testament to ability than FizzBuzz indeed :p
It also says he reads blogs like coding horror. I believe it refers to http://imranontech.com/2007/01/24/using-fizzbuzz-to-find-dev... (made popular by http://www.codinghorror.com/blog/2007/02/why-cant-programmer... )

Fun thing to say on HN... maybe not so good for a conversation with random person trying to hire you ;)

I'm not so sure about that, if I was interviewing someone and they said "I can totally write FizzBuzz in 15 languages", I would take it as a general sign of awareness of the programming community. Pretty much every good programmer I know has been a regular reader of Coding Horror, Joel on Software, and other famous programming blogs at some point, if not currently.
The posters further down have it exactly right. It was one part joke, one part showing that I read programming blogs, and one part "yes, I really do know how to program, unlike people who fail FizzBuzz."
Other than the suggestions to move, why don't you have any industry connections in your area? Go to networking events, meetups, conferences, etc.

If you can't find any get on meetup.com and create a Python meetup. Even if you get 1 person to come you can say you organized the local meetup group.

Don't bother, I submitted a resume months ago that would be a perfect fit for one of the positions and I haven't even heard back for a rejection.
I don't understand in what kind of world you live in, where it's better not to try because you might be disappointed.
What? I said don't bother because they aren't replying to submissions at all.
... based on a sample of one, though.
Make that sample of two, as I had the same experience.

granted it's a sample of two out of who knows how many, but there it is. Will still be applying again but it won't be at the top of the list sadly.

(comment deleted)
Try temp agencies and contract agencies. I'd be shocked if they don't pick you up. I've been told they are pretty desperate for warm bodies right now and know several people that have gone that route out of desperation. Sure it is not permanent or glamorous but it will pay the bills.
elance.com web design. you can get jobs filling out wordpress themes and probably make $1,000 a month at least
The original poster already noted that he had tried ODesk and similar websites (of which Elance is one). I think it would difficult for him/her to make $1,000/month (especially working with WordPress) while competing against developers who live in places with lower costs of living than Michigan.
odesk can be tougher than it looks. I landed a couple of ruby / rails based gigs for $50/hr there, but then the work dried up, and all I could find were lower per hour jobs, and sketchy pay when project is completed jobs (without a complete spec).
There are plenty of people in Seattle (and I'm sure most big cities) having a really tough time finding people to hire. In Seattle, I know of several companies looking for python devs.

As other people here are stating, you need to move.

Do you need to move, though? If programmers really are that scarce, is a plane ticket + hotel enough disincentive to interview a good candidate?
Repeating the advice of others to move, if only in the hope that the repetition will alude to the validation of said advice.

I usually don't have a good word to say about recruiters but in cases like yours it might be worth contacting a few who work in one of the hubs you could move to, and have them look at your resume. They'll help you brush it up if needed but more importantly help you validate that there are employers looking for your skill set (because if they don't think they can place you, they won't spend any time with you).

Have them set up 3 or 4 interviews and scrape together the fare to come here and you might not need the return ticket. Just don't indicate to them that you are desperate but white-lie and tell them that you just want to relocate to SF/NY/etc.

BTW I moved to SF from a different country (UK) 5 years ago because it is where I needed to be for my career - it was hard but I did it and it is one of the best decisions I made. The winters are better here too! :)

Agreed with Ben. I'm an Aussie transplant and know the pain that comes with moving but have to say it was the best decisions of my life.

I help the portfolio of Charles River Ventures (early investor in Twitter, Yammer) find exceptional hackers to help change the world. Happy to look over people's resumes and give feedback. If you're not from Silicon Valley, I'll set you up with a half dozen interviews and can help you overcome visa issues -- I'm passionate about seeing the world's smartest people working in startups (either as founders or early stage employees).

Email: elias @ crv.com

"5 years C# experience,"

/\ Try bending the truth.

Firstly you'll need different CVs depending on the job you are going for. So take the one saying "Did python for 5 years at XYZ corp" and change it to "Did python and C# for 5 years at XYZ corp" - This should get you past the HR gatekeepers and in the meantime you just have to skill up on c#. When you reach the interview with technical people they will be more reasonable - providing you are actually comfortable with c#.

On this point remember that "5 years C experience" != "5 years commercial C experience".

If you were doing commercial-grade programming in Uni (or before) or any open source then consider that valid experience.

Finally, just because a job says 5 years experience, and you don't have it, doesn't mean that they won't consider your resume if you submit it. Better to hear the hiring manager say "no" then not submit your resume at all. Case in point, I don't have a college degree but I think every job I've ever held in my 12 years in this industry has asked for one on the requirements. I don't have one but I can do the job so I just applied anyway otherwise I'd never work!

Have you tried looking through some of the more recent "Who's Hiring" threads here on HN?

Here's the most recent one from June, looking for freelancers (I'm not sure if a July one was posted):

http://news.ycombinator.com/item?id=2607058

And here's a list of some more recent threads:

http://news.ycombinator.com/submitted?id=whoishiring

I imagine you're pretty stressed out, but hang in there, and good luck.

(Woops – looks like jcr beat me to it. His/her comment has even more recent information.)

I agree with some people that a move might be your best bet, though from your post its not obvious if there is anything (such as family) keeping you from moving. I think its a shame that oDesk did not work out for you - maybe try another service such as eLance where I personally feel (as someone who employs via these services) that a better quality of person is found on there. Yes there is the chance of competing against lower waged people in other countries, however I personally employ based on skills and communication and these days the costs are not as wide as they once were.

I am curious as to why you have not found something locally. Surely there are groups you can join, either on or offline, which would help you.

I hope that some of the comments on here will help you or spur you into some action

Maybe being blunt, but if you're seriously about to be out of house and home because you can't find a job, you need to lower your fence. Aspiring to be a programmer/hacker/startup guy is great, but even a job stacking shelves in a shop would give you enough money to survive on while you continue looking for a job you'd enjoy (Or working on your own projects). Put it this way, living on the street gives you hardly any chance of getting somewhere you want to be. Having a house and a crappy job for a few years while you get back on your feet is a much better choice.
Agreed (there are many steps between "can't find a job coding python" and homelessness), and to extend this a bit -- if you're panicked about a desperate money situation, it's gotta be hard to concentrate enough to write code worth a damn, or do any other task that requires concentration (including having the presence of mind and confidence to properly network with other hackers in the rare occasion you may see them IRL).

I'd try finding some kind of homeostasis first -- possibly including some kind of job you'll never put on your resume, and cutting living expenses to the bone if you haven't already; and is there any social services support available? -- and once you've stopped the downward slide, it gets easier to think clearly about what to do next.

And as mentioned by others, definitely check out the "hackers wanted" and related topics posted monthly; that's where I got my current gig. But it takes time to get through to where you're actually earning money, even if you start some conversations with interested potential employers -- particularly if you're trying to work remotely! -- so you very likely need to take steps immediately to get things back under control regardless of what options turn up there.

This country is harsh and there is NO safety net for the able bodied at the end of a rope. Deliver pizza (and get shot), stock shelves, what ever it takes.

You are not your job. It is illegal to be homeless in the USA.

I don't really understand the downvotes. Please explain.
Believe me, I'm pursuing that route as well.
Just moved from Grand Rapids, and can say there is a very small but growing startup scene in Grand Rapids.

Although I didn't get to check it out, there is a great Python User Group that meets regularly (I believe every other Monday) at various locations in GR, usually at Calvin College. Join the group and they'll send out regular updates. Ben Rousch is the contact there, he also runs the local Web Dev User group. I've exchanged emails with him before, he is a great guy and very helpful. It might not hurt to get in touch with him.

More importantly, just recently someone put up a job posting on the group looking for a python/django programmer. I suggest you check it out. http://www.fiveq.com/blog/employment/fiveq-employment-opport...

It might not hurt to drop into Atomic Object, they're growing and usually hiring as well: http://www.atomicobject.com/pages/Working+at+Atomic+Object

If I can be any help to you, perhaps putting you in contact with other people then let me know. My email is listed on my profile page.

Best of luck.

I feel like I was in a similar position. My advice is gonna suck, but you should really try to start working at a grocery store/shitty party time jobs/borrow or something to save up about $2000 and flat out move. That will be enough to get you to the bay area, find a job, and live for about a month, maybe even get a room.

If you come to SF, you'll be able to find a job doing something somewhere to get off the ground. I promise you this.

As someone born and raised in Michigan and whose partner was also born and raised in Michigan, my advice is that other than visiting grandparents and hiking and touring breweries, you will find your opportunities tremendously expanded by as quickly as possible getting the fuck out of Michigan.
Another Michigan ex-pat here to completely agree. Grew up in mid-Michigan, went to a big university there for CS, and I wasn't interested in writing .NET or Java for an insurance company. That led to moving to SF to hack on Python and JavaScript with other hipster hackers.

The only thing I really miss is Michigan's summer heat (it's mid 60's and windy here - in July).

Sunnyvale & Co are consistently in the 70s
woah, i want to hack python with other hipster hackers!
Ummm....move to the East Bay. Past the Oakland/Berkeley hills it's between 80 and 100 through the summer, and you can always Bart into SF. Rent is going to be a lot less too.

Of course it will never be as HUMID as in Michigan, but...do you really want that?

Definitely this. I live in the Boston area, and there are way, way more job openings for Python programmers right than there are qualified applicants. We3 have been trying to find good candidates in the area for months at my work, and I get a couple emails each week asking if I am interested in interviewing for other Python jobs.
I hear Ann Arbor can be OK.
Former michigander here, seconding all the advice. There are more jobs in Missouri than in Michigan.
And if you are really bold, just get the f out of US! You'll learn many things about life, human beings, etc.

My own experience: got out of France, to China, found easily jobs, now work in one of the big Chinese SNSes (written in python, by the way).

A few ideas

1. Consider where it is going wrong. Are you getting interviews for things you are suitable for? Are you getting knocked back at the interview stage? i.e. it it you CV that needs sorting out, or the interview? Or is it that there is nothing that matches your skills? Regardless of anything I would get someone else to give you feedback on your CV.

2. Find companies using the technologies you use and ring them up to see if they have any work available, rather than waiting for adverts.

3. Consider being a tester. It is rare to find a good tech skilled tester / QA and they are valuable.

4. Get the skills for the jobs that are available. Frankly if you are desperate then put 5 years of C# on your CV and work night and day building something in C#.

There are a number of open source Python projects that have vendors associated with them (or large corporate users). OpenStack is one such example, but there's also various scientific libraries, e.g., NumPy/scipy that may better suited to your background. Typically open source-heavy companies are more open to remote/distributed work: I am not saying working remotely full-time, but something along the lines of working on site for the first six months (to prove yourself) and then working remotely most of the time/flying in on site for one week a month.

Consider this: identify several such projects along with the companies that are heavily involved in these projects open source communities, i.e., ones that are actually contributing and/or heavily modifying them.

First, send a patch, do something to "get your feet wet". Then pick a substantial sub-project (not something trivial), start contributing to it and at the mean time contact the engineer/managers working at associated companies (as not to be trapped in the HR resume black-hole). In the interview, at least mention the work you're doing.

Chances are they will be willing to fly you out to interview and help relocate. Be honest with them and say that (due to family reason) you'll need to at the very least travel.

In the worst case, you could do the reverse of working remotely/visiting the office frequently: rent a room in the remote area, work in the office most of the time, travel to Michigan for weekends/a week at a time: this will be difficult, but at the very least you'll be able to establish more "formal" experience and industry connections that you could translate into a more sustainable arrangement later (don't, however, start a position knowing that you won't be able to stick for at least a year and a half to two years: that would not very ethical, especially since you're looking for a company that will invest in your career). Of course, some family situations, e.g., elder care won't allow for that. In that case, still the advice applies: you're far more likely to find a remote-work scenario in an open-source related company than elsewhere.

Quick clarification by: "pick a substantial sub-project (not something trivial), start contributing to it", I mean:

_Implement_ a non-trivial module for the project in question , i.e., do much more than fix a few bugs.

Since you are junior (no actual development experience), it might not be realistic to hope for a remote position even in companies otherwise friendly to it. You need to make it a point to move for at least a few years: you'll want a company that can invest in you and give you a chance to prove yourself, before you can do more unorthodox things.

just curious have you contributed to open source? If you have how did you get started with little experience?
My advice. Don't do contract freelance work. It is risky in that if you're not a good business person, you will string yourself along under the illusion of paying the bills. But you'll slowly be moving backward as projects take longer than you expect, you undercharge, etc..

You really may need to uproot your family. I know that the tech economy is booming in several major urban areas. I'm up in Toronto, and have headhunters calling me like crazy. There is a dearth of programming talent. I know several people in San Francisco and they say that the valley has the same problem.

The situation is so desperate that I know several companies that would entertain hiring somebody in Michigan to do work for them remotely. It might take a trip up to Toronto to meet with some folks, but that's just a several hour drive.

I'm actually looking to move back to Toronto, where's the best place to look for these jobs? Most of the stuff that I hear about are corporate Java and/or C#/.NET type jobs.
Seriously, start on Twitter. Everybody who's anybody in the Toronto developer scene is pretty active on Twitter these days. Find a few developers with blogs, follow them, then start following a few of their followers or people they RT. From Twitter, start attending some meet-ups. If you're an iPhone, Android, Python, Ruby or JS developer, it's a pretty good job market right now. Most of the places you'll want to work at are right in the downtown core so you can bike, walk, or subway/streetcar it to work. That also makes socializing vastly easier as everyone is clustered in the same area.

http://www.meetup.com/HTML5-Web-App-Developers/events/225564...

http://techtalksto.com/

I know there are a ton of Toronto lurkers on here too.

  > start attending some meet-ups
This is obvious, but doesn't work so well when you are not living in the area. Flying from Portland to Toronto to attend a meetup is a bit pricey. I did meet someone from Freshbooks at OSCON though.

I'll also mention that when I was last living (~3 years ago) in Toronto, I didn't find it easy to hook up with the local Python/Perl communities. Heck, I sent a request to join the Toronto Perl Mongers mailing list and never got a response. I assumed that there wasn't much of a community.

There are a bunch of big python/django shops in Toronto... more than I can count on two hands... and they are all hiring.
Just curious, what do they do about visas for American employees?
NAFTA has some exceptions for software-type jobs, but there is a requirement of 2+ years of experience. I looked into this like 6 years ago, though. I don't know what the situation now is. Some companies are not too keen on treading the work visa waters though.
Thanks, I ask because in terms of geography and distance, it's an order of magnitude different than, say, a programmer coming to the US on an HB-1 or an American going to the UK. It seems like they could get some decent American programmers without the new hires having to move too far. But probably not without visa help, right?
If you have enough qualification points, and sometimes subject to a province's discretion, you can get a Canadian work permit without being sponsored, which can make it much easier to subsequently find jobs. From what I hear, applying directly to Alberta or Quebec via their provincial-level immigration offices is the best bet (with the latter it helps if you can say you know at least basic French).
Don't underestimate the power of 'cold-calling.' While it's terrifying for people not used it to it, you'd be surprised how friendly people are when contacted out of the blue for a legitimate question. Find some developers on open source projects you like, see where they work (either location-wise or company-wise) and send them an e-mail saying "Hey, I wanted to thank you for writing/contributing to the X software package. I've noticed you live in / work at Y; I am currently seeking a development job in Python or C and would be interested in moving there/working there. Do you happen to know of any opportunities available? If not, again accept my thanks for X software." Don't attach a resume, if the person is responsive the first thing they will do is ask for one.

The key here is to actually want to move to that area, work with that company (whether it's 10 or 10,000), or work in that field. People detect insincerity relatively easily, don't contact people unless you actually want to work with them as opposed to anybody. On the flip side, never let yourself be discouraged by thinking "nah, I'm not good enough for them." The worse thing that happens is the person doesn't respond; this may feel bad but you end up with a thicker skin and learn how to do it better the next time.

Also: do not spam. Again with the insincerity thing above: this technique only works if you want to work with them instead of anybody, and I promise you they can pick up on that.

Thanks. I appreciate the suggestion.
The power of advertising at work! At the Perl Lightning Talks on Thursday at OSCON there were dueling advertisements for Grant Street Group and Booking.com. Grant Street Group does remote work out of Pittsburgh and Booking.com is based out of Amsterdam (but they will pay for relocation).

Granted these are both Perl-oriented jobs, but if you really are 'at the end of your rope' then I would make an attempt.

[I say the power of advertising at work because they both successfully pimped their employers]