Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Not wanting to take entry level software engineers is possibly the most bone-headed move a big company can make. Someone needs to send a memo to management.

Big companies with no technical culture are not generally fun places for engineers. Experienced engineers can probably sniff out the really bad ones from a mile away. If they don't take new grads then essentially they're staffing up with the desperate and the downtrodden.

Telling the HR guys to hire new grads would, just by youthful ignorance and the law of averages yield a much better team over time. Granted retention would be the next problem, but at least they'd be somewhere.



On the contrary, experienced engineers are the ones most likely to be comfortable with a non-exciting big company that provides solid benefits, a reasonable working schedule, and mature, well-considered engineering practices.

Our own company isn't large, but we're rather traditional. We're not hackers, we believe in technical correctness, test-driven development and choosing the best tool for the problem at hand. This means that we generally write mobile software in the target platform language, server software in JVM languages, and on the occasions where we get to work on hardware and OS development, C and assembly.

The work approach is not laden with technical culture and "fun", unless you find solid engineering to be fun (personally, I do).

However, we've had great success in hiring genuinely senior engineers with at least a decade of experience each. We experimented early on with hiring junior engineers, but found that the overhead of dealing with untrained engineers was exceptionally high -- something that models my experience elsewhere, at larger companies.

With the caveat that these are generalizations, I've found that the cost to hiring junior engineers is expressed in obvious and (perhaps) non-obvious ways. There are the obvious costs of the training and mentoring required, along-side lower productivity, and a lesser ability to estimate complexity and time to completion. There are also more abstract costs, such as technical and design debt that junior engineers are much more likely to incur simply due to a lack of experience. There are also cultural costs -- if you hire too many junior engineers, you'll create a technical culture and working experience that drives senior candidates away, amplifying the costs I've listed above.

Of course, I readily admit that someone must hire untrained junior engineers, and I realize the implicit unfairness of hiring standards that would exclude myself were it 15 years ago. However, there are companies other than our own that are willing to bear these costs in exchange for being able to recruit at the scale they require -- we're just not one of them, and I think our reasoning is sound.

That said, there are some things a junior engineer can do to make themselves less junior, (possibly before even entering the labor market):

- Get experience (class projects don't count). A great way to do this is by contributing to OSS, especially projects that demand high-technical competence (eg, contribute to the ruby interpreter or MacRuby, not just high-level Ruby on Rails). Senior engineers have past experience to draw on when implementing software projects; this allows them to design not just for the immediate requirements, but with an understanding of how the requirements, maintenance costs, and performance will evolve over time.

- Study practical implementation topics (... and then get experience implementing them). A lot of the value of a senior engineer is in their broad understanding of the practical topics of the field. Coming out of a CS program, you should hopefully have a firm grasp of the fundamentals of CS, but what many candidates are missing is a firm understanding of applied programming. Some off the cuff general book suggestions: UNIX Network Programming, Application Programming in a UNIX Environment, Mac OS X Internals, Applied Cryptography, The Design and Implementation of The FreeBSD Operating System, Database in Depth. This list is probably incomplete :)

- Don't settle for just an internship. Internships at big companies (Apple, Google, Microsoft) serve as a relatively cheap first-pass filter on college candidates for hiring. Of a given pool of software interns at a company like Apple, it's unlikely that more than a 10% of them will be hirable material, and of those 10, maybe 2-3 will actually get jobs. Other companies may hire a larger percentage (I don't have any experience there). If you want to work for Apple, Microsoft, or Google (or think you might), then don't sit on your laurels if you get an internship there. Pick a real, practical problem that, and work on it, hard, leveraging your access to senior engineers for advice and guidance as much as possible. If you just coast through the internship, you probably won't receive an offer. I think some students look at internships at the big companies as prestigious. However, they may be viewed as the opposite -- an internship at one (or more) of those companies without being hired is a red flag for me, since I'm wondering why you didn't get an offer.


You seem to have some kind of chip on your shoulder, because you are reading a bunch of things into what I said that were not intended and are way out there.

In short, the company you describe does have technical culture.


> You seem to have some kind of chip on your shoulder, because you are reading a bunch of things into what I said that were not intended and are way out there.

I wouldn't read my response as a line-by-line rebuttal of your post. It wasn't.

> In short, the company you describe does have technical culture.

By that measure, all companies have a technical culture.

However, big company culture (outside of Google and Apple) is usually not appealing to junior engineers, but is to senior engineers -- which is the opposite of your original point, and what I intended to address.


Are you saying that only 2-3% of interns at Google end up with a Google offer?


I only have experience with Apple. I wouldn't be surprised if the number was similar for Google, given that internships are seen as a low-cost, low-risk trawling mechanism.


Are you counting return internship offers? Many interns aren't looking for full time job offers. Only 2-3% percent receiving offers seems rather low.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: