YART (EE Edition)

Previously I had gotten a good feedback with resume critique here so I returned once again for your great wisdom.

I've been laid off for about 4 months now without any job prospects. To be honest I'm bit lost as to why I cannot seem to get an interview. I had few success with HR contacting me with 'fill in the Excel' for screening purposes but other than that nothing really came to a fruition.

I tried the networking route, talked to old co-workers, classmates, friends, but despite the fact that the resume reaches hiring manager's desk they just don't seem to care.

If I had to guess I think it's due to lack of work experience and no special technical knowledge. However because my last position was very 'jack-of-all-trades' I didn't really get a chance to develop a solid technical skill.

You also seem to be in an odd place, with so much history in software, yet you have an EE degree. What do you want to do? That seemed to be missing for your resume (or OP). What kinds of jobs are you applying for and do you have the experience/background to make yourself appealing for those?

I realize my experience is bit mix of everything. So far I've been applying to mix of hardware, software, and project management.

Initially I focused on applying to software development positions. Through connection, I managed to get an interview for C# job but failed after the second whiteboard coding test since I wasn't too familiar with the language. While searching for job, I realized there were software integration jobs that I felt I could do it due to my background with the customer support and background in coding but so far no callback.

I've tried applying to junior PM jobs in different areas since I figured I can leverage my current PM experience but again no go.

Recently I've been applying to more hardware jobs since I did have some experience debugging customer's board. However, it seems like that most hardware jobs require at least 5+ years of experience which is something I just don't have.

I feel that I'm stuck in a limbo between new graduates and experienced professionals. I don't have enough experience to apply for 'regular job' but do have some experience that keeps me out of the new graduate jobs. I even tried going into different field through another connection of mine but the recruiter basically told me to go away.

Take your single resume and then build out 3 targeted resumes for hardware, software, and PM. Practice on interviewing with the mirror so that you have 3 targeted "stories" for each different interviewing process.

Find a new job is just tough. I had 5 years experience in embedded hardware design and fpgas, and it still took me almost 100 applications and a half dozen interviews to land a new job. You've got to keep applying, and improve your skills while you're looking. You've resolved that C# deficiency since you learned about it, didn't you? I mean, you list it on the resume, you should make sure its good enough that you could back that up.

As far as the resume, I've had some time to look it over. At its core, it's a fairly vanilla chronological resume. You do a lot of minimizing your own accomplishements "assisted" "small tool" etc. I'm also not a huge fan of plan chronological resumes, I like to have some sort of profile section prior to and independent of job history. It lets me highlight what I consider the most important things up front in the place I expect to be most likely to be read. It also helps accomplishments that aren't job based (like highlighting your multilingualism) and gives you another way to tune a resume to a specific job opening.

Some problems I see

Quote:

Gathered requirements and check for feasibility

Verb tense agreement.

Quote:

Led investigation team to reduce BOM cost by 10% to help secure $1.1 million deal.

I'd dump the "to help secure" for ", securing a". Same basic statement, but more assertive. Or maybe the whole thing "Led investigation team to reduce BOM cost, found a 10% reduction that secured a $1.1 million deal." I'm guessing 10% was the target not the actual so you could use it.Not really a fan of the abbreviation for MP. You use mass production twice, I'd just spell it out both times. I'd probably use transitioned to or released to rather than acheived as well, but thats probably just particular to the industries I've worked in phrase things.

Quote:

Collaborated with interdepartmental teams to find the solution to the issue.

"the issue" to "the failures."

Quote:

Assisted PhD students with 802.11n MIMO wireless algorithm research.

"Researched 802.11n MIMO wireless algorithm under direction of PhD students." Getting coffee is assisting, you want to be clear you were doing actual work instead of playing gopher.

One question would be - what is the average salary of a new fresh out of college hire .NET developer in Canada? Would you be ok making that much, or do you have higher expectations? If you don't - time to start shoring up that technical deficiency.

Assuming you had a few classes in basic programming in college, you should have enough knowledge to teach yourself the basic C# structures. Start with the primitives, loops, basic oo programming, and learn enough to be able to construct rudimentary datastructures. Any intro programming textbook in C# should do. It probably should take you around a week to work through a book. Microsoft has an EXPRESS version of Visual Studio. Being able to list that your proficient in the IDE of choice for .NET development is usually an HR checkbox they look for. Work through a few examples, get a feel for the namespace concept, write a few simple programs for yourself. If you have the time, write some code, and put it on Github if you feel confident in the quality.

Most C# positions I've interviewed at want some basic MS-Sql knowledge. Know how to do a SELECT, INSERT, UPDATE statement. Know what LEFT JOIN, RIGHT JOIN are.

