I'm a senior Computer Engineering student and I have 2 years of experience working as a Software Developer, mostly J2EE. I've been looking for work for a couple of months and it seems to me that most of the work out there is for Sr. Level/Ninja/Guru people and I'm finding it hard to find a new place for me to grow with. Has anybody here been in a similar situation? How did you do it?
Spend some of your time building something real. Nothing demonstrates that you can perform like envisioning, building, and launching a product that real people are willing to pay real money to acquire.<p>It doesn't have to be particularly big or complicated, either. Just proving that you can accomplish the aforementioned tasks will go a long way to getting you through the door.
The big companies like Google and Amazon are hire lots of entry-level people, since they have the time and resources to train them. It's a decent way to get experience if you can get it. (My first "real" software engineering job was at Amazon.) The interviews are tough and there's a strong chance of getting rejected even if you're good; follow the other advice on this page and also study up on both CS theory (algorithms, complexity, networking, OS/architecture) and programming practice.
Work on an opensource project that fits into your area of interest. Build up your expertise in all areas of development, especially your ability to work with a distributed team of developers. Learn debugging skills (they don't teach this in school).<p>Support people (users and other developers) on mailing lists and forums related to the project you're working on as well as the areas of technology that you have some experience with (note, you don't have to be an expert, just interested). Work on your page rank, so that when someone searches for you on the web, they see several pages worth of problems that you helped someone fix. For this same reason (among others), never be rude or overly sarcastic on a forum. Be helpful, and if you can't be helpful, be attentive.<p>In the course of doing all this, you'll sometimes come across people who work at companies looking for young hotshots (hint, that's you) or reliable developers (hint, that's also you) or an experienced programmer with an eye on customer satisfaction (yep, you again). Don't ask them for a job, but hint to them that given the right conditions, you may be open to a more permanent technical exchange.<p>Now if you're active enough, you can get this all done in a couple of months. When I graduated from college, my resume already had two pages of projects that I'd played a primary role in. This helped.
The other advice about doing something open source or building something you can sell is great and all, but it's March and you're a senior which means that you're probably looking to land something in the next 3-6 months, which isn't a lot of time.<p>In that case, your answer is: <i>network</i>!<p>I've seen so many qualified candidates get passed over for someone equally or even marginally less qualified because they had an inside line on the position. It's probably too late to do much networking at school (i.e. joining clubs, etc.), but the thick part of conference season is just getting started. Get a student rate to something while you still can (JavaOne seems to have been free for students in the past...not sure what Oracle plans for this year, though). I'm guessing that your 2 years experience has come from internships, so that would be a good place to start too. They might not have been your ideal place to work, but they'll give you a paycheck while you plan your next move.<p>If you are going to work on an open source project, pick one that's sponsored by a big name company (i.e. not an academic project or start-up). No matter what the project leader asks you to help with, <i>do it</i>! If he says they need work on documentation or fleshing-out the test suite, don't complain. I know it's not sexy work, but when the project leader gets a req. to hire someone, he'll know that you're someone that can be counted on to get the job done.<p>Finally, learn something new. I recently saw a very qualified developer get passed over for a job not because he didn't have the skills listed in the job offer, but because he didn't show an ability to work outside of his set of core competencies. Since you're new, nobody is going to hire you based on expertise. Your secret weapon will be the fact that you can learn whatever new skill or technology it is that the hiring manager needs next. In other words, you probably want to branch out from Java (it's a skill area flush with "experts" and hiring managers who are only looking for people who can spit out code quickly).
I was just in a similar boat (got an offer not too long ago!) and I think there are 2 important components:<p>1) Show that you are passionate and driven, which it seems you already have with your experience. Other ways could be get an iPhone or Android app out on their respective marketplaces so you can provide hard numbers (# of downloads, $ made, etc.). Contributing to OSS is always a good way to spend your time as well, but only if you really care about the project.<p>2) Make connections. This can be rough but a few things I've found can make it a lot easier. I've gotten a few really good leads through Twitter actually. Follow enough people from a company you'd like to work for and eventually one of them will mention something about openings. Another good avenue is going to technical talks (most universities hold a few of these a month, maybe more frequently). Go up and talk intelligently to the speaker and if they are accepting resumes definitely provide your best. The main thing is have someone inside the company turn in your resume for you. This informal referral or recommendation is huge. I read a statistic that only 1 in 20 online applications result in a face to face interview, those aren't great odds and being denied a lot is sure to affect your morale. Getting someone to turn in your resume is a sure-fire way to hear something back from the company.
Learn on your own and hang out in the social circles of other programmers.<p>Help answer people's questions on SO or irc. Learn the other JVM langauges. Learn about tools that J2EE people like, such as Maven and Hudson. Learn algorithms. Present at conferences.<p>Do this, and people will find you. Last time we needed to hire someone, I visited my favorite IRC channel, said "anyone want a job?", got a privmsg, and had the person interviewed in person and given an offer in just a few days. (A few because the weekend was in the middle.)<p>What you want is a friend who will talk you up to the people making the hiring decisions. What you don't want is to be another boring resume in a 50-resume-deep stack.
First two jobs were networking, remainder were through recruiters or online ads (note, this is quite unusual). For reference sake, my first job was at a company I had interned with, and my second job was due to me ending up at my soon to be bosses house for a swing dance lesson the week after my resume had crossed his desk. When you are just starting, it's all about catching the right peoples attention from the hundreds to thousands of resumes that they see.<p>Suggestions:<p>Figure out where you want to look, and what the hot technologies are. In the Philly area, if you can demonstrate knowledge of Spring and Hibernate, you'll get far more offers then not anyone not having it.<p>Network:
Join the local JUG, IEEE, etc. The more people you know, the better.<p>Volunteer:
Something to add to your resume, and you'll get to know more people.<p>Read:
Grab "What color is your parachute?" out of your local library. It's a great starting point for any job hunt.<p>Most importantly, keep at it. Actively job hunt and program. Sitting around playing games and randomly commenting on the internet are far less likely to connect you with the people you need. Do something that you can add to your resume.
Anecdotally, the company for which I work (big financial research company, fortune 500) really likes people with 2-4 years of professional experience and has been having a hard time finding them.<p>Talking to our HR people, the majority of programming candidates they see are either fresh out of school with zero professional experience, or they're consulting refugees (Avanade, IBM, etc) with 10 years of experience who are just going to bolt as soon as the consulting industry recovers.<p>Honestly, two years of real world experience and willingness to take a junior position makes you kind of a commodity.<p>Are you not getting to the interview stage? If that's the case, I would echo what the others say, check craigslist in bigger metro areas.<p>If you're getting to the interview but not getting offers, well, that's another Ask HN in and of itself.
Be willing to relocate. This is the single biggest factor. If you're not in a tech-hub you'll find it a lot harder to find employment as a developer at any level.<p>Where abouts are you based at the moment ?
I've had luck applying to positions that were looking for more senior devs but was something I was interested in. My current job came that way. Looking for someone with 7 years, I had 3, but I also had built projects in the same space and was actually a really good fit. Fresh out of school I got an interview the same way for a small company looking for 10+ years experience.<p>Just say "hey, this is me, this is what I've worked on that you'd be interested in, I'd like to interview. If not, hold on to my resume"
There's all sorts of levels of skill in the market. You need to demonstrate your skills first - either an open source project or host an SVN with some example code. There is no harm in writing a place looking for a senior dev, they often have other openings. I hope you're already checking dice.com ....
You should consider contacting "head hunters" / employment agencies. They will match your skill set with client's budgets. If you have two years experience, you should be able to find something that way, even though I agree that senior level developers are the going thing right now.
Thanks everybody for the insights, I really appreciate it. I have this idea for an app I'm gonna build it and see what happens :P. In the mean time I'll change my resume a bit so that it emphasizes the stuff you guys pointed out.
Honestly, it helps to know someone who is looking to hire.<p>Persistence/experience/credentials are important, but without a personal connection the job market (in any profession) is a crap-shoot.<p>My girlfriend had a similar situation (she's not an engineer), she finally managed to get a job by doing an internship, all the while applying to a ton of jobs. (Of course all of them were looking for 5+ years experience and a masters).<p>She was rejected a lot and it was demoralizing for her.<p>But what paid off were the personal connections that she made during the internship and interviews (she made a good name for herself), eventually one of her acquaintances gave a colleague her resume (who then offered a job).<p>I'm not really a people person, so I know that this can be a difficult road for us introverted folk, but I think the best thing to think about is 'where can I meet people who would be looking to hire someone like me'.<p>Then go to those places, meet those people, and get them on your 'team'. Eventually you are a proven commodity and are able to get something.
The answer is persistence. Check Craigslist/eng/ in all major metro areas - chicago, nyc, sfbay, austin, lax, wdc. Email promising job ads daily. Post your resume on craigslist, especially in SFbay, weekly, and alternate with other metro areas. I would be shocked if you did not get at least a few promising leads after a few weeks of hitting up the craigslist rotation.<p>in the meantime, code up something cool, and post it on HN. Then in your signature or whatever, mention that you're looking for work.