Ask HN: very qualified but can't find a decent job. What do I do wrong?
I'm in the middle of a very painful job search in London and here for help. My background is Java, I used it for 10 years in a very latency- and performance-critical environments, so I can say I'm very familiar with the nuts and bolts of language and the JVM. As any HN oldie, I know that just doing your job is not often enough, so in parallel I launched my own iPhone app (which as of today grew to 20 KLOC of C and Objective-C) that was covered by major news outlets and featured by Apple themselves in the Education category. I'm very proud of the work I've done. I can do Python (wrote a Twisted-based backend for collaborative app) and Haskell (when asked, can code on a whiteboard). I did Andrew Ng's course online last year. I REALLY can deliver.
At the moment, I work for a major bank in a position that drives me nuts. Everything about this job is wrong but most important is that I don't feel that I use my skills at all. I started my job hunt this spring, applied to all attractive companies I know of in London and pinged every available contact in my network.
The results were underwhelming. Google UK rejected me after an on-site interview. Twitter UK were hiring for a very relevant position but listed Scala as a requirement — I wrote a small RE matcher in Scala in a few hours and sent the code and my resume directly to their engineering manager whose contact I got from my network. No reply. Facebook UK and Amazon UK didn't want to even do a screening interview with me. 90% of other companies didn't bother replying. As a net result I got one offer from a startup I liked but refused it because I didn't feel we're on the same wavelength with the founder who interviewed me.
I'm pretty desperate at this moment and feel that I'm doing something wrong. If you're running a cool software company, what do you think a senior guy from a major bank must write in his resume to stop you from shredding it on the spot? Thank you for any advice.
93 comments
[ 6.0 ms ] story [ 100 ms ] threadThey are two steps here, first to get the on-site interview and then to pass the interview. You talked about problems in both of them.
First, how to get the interview. For me, the trick is to get a reference and apply to the right position. You have specific background in some languages and environment. It is hard for the companies to decide where to put you. If possible, start with networking with people in your target companies. Get to them to know you first, they will help you on finding the right position to apply to.
About the Twitter manager who didn't reply. Try again, with other methods. Find a direct reference instead of simply email him. Or you can hang out with some other Twitter engineers first and they may help you out.
Second, for the interview part, there is little description here so I am not sure if you did anything wrong. Generally, solve the problem by working and discussing with the interviewer; showing your passion; and relate yourself to the company. It is hard for the interviewer to see the value of your project and weigh them during the interview, solving the problems they give is more important.
Also, there might be a bias since you have the major bank background. I cannot elaborate or back that up though.
Finance industry in London is very insulated (i.e. people never leave banks except for other banks because of the huge salary difference banks able to offer), so networking is a hard thing to crack quickly. I'm working on it though, so at least this I do right.
Then why aren't "Django junior" and "RoR junior" on your resume, with links to your portfolio? Never mind faking it, it's not hard to become a gonzo Rails artisan who knocks out agile websites more often than most people wash their car. And you get to the interview and they are pleasantly surprised to find you are a hardcore backend engineer as well.
My suspicion - based on own experience and some hints in the OP's post - is subtle ageism in the industry.
Experience, track record and ability go out the window when the company you're interviewing for are in their early 20s and don't want any old guys cramping their style.
Odd maybe but when I read numerous posts on "developers in hot demand" it just doesn't gel with reality. I had way more offers 10-11 years ago after the dotcom crash than I've had the past year or two, despite much more experience (both in the industry and open source).
- Java: 0 results - iOS: 3 very junior positions, only 1 London based - Python: 5 results, 3 of which are very junior + 1 discloses zero info about the opening.
Second would be that there is something about your non-technical skill-set that is sending up red flags. What feedback did google UK give you after the rejection? Was it a bad fit technically or culturally?
1) Can we hire someone internally? 2) Can we hire someone we know via a connection? 3) Who has the best resume?
9 times out of 10, someone is found in the first two options. So, the first step should be getting on the radar of companies you'd like to work at, then let the resume be the ammo to help seal the deal.
Better advice would be given by a local in OP's job market. "Come to such and such event, which is every Thursday at X pub – many tech folks mingle there and it would be a good first step."
Absent such concrete guidance, "work on your network" is stating the obvious.
London Java User Group. http://www.meetup.com/Londonjavacommunity/
London Python User Group http://wiki.python.org/moin/LondonFinancialPythonUserGroup
It's second only to "update your resume!"
In a nutshell, spend time in small groups - explicit networking groups, or networks of friends/colleagues with similar but disparate interests. None of this will be 5 minute job, but the OP has already invested months cold-emailing for jobs and that hasn't worked. Spend time investing in keeping your own network connections going - meet up with people regularly, etc.
Perhaps more importantly - start your own group if you need to. People will end up finding you and reaching out to you with job offers because they want to access your network. You'll sometimes hear about gigs before they're available anywhere else (not often, but it happens).
Check for creativity? No. Check for passion? No. Check for problem solving ability? No.
No experience in the dominate internet development language for the last 15 years: Awesome!
For example, "I'm looking for something that pays me back in work I enjoy, rather simply financially like my current high-boredom, high-remuneration City job".
...OK, that's pretty terrible. But something along those lines, maybe?
1. You didn't say how old you are. After 30 you should rely on relationships and reputation more than your ability to describe skills. Tech employers want malleable underpaid wage slaves.
2. Perhaps working at a bank makes you look unattractive. I wouldn't want to hire anyone that was brain damaged from working at a bank.
3. Perhaps you are too narrow and apply for broad jobs.
4. Perhaps the inverse of 3. Consider what job you are applying to and customize your approach to that.
5. It's a numbers game. Keep on trying!
2. What can fix this image in your eyes? Github account?
3. Maybe this is the case. When I was searching for a job last time (and landed this job in a bank) I noticed how differently banks and non-banks react to my resume. In short, for banks I have worked in a company they know and did the things they want to do too. For a software companies, I worked in a boring BigCo and did some things they never will deal with. It's all great but it's not clear how to fix this — I wouldn't say there's loads of attractive tech firms in London compared to SV, so if I'll narrow my search to try to find better suited companies, I'll be left with that Twitter opening.
5. Thanks for that!
So in a sense it might be frightening hiring someone with more experience, they might also be worried about your salary demands.
There also seems to be a (probably unfair) stigma that banks are where mediocre programmers go to die. So there may be a fear that you have been hopelessly tainted by Enterprise SOAP or whatever and need a 2000 page spec document to get anything done.
If you have skills writing performance sensitive code there is a market to be exploited in terms of contracting/freelancing as this might be a gap that can't be easily filled by more general programmers?
Also, I'm guessing that Google, Twitter, Facebook & Amazon get several applicants a day. So having a contact on the inside might be more helpful.
A somewhat similar story was I tried to work at a consulting company here in town, and got turned down. Two years later I had worked with a couple of their consultants at another job, spoke at a user group meeting (where the leader was another of their consultants). When I left my job for a different one I had 2 people from the agency talk to me about applying with them.
I had already accepted the offer from another place, but in that time I was able to showcase my skills to the point they were at least interested in talking to me. Whereas 2 years prior they weren't.
The lesson? Network, if you're as good as you say you are, do some user group speaking or showcase your code to some people. Hit a couple local/regional conferences and start talking to people. As they get to know you, not only might they hire you, but they might also pitch your name to someone else.
From my past experience interviewing java developers with LONG runs developing java such as yourself was extremely boring. All of their resume's looked the same. Full of java related keywords. All with the same experience. None of them had soul. None of them seemed to develop anything out of their comfort zone. NONE of them knew what github was nor had an account.
Out of 300 people, over about 6 months we found only 2 java developers that seemed to be worth anything outside of their extremely large teams they were used to working in.
Now I don't know anything about you nor have I seen a resume of yours but I will say that when I see Java developer with 10 years experience writing java, it sort of already puts a negative connotation on the experience right away.
If your trying to sell yourself for a startup, your going to have to do some major overhaul of your selling points.
You are really going to have to highlight your experience with other technologies and things you are doing to keep yourself current with the times. What have you done in the past 10 years besides java? A lot has changed since 2002 in the world of development!
Last but not least, I can't believe you turned down an opportunity to work in a new environment. If all you have is years and years of java and someone (even if your personalities don't match) offers you a job doing something else and you don't take it! Its obvious that times are really not that tough in your current position.
Your going to have to suck up your pride a little and get some relevant experience in the job type you want before you can become picky about personality matching. You should be happy for the opportunity to even get considered.
Knock that AOL syndrome out of your nose and dig in. If you really want out of the banking industry, get a job for the experience. NOT to meet your new best friend or be on extremely hipster wavelengths with your boss...
To me you don't really sound all that desperate if your passing up job offers.
Regarding your other points: I think from the description it's clear that I was doing something meaningful after 2002 (Haskell and Python should be at least noticeable).
Regardless of that, during that 10 years I did lots of stuff. I implemented a blazingly fast key-value storage backed by file-based B-tree from scratch. I wrote a concurrent distributed pool. I'm not a J2EE/Spring/whatever guy. Now one thing I hope is that people reading resumes prefer this type of experience to 20 line Node.js hacks.
I will tell you from personal experience, its a daunting task reviewing resumes.
I believe that most have it right, if you want into a big player your going to have to figure out the inner workings of the company to figure out how your resume gets to the people in charge.
Its really a numbers game, don't get discouraged and send your resume out a hundred times over. Tailor it to each position you are trying to get. If you want a backend dev position, then make sure your resume looks like your a backend dev. Also try to figure out what recruiter companies the business are working with. Every company uses recruiters, figure out who they are using and get in the door with them first. find out how many people they have placed at said company. If they havent placed anyone there then you probably don't have that big of a chance. However, if they have placed someone there before, then try to get some inside info as to what the managers are looking for.
Hiring managers are more likely to give feedback to recruitment managers than directly to the candidate. Candidates tend to get emotional when told they don't have the position. No one wants to deal with that.
Another thing to do is to work with a professional tech resume writer. Your a professional developer, not a professional writer. Have a professional take a look at your resume to make it clear, concise and to the point and seriously nobody reads a 10 page resume!
This statement raised my "shallow language hipster" alert.
And it sounds like this guy is trying to get OUT of java and into something else. Does his 10 years experience in java directly translate to being a senior/expert person in any other language?
So with that being said, the OP is going to have to do something with his resume to get above that stigma. Developing Java for 10 years at the same company and the exact same project just raises flags at every single level for me.
Now he did say he did some personal projects where he made some stuff on his own. I will honestly say that really doesn't make him qualified to be a senior level person on an iphone/android/something/anything development team.
> Does his 10 years experience in java directly translate to being a senior/expert person in any other language?
Yes, it does. Given a Python project, I spent half of the first day (literally, half a day) using Google in parallel with coding to find some syntax-specific things out. I.e. how to declare an empty map, how to declare and use a lambda, how to throw/catch an exception, how None is handled, etc. After this half a day, the difference between me and your Python hacker is 5 times less compared to what it was before. Add a week of Python coding and I'll be familiar 90% of most used libraries or a framework you use. My capacity to write a Dijkstra algorithm from scratch, on the other hand, stays with me forever.
Having said that, I understand that if assigned to a Haskell project, for example, I'll have some harder time, of course. Python is just really simple.
With this regards I like Google interviews the most. They take essentially the same approach: choose the language you like to solve our problems, we'll be testsing you for some more serious things anyway.
> Developing Java for 10 years at the same company and the exact same project
Not sure how I made this impression: I worked in 4 companies throughout those 10 years, in very different Java projects.
> I will honestly say that really doesn't make him qualified to be a senior level person on an iphone/android/something/anything development team.
It's too bad you don't have a chance to interview me and compare to your senior iOS guy, really.
Using "lots of" technologies is a meaningless metric, except if you want a code monkey to work with whatever for some startup where everyone has to wear 10 hats.
If I was building the Curiosity I would get a guy with 20+, not 10, years of experience in just embedded C (or Ada or whatever).
If I was planning a new JS heavy web app, I would get a 10+ years Javascript wizard. If he had the JS chops I could not care less if he also dabbled in Haskell or APL.
So I think you are just clarifying my point here.
The OP has 10 years of experience in java. so I would consider him for a java developer position. I don't believe that is what the OP wants though.
Another thing is not the resume itself, but its format. The most effective resumes I've seen (those that get the interviews) were quirky one- or two-pagers. Can you perhaps strip yours of all personal info and post here?
What about Android development?
Someone who is 100% just a Java-the-language developer may be stuck at a bank or other bigcorp. Someone who's got a lot of Java experience and can use the best aspects of the JVM ecosystem while also leveraging other non-Java tech should be able to do much better than the OP is saying he's doing.
The YC startup I work at now uses Java.
http://rssident.com/mash/?t=job&e=java
What you don't say is what you want to do. What are you passionate about? You know that "just doing your job is not enough" so you start a side project, great how did you pick it? Are you more passionate about it than your current job, if not why not? You had complete freedom to work on any side project you wanted. Do you even enjoy programming? Why do you do it? Why not gardening, or auto repair, or architecture?
People who are passionate about what they are doing are 10x better employees than ones who are doing it for some externally generated reason. Ask yourself what you really like doing and pursue that. You've got a job (great) and if you discover your passion is something else use your job as a springboard to cover expenses why you develop enough runway to leap into what your passionate about. Don't try to do that at a start-up though, its really really hard to be passionate about something other than the start-up's mission and be successful.
"... something to be passionate about is the main thing I lack in a job."
This is backwards. A job generally won't give you something to be passionate about, passion comes from inside of you. Passion is the thing you choose to do when you can do anything, passion is the thing you invest in when there is no obvious 'reason' for doing so, investing in your passions is its own reward.
Small anecdote, worked with another engineer at Sun who was struggling, and he asked me why it seemed so easy for everyone else and so hard for him. We talked about passion and its not 'easy' for someone who is passionate about something but it is 'fun' so they exude happiness digging into the problem not pain. At its root there is a attitude difference, just like people who are passionate about fitness aren't excited about doing exercise, they are being excited about how this exercise is giving them new capabilities in fitness. They look past the means and luxuriate in the ends. That is following your passion [1].
The engineer I knew realized his passion was helping folks get ahead in life, he was always happy seeing someone get past a challenge an on to something more fulfilling. He ended up following that passion and last time I heard was living in Mexico helping folks build sustainable communities without the stigma of 'technology backwardness.'
Ok so back to your observation, there are lots of 'engineering driven companies' they make all sorts of things from sex toys to intercontinental ballistic missiles. Its a wide range and 'engineering driven' doesn't say a whole lot about passion other than solving problems. But if solving problems in an engineering context is what you like to do, then you might start looking at jobs for program manager rather than engineer. I don't know of course, I'm not you. But its a way to approach your question which I suspect would get you further down the path.
[1] A litmus test might be, imagine you've been in a car accident and you're paralyzed from the neck down. What thing did you wish you were doing yesterday before the accident? Lots of self help books suggest pretending today is the last day of your life, what do you want to spend it doing? Etc etc. The bottom line is people with passion make a difference, and folks can tell that in an interview from a mile away if you're pursuing your passion or just marking time.
You might want to split your move out of banking into a cool company into two phases: first move out the bank, then move to one of the "cool" companies.
I'm kinda in a similar boat as yourself, and afaik, except for enlightened pockets, our industry suffers from a deep suspicion of experience and expertise in anything except the rage of the day.
In a black humour sort of way, at least you're a Java expert. Imagine plight of the C++ expert. :)
Met a guy working as a private contractor in the aerospace sector recently and he was desperate to hire expert C++ programmers at almost any price. I wish I had the 'plight' of being a C++ expert.
Assuming you truly want to work in an environment of a fast-moving startup and all that entails... Perhaps try some A/B testing on your resume. Remove some of your experience and omit the years of graduation, etc so that it isn't obvious you've been working in the field for 15 years. For example, just list your iPhone accomplishments and your work with Python. Maybe even re-send it to the same places. My guess is that you'll get more interviews. Then when you show up make sure you don't shave, wear some skinny jeans and a plaid shirt, get some dark-rimmed glasses and put stickers of underground bands on your macbook. Optionally get some tattoos. I bet you'll have better luck.
A/B testing sound like an interesting idea to try, thanks.
Good luck!
B2B telecoms, highly available low latency systems. Zero brand name but fantastic engineering driven culture. Small enough for individual impact but big enough to have some very interesting projects and clients. London based.
1) You're in London. Most of the companies you're thinking about are based in the San Francisco bay area, and this is where all the truly exciting stuff goes on. Now, I'm sure there's a technical community in London; but there are very few places in the world where technical people are in demand and where there is a lack of supply. And those places each have different prominent industries. In New York City, the smartest minds become Wall Street Quants. In San Francisco, they make web-technology startups. I imagine in London, the default is in the financial industry.
Concluding my point; this may not be a possibility for you, but if it is, you may want to look outside of London. You'd probably get something in a heartbeat in San Francisco, and I'm sure you'd do fine in NYC, too.
2) You're an "old school" guy; as you said. I'm doing a startup in SF which has grown tremendously (now >30people and barely a year old) and the growth has put us in a situation where we're desperate to hire more smart and skilled people. I have interviewed and rejected many people (including Googlers) who were much smarter than myself, having experience with Big Data, Java, C++, and even artificial intelligence. Pure skill is nowhere near as important as your mindset, and how you will fit within the company culture. People who come from an environment where they sling Java for a big company have a tendency to not fit well with the way we all take responsibility for our projects, iterate and release fast and often, etc.
Now you may be looking for a change of pace. You may be into the idea of switching methodologies and toolset; but that's something you need to make clear to your interviewers. Your experience is like a background check. It tells us that you're a good & smart programmer. But the hiring decision is going to come down to the question: "How well do we think this guy is going to fit in here?"
That said, if you're looking for something in San Francisco, we're hiring. Shoot me an email at kenneth@ballenegger.com.
Most major US startups are basing their international offices in London.
Of course you are right, until a few years ago most development was for the financial industry but it's all changing.
I have no idea what makes you think otherwise.