Get that, and go off to the races. Any intro job should take you with that knowledge. It won't be at a super awesome company, but it should suffice for most intro level software maintenance type jobs.

I went through a program in school that was basically embedded mixed with higher level programming. Leverage your experience on the embedded platform, saying code is code. C# just makes it simpler to write complex applications. Personally, I'm good with C, and I always try to make a point during an interview that higher level languages like C# and Java just take the concepts of C and make it easier to develop in.

As for the resume, put the internship at the bottom. Any corporate programming towards the top. Company C and D should definitely move up.

One question would be - what is the average salary of a new fresh out of college hire .NET developer in Canada? Would you be ok making that much, or do you have higher expectations? If you don't - time to start shoring up that technical deficiency.

Assuming you had a few classes in basic programming in college, you should have enough knowledge to teach yourself the basic C# structures. Start with the primitives, loops, basic oo programming, and learn enough to be able to construct rudimentary datastructures. Any intro programming textbook in C# should do. It probably should take you around a week to work through a book. Microsoft has an EXPRESS version of Visual Studio. Being able to list that your proficient in the IDE of choice for .NET development is usually an HR checkbox they look for. Work through a few examples, get a feel for the namespace concept, write a few simple programs for yourself. If you have the time, write some code, and put it on Github if you feel confident in the quality.

Most C# positions I've interviewed at want some basic MS-Sql knowledge. Know how to do a SELECT, INSERT, UPDATE statement. Know what LEFT JOIN, RIGHT JOIN are.

Get that, and go off to the races. Any intro job should take you with that knowledge. It won't be at a super awesome company, but it should suffice for most intro level software maintenance type jobs.

I went through a program in school that was basically embedded mixed with higher level programming. Leverage your experience on the embedded platform, saying code is code. C# just makes it simpler to write complex applications. Personally, I'm good with C, and I always try to make a point during an interview that higher level languages like C# and Java just take the concepts of C and make it easier to develop in.

As for the resume, put the internship at the bottom. Any corporate programming towards the top. Company C and D should definitely move up.

The salary can be anywhere between 40k-60k for junior position depending on the experience. Actually in my last job I somehow ended up on the higher end on the salary scale which is something I didn't really expect. I don't mind the salary nerf; hence been applying to junior position.

I know the basics and can relate to Python which is something I'm very comfortable with. For easy questions I was able to manage through basic whiteboard questions (fizzbuzz, design stack of card using OOD, reverse string, etc.) by relating to Python but kinda spaghetti'ed when asked a harder questions.

I guess the problem I have with software interview is that I know the concept/idea but need some googling to get the job done.

Coding in C# isn't a heck of alot different than coding in C or Python. Once you learn the basic structures, you shouldn't have alot of issues. If you have trouble, write the solution out in C or Python, and then transcribe the solution into C#. Obviously, if you don't know the markup of basic structures like foreach you're going to have some problems. Most of the technical interviews I've done, it's about 50% getting the right answer, 50% seeing if the person can think through a problem they don't have an immediate solution to. If the test is written on a sheet of paper, most interviewers are pretty lax on the exact syntax. Verbalize and engage the interviewer so that they understand how you're thinking through the problem. If you skip the communication part, they only can evaluate you based on the solution you handed them.

I wouldn't worry about the language. I interviewed at a bunch of places recently, and I used scala or julia for almost all my (software) questions, even at companies where I was interviewing for a systems level stuff (C/C++), hardware/software codesign (verilog and C/C++), or web dev (PHP, js, etc.). I think I had two interviews where they asked me to use something lower level (C or C++), but that was it. Most (interesting) places are more concerned with whether you can solve problems than whether you know some particular technology.

I'm also going to be contrarian and suggest that it's not a problem to have a resume that's a mix of hardware and software. I'm fairly certain my resume is more of a mess than yours (I've done hardware, software, pure math research, and optics, among other things). People reviewing my resume usually tell me I should make it more focused, but employers I talk to love the breadth.

Quote:

I guess the problem I have with software interview is that I know the concept/idea but need some googling to get the job done.

This is going to be a problem at a lot of places, even for a junior position. If you want to practice this stuff, either go online and solve practice problems (sphere online judge, Google Code Jam, etc.), or grab a good book for this (Cracking the Coding Interview). Cracking the Coding Interview will probably be the easiest, and it will cover everything you'd expect to see anywhere, except for big name companies (Google, Facebook, etc.), and some niche specialties that have a very high hiring bar (like prop trading firms); questions I've heard at those places have included a question from the 'C' round of Google Code Jam world finals, and being asked to implement co-routines in C, using setjmp/longjmp. I don't think it's really possible to cram for the second type of interview, but you can, really, just read one book and be well prepared for the first.