I don't get it. This guy's resume says he's a double major of math/CS from Berkeley with high honors -- and apparently he's worked on pretty hardcore engineering projects.
I've created a Linux distro of my own. Original and not a fork.
See articles on website. Geared towards CLI engineers.
Patched and built about 1,800 packages myself. Supported
and customized standard distros as well.
Double Bachelors in Math and Computer Science from U.C. Berkeley.
High Honors and Honors. Worked with Open Source
since the 1980s. Led small teams in startup and similar environments.
Considered to be good at writing and analysis of problems.
Experience includes: Agile, Assembly, Back-End, BSD, C, CSS, Debian,
FOSS, GIMP, HTTP, Java, Linux, Mathematics, Mint,
MySQL, Octave (similar to Matlab), Open Source, Parser, Perl, PHP5,
Python, Recruiting, Regex, Shell, SQLite3, Support,
TCP/IP, Ubuntu, UNIX, Tcl/Tk, Teaching, Training, Transcoding,
VPS, Writing, XML, XSLT
What is wrong with Silicon Valley today that a person like him can't get a reliable job, and therefore is unable to live with medical healthcare, a reasonable place of residence, etc.?
edit: on the bright side, now that this post is on HN frontpage, I hope someone seeks this guy out and gives him a job. From what I can grasp, the quality of his code is pretty damn good.
So, if I saw a job description like that I would smell BS and never apply. Maybe handing off a resume like that gives the same smell.
You don't give resumes like this, you tailor your pitch to the company which is hiring.
If you are applying to a PHP job, then remove all the fluff and tell the employer that you are a PHP developer. Generalists dont' get hired, then don't be a generalist. Touching up your PHP skills should take a couple of weeks. ;)
I don't think there is a single thing right with his resume. Let's take the first line of his overview:
Software developer since the 1970s.
First of all, any development experience from the 70s is at best meaningless and at worst detrimental. Try teaching a Cobol programmer OOP and you'll find that they learn it slower than someone without that procedural coding experience. Second of all, the first line of your resume should not be to announce what protected class(es) you are in. Your resume shouldn't have "senior citizen" on it anymore than it should have your race, creed, religion or any other irrelevant facts on it.
Linux work started with the first kernel releases and continued through Slackware
So what? I used Slackware extensively in 1996 but the experience is meaningless. If I had that on my resume now it would tell anyone reading it that I'm probably resting on my laurels and probably have for decades.
I've seen dozens of resumes that list dozens of technologies like this. Not even so much as a bold font weight to say the things they are masters of as opposed to "experience with". Early in my management career I hired a developer that had TCP/IP programming listed as a skill on her resume. After hiring her, I gave her the IP address of the server to do some TCP/IP programming. She asked, "What is IP address?"
As someone who is in their 40s, my advice to to someone without a job later in life is to drop all the extraneous things and focus on what you've done lately. Lose the moniker "old coder". Lose any technologies older than a decade from your resume. Lose any references to "35 years of experience with...". Take off your hobbies. Take off your reasons for leaving your past employment. There are too many other fixes needed to go into.
The interest is appreciated. However, we have different perspectives.
My 'C' experience dates back to 1976 and is probably still relevant. FWIW I never did much COBOL though my firm did have a COBOL-Lint.
I don't think that your 20 years of Linux experience, or mine, is "meaningless". Not if the experience has been continuous. And, in my case, I've not only used Linux almost daily since before Slackware existed, I've developed my own distro, I maintain copies of nearly 2,000 packages, and many of my copies have patches of my own design.
Regarding the "masters of" issue, I may not have made the "generalist" point in the post clear enough. I'm only a "master of" a few things. But I'm very good at getting back up to speed on the things that I've had "experience with".
This is what a generalist does.
I agree with the "Take off your reasons" point. I'm going to keep most of the rest. The difficulties that I'm facing are partly due to my own foolish mistakes. But they aren't about the fact that I've listed hobbies on my resume or that I have a nick that implies age.
I'm not going to pretend to be a twenty-something specialist. It isn't what I am. I'm a highly experienced generalist. In this context, the decades that you feel that I ought to hide are relevant.
For some perspective... I'm 49. Last time I looked for a job (six months ago), I had two offers in less than two weeks. In general, I can get a job in no more than three weeks, just by answering the calls. And I don't think I'm all that special.
What I do have is a relevant resume, both buzzword compliant and impressive to humans who actually know their ass from a hole in the ground. It's carefully honed not to present me as a "generalist" (or some other self-perception), but to get me to the top of that pile for interviews.
Look at your resume as a piece of software. No matter how aesthetically pleasing and warmfuzzy your resume feels to you, if it isn't working, then it's buggy and needs fixed.
If I was a recruiter, this would go in the not interested heap.
While some companies want generalists, this isn't tailored for that either. You indicate projects you've been on, but not what your specific responsibilities were. Describing the project's language, DB, and how the project is pipelined is not useful. What did -you- do? What experience do -you- now have that could translate to other projects? "Core was a Perl server that collected binary data from upstream devices, stored data using SQL, and relayed it to clients as XML over HTTP." tells me about the project, but not what -you- did, not what experiences -you- now have. Even better if you can highlight keywords for me. The whole 'typical projects' section is kind of a waste; it's project names that have no meaning to me, or which may, but tell me nothing about what technology you know. 'Email client programs'; does that mean you have familiarity with the various email protocols? TCP/IP? GUI development? Nothing anywhere else tells me what it is you know.
Most companies want to fill a niche. Highlight what niche you can fill (yes, preferably tailored for the company), and make that -obvious- in your resume.
In general, take this approach - assume a recruiter, HR person, etc, will spend 3 seconds looking at your resume before deciding whether to bin it, or continue reading it. They are looking to match a certain set of relevant keywords/terms. What message do you want to send to someone in three seconds/what words/terms do you want to be matched against? That should be what I as a reader get from the first sentence, the first item in your experience, and the first item in your skills.
The message you're currently sending is "Old coder, part of a large team that did...some stuff that isn't spelled out clearly, and generalist with a whole lot of bullet points". Not interested. But tell me "Perl, C, and Linux expert, extensive application development experience, double CS/Math major", and suddenly if I have a Perl or C codebase I'm interested. Right now I have to do too much reading and thinking to get that information out, and no recruiter will do that.
Also, in general, you are correct that there is a bias against age. You're making it so the first thing I notice is your age. Make it so the first thing I notice is your experience; make it clear that you fill the niche I have, that you may well be the ideal candidate for my needs, BEFORE I notice your age.
These points are sensible. But aren't you simply confirming what I said to begin with?
You're essentially saying that companies use checkbox filters to sift through applicants looking for specialists. Exactly what I was trying to say myself.
The solution that you propose is to create a targeted resume.
But I've worked on hundreds of projects. Many of which used technologies that are no longer relevant Is it possible for me to produce a tailored resume based on perhaps one project from 20 years ago that matches a specific niche?
It doesn't seem likely. So most firms are going to be out of reach. I'll need to acquire more specialties. Or identify firms that are interested in generalists.
You are not a highly skilled generalist. That implies you are a master of everything. You are not because no one is. Being a master of a few things with experience with many things makes you a useful specialist. The proverbial T shaped person. This is a good thing.
Highlight the things you are actually very good at, put the rest as experience. It looks like you've written a lot of Perl, so you're highlight that. Highlight Linux package management. Despite what you think, these are specializations.
Yes; you're correct about the "highly skilled" part. I should edit the point. I'm a highly experienced generalist as opposed to a highly skilled one.
You're also correct about the fact that I do have a few specialties, including Linux and Perl. I'm pretty good at a number of languages, but Perl has been a favorite for 20 years.
Perl is friendly and fierce
Perl all problems shall pierce
Perl is the duct tape
That holds together all things
Of Perl we sings
Perl is all things beautiful and bright
Perl is a magical sight
Perl each day and each night
As a generalist myself, usually what other people consider "master of" I consider "back to speed in a few weeks." So I claim mastery on my resume because "mastery" is highly subjective.
For example, with my current position one of the reasons I got the job was that I claimed to be an expert with C++. Before jumping into this role it had been 5+ years since I had done any real work in C++. Shortly after joining I was asked to assist on a project written primarily in C++. Any time you join a new project there is some onboarding to learn how things are done in that project. I was able to get back to speed with the language and ecosystem within the period expected for onboarding. I was complimented on my expertise of C++.
I believe I am a seasoned software developer who has attained a fairly high level of mastery in the core skills required to build highly-complex software systems. Yet if I were to compare myself to some of my coworkers in the past I would be hesitant to call myself an expert on a particular subject like embedded programming (for example). However I claim to have this expertise on my resume as I have done quite a bit of embedded work in the past and I am familiar enough with that type of development to ramp up quickly again.
So even though I perceive myself as a generalist, many times my resume looks like that of a specialist. I am comfortable making these claims because I know I can deliver on them. You have to separate your self-evaluation (in which I tend to take a humble view of my abilities: that which I do not know vastly outweighs that which I do) from your self-presentation (in which I will make the boldest claim I believe I can support). Long years of experience are extremely relevant, but you have to connect the dots on your resume, you can't rely on the recruiter or hiring manager to see the intrinsic benefit of your experience.
You sound like a "T-shaped" guy: Broad knowledge and skills, with actual expertise of a few areas. Some companies, such as Valve, actually seek that. Have you sought them out? (I'm guessing that you have, but who knows…)
Here's how I look at it: The only job of your resume is to get an interview. So whether the knowledge is relevant doesn't matter - the only question is whether it'll help you'll get to the interview. And from that view, I agree with your parent and 300bps' comments.
Over time, it's hard not to become a highly experienced generalist if you're good at what you do.
When a developer starts out its easy to find and beat a tribal drum of specializing in a few things.
This is often due to only having one or two cycles of learning and experiencing "a few years specializing in x". Add to the mix the veiled glorification of the twenties as a magical time to go hard (where ultimately everyone goes home), it can become an incredibly distracting echo chamber that one has arrived.
Something happens every few years though on the path of being a specialist, you get deep enough into one skill that it overlaps into another skill. The specific few skills collected in the first few years, become a specific 5-10 with equal depth.
Take someone who has developed 15 to 40 years and imagine how many cycles of learning they have been through to implement similar algorithms in multiple syntaxes.
That's someone I want to learn from when I shape my aporoaches, instead of having to feed my own snowflake quotient to relearn the same lessons before me.
As a polyglot, I've been programing for 20 years and am only in my mid-30's. Most developers will end up the same. way I've ended up with enough web, desktop and mobile development, along with the hardware and networking experience that building these solutions once required in addition to programming alone. It's full stack across hardware and software and networking, not the full-stack of frontend and backend dev that specialists espouse as full stack. I sure as hell didn't plan on this path, maybe it's the path of a lifelong problem solver.
One thing that some twenty something specialists may not yet have noticed is that programming is a separate skill from the syntax of any given language. The experience of figuring out how to do what you already know in a new syntax. It seems there can be more fascination in recreating libraries that have existed for decades, but not what the next leap is.
There's a fundamental mistake most recruiters are making too. They aren't qualified or trained to hire for technical positions. In the hiring I do and references I give, recruiters are generally clueless without their checklist. Programming isn't a skill like knowing how to drive a forklift. It's much deeper, and with the correct type of polyglot developer much more transferable between languages.
I'm inclined to work with an experienced generalist more often than not because I prefer to work with others who not only keep up, but help lead the strategic charge. Depending on the problem, younger specialists often go through relearning what experience has already taught. Both skillsets are valuable and necessary on any team, but I have my preference.
My advice, is to consider focus on a highly fluid and evolving area of technology that is in high demand, pays well, and you can effortlessly pick up. It's where you're talents shine. One area is mobile development. Build some projects and spin current skills into the next area. It will better highlight your ability to integrate everything from top to bottom.
I admire and am in respect of your experience and journey through creating so many solutions. If there's an interest to connect offline I'd love to learn more about your story to see if I may be able to help and if I may be able to learn more from your experience.
Will anyone who is half good at what they do will end up in any different situation than this in 20 years? Our creators need to keep creating. Maybe there is an evolution and growth needed in our field for the highly experienced.
"any development experience from the 70s is at best meaningless and at worst detrimental"
"but the experience is meaningless"
Taking that approach, almost all experiences are 'meaningless' in the context of "i need someone to do these exact steps XYZ". But, as someone who was programming (hobby) in the 80s, I think there's some value here (and of course I don't think it's purely defensive and me-focused, but maybe it is).
You mentioned elsewhere "Drop the me of 30 years ago into the technology environment of today and I would be completely lost." Perhaps, but many people today are completely lost too. The "you" of 30 years ago had characteristics - curiosity, problem-solving, etc - that informed the experiences. Over time, perseverance was demonstrated with an accumulation of related experiences.
The specific experiences of programming in 1985 are not relevant to most problems of today, but a demonstrated history of successful logical thinking applied to a variety of computers/data/projects is not irrelevant nor meaningless.
EDIT: Rereading the second half of your post, I agree with you on the second half - drop hobbies, drop older tech references, etc - lose the extraneous stuff in general from general purpose resumes. Lose date references in general, I think (graduation dates, etc). Focus on things that are relevant to modern work practices/tools.
Perhaps you were meaning all that older stuff is meaningless in terms of a resume? I agree. It's the sort of stuff that might come out in an interview or two, depending on who you're talking with. Telling a 24 year old about doing C64 assembly programming does no good, and wastes time - that is essentially meaningless in terms of general tech job hunting. There are rooms for these nuggets, but you need to be selective.
The "you" of 30 years ago had characteristics - curiosity, problem-solving, etc - that informed the experiences.
As I said in that other comment, I see the basis of your argument. Having learned many languages over a 30 year time frame shows you probably are a hard worker that keeps their skills up to date.
You know what shows that with almost no doubt though? When you submit a resume to an employer in 2014 and you show a mastery of commonly used 2014 technologies. That literally is the only thing that matters to most employers.
So yeah, if one (not speaking of OP) does not have experience with modern languages or frameworks for whatever reason, you can make an argument that your previous experience might hint that you possess desirable traits. But unless you're looking for maintenance job on some old Cobol or C code, there's nothing betting than keeping your skills up to date continuously which proves you have those desirable traits.
Again, in principle I don't disagree with your point. The danger is in the reverse - someone hired because they know tech 2013X, but don't really know how to do anything else with it, nor how to problem solve. At the same time, someone with 20 years of experience who perhaps just finished up working with tech from 2010, because that's what that client/company was using, and gets ignored as "not modern".
But your bigger point - yes - have modern skills, and being able to show those with relatively current tech is the best way to go. Personally, I'd take someone who is older but within a few years of current tech vs less experiences with only modern tech. 8 years of Java and Ruby with experience up to Rails 3 vs 1 year of Rails 4 only? Should be a no brainer for most situations, unless the job is "writing Rails 4 tutorials" ;)
There's a huge spectrum of middle ground there, and good companies/recruiters should be able to divine that. ("should" being the operative word).
There's a big difference between listing Rails (a new technology -even rails 1 is a new technology- that is currently widely used), and listing COBOL. Don't even bother listing cobol/perl/whatever unless the company you are using uses those technologies.
I think it's more about being able to distinguish skills from products. Products become obsolete, skills do not.
You have dBase II experience? Not relevant.
You have experience building database-backed interactive applications in resource-constrained environments? Could be quite relevant, with the rise of mobile.
So: go through the list of products and cull the old ones, but as you do so, ask yourself what you learned from using each.
I think it's probably best to split the job search into two bits.
a) The bit where some recruiter is looking through CV's.
b) The bit when you talk to the gaffer.
I agree with the 'drop everything off a cv' line. Most recruiters have at best a basic understanding of IT buzzwords and next to no IQ. Keep it simple, sell yourself as the answer to the problem and save the interesting chat about what you did in 1987 for more important people.
> First of all, any development experience from the 70s is at best meaningless and at worst detrimental.
"Hmm, this Brian Kernighan fellow is going in the reject pile, since he worked with this 'UNIX' and this 'C' in the 1970's, and clearly his experience is at best meaningless and at worst detrimental. And this Vint Cerf character... we don't want to hire someone who didn't grow up using the internet!"
This sort of thinking is toxic to the industry, and prevents software development from becoming a proper engineering field. It prevents the development of institutional knowledge and stagnates forward progress. It's why the industry keeps rehashing the same memes in new fashions. It's why everyone thinks the latest JS shit is cutting edge, when it's just a warmed over re-skinning of fundamentally 1980's technology: http://en.wikipedia.org/wiki/Self_%28programming_language%29.
Every generation thinks their ideas are new. When in reality it's all the same thing, just recycled. Sure computers are smaller, faster, and cheaper - but fundamentally, the systems today are the same as the systems in 1985.
We have 4th generation languages today that are really just front-ends to c; created to make it easier for the masses to write code. Which is a good thing, cause I'm 50, and I remember the days working in the cold, dark basement walled off from the rest of the company.
I find it funny listening to the "youngsters" talking about the great new thing of today; be it agile, the cloud, or whatever. But I remember I was saying the same type of bs when I was 25.
"Try teaching a Cobol programmer OOP and you'll find that they learn it slower than someone without that procedural coding experience."
Have you any evidence to back this up, as it sound like rubbish to me. I learned Java as my first language, and basically used it as a procedural language, until the OOP parts started to make sense. I don't see how knowing COBOL will make you slower at learning an OOP language.
> I don't see how knowing COBOL will make you slower at learning an OOP language.
what a lot of employers don't want to do is to pay somebody to learn on the job. It sucks, because such an employer is a good one, but to people who don't care, and is in need of a job getting done, they just see it as extra cost and lost productivity. Why hire somebody smart who can learn fast (and thus can adapt to new roles as they come), when you can pay someone with the _exact_ experience at solving your current problem!
Of course, this is probably a major contributing factor to companies having trouble hiring programmers. Finding someone with the exact experience of your current problem is actually pretty difficult.
In my past maintenance programming jobs, I would say it took 6 months to get up to speed. I would put less than two months of that down to new languages. Most of it is getting to know the code that is already written (and usually poorly documented) and some of it is gaining domain knowledge.
Had to reply, could not agree more. People may hate it but there is an art to writing a resume and it's focus, just like a company needs to focus, so do you to get a job.
It's a fact of life that resumes are crucial and that structure makes a difference. But I've noticed that people often disagree about approaches.
This particular resume is based on a template that people in a channel liked. I've received a number of compliments IRL regarding both the layout and the content.
The only thing that people IRL seem to agree should go is the part about reasons for leaving.
The resume does need a new release. For example, I should start to fill in the years after 2009. But it isn't the resume that's the primary issue here. It's the fact that the market has shifted away from generalists, combined with mistakes that I've made.
FWIW, I've heard multiple recruiters and managers/directors compliment me on my resume style [1]. It's a bit more narrative and a bit less focused on bulleting out skills. This seems to attract more progressive forward thinkers (if you're into those sorts of companies).
At the same time, it does highlight my skills at the top of each area of experience, so some developers reading my resume may skim over the narrative part, focusing on the listed skills. So it works for them too.
It's also quite honest in a few areas that may turn off some people, but to me, it turns off the right people (those I don't want to work for).
[1] Check it out in my profile if you're interested.
That sounds about right. In my experience most recruiters are only capable of matching two words, with very little understanding of what the words actually mean. They have no idea that RDBMS / Oracle/ SQL are synonymous to a degree.
Be careful about trusting compliments people give you when they're physically standing in front of you. When people are looking you in the eye, they tend to tell you what they think you want to hear. Online communication creates a distance that makes people more likely to speak their mind.
Are you saying that in 30 years all experience you have accumulated up to now will be completely irrelevant? It all depends on how continuous and recent your "current" expertise is. Someone 10 years retired suddenly looking for a job will do worse. Someone who had been actively honing their skills for 30-40 years is going to be the rockstar everyone wants and cannot find.
Think about it this way: would you rather have a fresh out of school or a veteran mechanic work on your car?
Are you saying that in 30 years all experience you have accumulated up to now will be completely irrelevant?
30 years ago I was coding in BASIC and 6502 Assembly on my Commodore 64. That's also around the time I got my first modem - a Mitey Mo 300 bps modem on my Commodore 64. It was before the Hayes Compatible days of modems so you had to POKE and PEEK registers to control it or get data from it.
To answer your question, that experience is totally irrelevant. Drop the me of 30 years ago into the technology environment of today and I would be completely lost.
I've been in IT professionally since I was 17 years old. The hardest lesson I had to learn was to let go of the past. Almost every major mistake I've made in my career was caused by me wanting to stay in the comfort zone of already known technologies. My years of installing Novell Netware 2.15 off 360k floppies just aren't relevant to the MVC web coding I do today. I was a Certified Netware Engineer (CNE) in 1990. It was the hottest technical certification on the planet back then. Should I put that on my resume today? Of course not, it's totally irrelevant.
The years I spent with Borland Turbo-C, Borland C++, Turbo-PASCAL, etc. just aren't relevant either. In fact, my opinion is that knowing those languages made it harder to learn newer languages. One could argue that listing 100 languages shows the skill to learn new languages but nothing shows that better than being an expert at a modern language. There's no better thing for an old coder than to really master a modern language and framework and to present that succinctly on their resume.
Think about it this way: would you rather have a fresh out of school or a veteran mechanic work on your car?
This is actually a good analogy, but says the opposite of what you think it does. If I had an old out of date car, I'd want the veteran mechanic to work on it. If I had a modern car run by computer chips, I'd want the guy fresh out of school.
25 years ago, I was programming in C, Scheme, Common Lisp and Prolog (some Pascal, too, but I don't think that has aged as well).
Drop me of 25 years ago into today's coding environment, everything is just a lot easier. Java is intentionally designed to be as close to C syntax as possible, but much easier to get right (garbage collection!). For a class project, we implemented an object system in Scheme, so I understood OO concepts, again much easier today when it's already baked into a language. Ruby, Python and Javascript don't have much beyond what was in Scheme and CL back then in terms of concepts, just maps the same concepts to an Algol syntax. Prolog concepts show up in various languages from time to time (pattern matching in functional languages seems to match the part of my brain I remember using when writing Prolog).
Source code management, IDEs, continuous integration, all things that just make a developer's life easier than back then.
So, no, frankly, I honestly don't think the me of 25 years ago would have much trouble getting up to speed and being productive writing code today. What the me of today offers over the me of 25 years ago is skills for thinking about big picture design and architecture, building software as part of a team, understanding requirements, estimation and planning. The technology part, though, certainly isn't harder to understand today than it was back then.
> My years of installing Novell Netware 2.15 off 360k floppies just aren't relevant to the MVC web coding I do today.
The deep and abiding irony of your post is that MVC was invented in the 1970's for Smalltalk.
> One could argue that listing 100 languages shows the skill to learn new languages but nothing shows that better than being an expert at a modern language.
Unless by "modern language" you mean Idris or Agda or the like, you're barking up the wrong tree.
> This is actually a good analogy, but says the opposite of what you think it does. If I had an old out of date car, I'd want the veteran mechanic to work on it. If I had a modern car run by computer chips, I'd want the guy fresh out of school.
The more appropriate analogy in reference to Ruby/Python/JS/etc is that you bring a 1980's Chevette into the shop on top of which you've glued the sheetmetal from a late-model Aveo.
Sorry, I don't agree. I have not been in the industry for 30 years, but I have been programming since a very young age on similar hardware to your Commodore 64. No I cannot translate the skills I learned when writing Basic for that 8 bit architecture directly to the modern web app project I am working on. I can however relate better to memory constrained environments such as Arduino's and MSP430's. I can say that getting started with a very limited piece of hardware and a very limited language did get my interest peaked to keep exploring what I could do.
Later I got into Linux and FreeBSD. While I have never worked with any BSD professionally (other than OS X, but that doesn't count), I do think that knowing how FreeBSD works makes me a better Linux user/admin/developer. Certain ideas (kqueue, core system vs packages, etc.) are good concepts to keep in mind when developing for a platform that does not have them.
I also learned Turbo-PASCAL and used Delphi for a spell. While not directly relevant, they did have quite an influence on today's languages and development environments. NetBeans which I did use professionally for a bit was a far cry form Deplhi but knowing both made NetBeans easier to use.
But all that aside, the point of having years of experience is not about enhancing your current knowledge. It's about enhancing the process of acquiring knowledge, organizing it, and using it. Someone that knows JavaScript is going to get coded under the table by someone who knows JavaScript, C, Haskell, Erlang, Lisp, Python, etc. In fact I would wager that someone who knew C, Haskell, Erlang, Lisp, and Python but not JavaScript would in the long run beat out a JavaScript expert simply because the penalty to learn a new paradigm is much smaller than perceived, while the benefit of being able to think in a multi-paradigm fashion is a huge benefit.
Finally, the mechanic thing: I am comparing a veteran mechanic, with say 20 years experience, including current experience with latest cars vs a mechanic with 1 year experience with just modern cars. I listen to CarTalk, the NPR program, and they had a few very interesting stories on there. For example, there was a woman who called and said that whenever she turned on the fans in her car it smelled like gasoline and it very often happened after she got her car worked on at the dealership. The suggested reason was that when the mechanic worked on it, he put dirty parts on the cowl of the car where the air intake is and some gasoline and oil dripped into it. This is something experience teaches you and it has nothing to do with the modern chips.
"One could argue that listing 100 languages shows the skill to learn new languages but nothing shows that better than being an expert at a modern language."
I think it's important to show both breadth and depth, and to be up front about how much you have of each. I don't list every language I've ever touched, but those I've used at least recently enough to be able to brush up on quickly I group into three categories ("fluent", "conversant", "familiar").
> The years I spent with Borland Turbo-C, Borland C++, Turbo-PASCAL, etc. just aren't relevant either.
Actually, my experience with Turbo Pascal helped a great deal when I moved on to Java. And I still believe that Turbo Pascal, in particular, would have been a tremendous help if I opted to pick up C#, because one of the leads of TP is one of the designers of C#.
I've been working at a large dotcom lately and one thing I've noticed is how much enterprise Java code starts to resemble Cobol after enough time. "Separation of Concerns" starts to look like Cobol's "Divisions," excessive amounts of boilerplate, etc.
>> Lose any technologies older than a decade from your resume. Lose any references to "35 years of experience with...". Take off your hobbies. Take off your reasons for leaving your past employment. There are too many other fixes needed to go into.
And in that process lose any traits that might command a premium? Do senior developers not deserve to be compensated according to their experience?
300, can you recommend a preferred way of listing technologies on a resume? I've struggled with how to show what I'm proficient at, versus what I'm only familiar with. Mainly because I don't want to be the only resume admitting only slight knowledge of tech x,y,z whereas everyone else is "experienced with" them.
Then drop the `slight knowledge of' bits. Resumes are not judged by number of bullet points. Just like with any writing, a big part of success is to cut, cut, cut.
also, quite important to the style: leave that 1st person "I" away. Every time when I read a resume like this I see a much overrated person, full of him/herself, former glory seeking new validation, etc. A big sign DON'T HIRE.
Hints: make it simple, objective, no complex sentence structures, just information to the job and assignment. Use nice fonts and do not clutter the information, structure it with max 2 headings.
So you see how difficult it is to please armchair psychologists: leaving out the first person pronoun from sentences is also considered bad style by some (with the suggested pseudo objectivity). Others conclude even that the person has no self esteem etc etc.
A resume is about the person presenting him/herself, isn't it?
I personally leave out "I", but yes, I have seen HR professionals suggest that you leave it in for the reasons you just stated (lack of self-confidence).
This is why it's important for hiring companies to have an open mind, for both their sake and the candidate's. Yes, a resume should be well-written, to the point, and free of errors, but realizing that everyone has their own idiosyncrasies will go a long way.
An advice I have been given is, "don't break expectations". I'm not talking about the content, which can easily have good surprises. I'm talking about the form. There, conformity is probably king. This means things like being a young white male with short hair.
Breaking conventions in your résumé can elicit positive reactions, or catch someone's attention. But it will often elicit such a strong negative reaction that your reader even look at the content. This thread alone contains examples of this.
For instance, saying "I" in the resume is breaking a convention. Nobody will reject you for not writing "I". But some will reject you for being cocky or narcissistic, or whatever. Same for your recommendation citation. It is not expected in the résumé, it is expected in a separate reference. (Edit: that last one may be an obviously good surprise, though.)
Try making a boring, conventional résumé. It should give you a second point of reference, and may help you out of a local maximum.
> you tailor your pitch to the company which is hiring.
This specific point is very important. Design your resume to save time for the recruiter. The recruiter has hundreds of resumes to parse. If you make the case you are a great match for the job opening in the first paragraph your chances of being noticed increase enormously. You are not telling who you are - you are selling a solution to a specific problem.
> If you are applying to a PHP job
There is little point in mentioning you wrote key parts of MVS/370 because the recruiter will have no idea what it is. If the company uses Ruby on Rails a demonstration of your expertise with JBOSS will be (correctly) treated as noise.
I think knowing C makes me a better Python programmer, but unless the job asks for it, I wouldn't mention it before the first technical interview with someone who agrees knowing C makes someone a better programmer.
Tip: using a spreadsheet to keep CV parts saves a ton of time.
Tip 2: find out who the recruiter is. If you can understand more about the person and his/her expectations and background, you may fine tune your CV even more perfectly.
I used to think that the cover letter was where I could point to the parts of my resume that were very specific for the job. But I've done more than a few online applications recently that simply didn't have a place for a cover letter.
The cover letter also should be designed to save time for the recruiter. Make space for some very targeted items (name, company, position) so it doesn't look like you are sending exactly the same to every recruiter, but don't make the mistake of spending more than 15 minutes on each letter.
Since you don't know which one, the letter or the CV, will be read first, you should optimize both.
Recruiter here, and this is exactly right. Three good sentences in a 'cover letter' and you won't even make me need to read the resume at all. You should be able to do it in under five minutes.
First, if you are exclusively (or primarily) applying through online applications I'd strong suggest you reconsider your search strategy. That strategy is not nearly as effective as getting in through a side door - the front door is crowded, and the bottleneck tends to get most candidates ignored. These online applications, with some exceptions, are usually the resumes that get only a few seconds to make an impact - you might lose your reader in the first few sentences (note: I haven't worked in big company recruiting from an internal role, but this is pretty widely acknowledged and studies have been released confirming how little time is given to a resume in these conditions).
Why do some companies not accept cover letters? For one, nobody wants to read them. Keep in mind, nobody wants to read cover letters OR resumes. They want to have a conversation, and they want to be able to determine as quickly and accurately as possible whether or not that conversation is worth having. This can be quite prone to bias.
Most cover letters simply reiterate what the resume says, but in a condensed format, along with some fluff about how hard they work and how strong their soft skills are. It's usually fairly pointless, and some companies ask for them as a bit of a test of your interest. Companies that don't ask for them likely don't feel they are useful, and would rather have their recruiters looking at resumes (and hopefully actually having conversations) than reading traditional formatted letters.
Investor interest and hiring manager interest has this in common: inbound to the candidate is far better than shaking bushes. Even YC alum mentioned how outbound is basically desperate and futile. Not that it can't be done, it's that the probability is much lower.
Cover letter is the TL;DR as how the resume applies to the req with 2-3 top selling points. The resume is like a marketing specifications sheet to sell a phone chat. Etc.
They don't even give me a place to put a cover letter. Last week I spent a half-hour writing a cover letter, and then went through the application and there was no place to put it.
Since most online systems require a doc or pdf format, I've started combining my cover letter and resume into a single pdf. If there's room for both in an application then I'll submit two individual pdfs, but if there's only room for one attachment then I submit the concatenated pdf.
Put a small 'summary' at the top of the resume. I do recruiting 'part-time' for work. Mainly non-computer positions but still in a very specific field. Summaries like this really help. Especially if I'm trying to look through 100+ resumes in an hour or two.
Exactly - you want a generalist background so that you can do many things, but a specialist resume tailored to the job you're applying to. The goal is to be "the perfect fit" rather than "someone who can do this."
> Tip: using a spreadsheet to keep CV parts saves a ton of time.
I usually keep it all in one LaTeX file, and abuse that as my macro processor (to include / exclude sections). Text files work well with version control.
I would always hire an experienced generalist first. Being generalist means being smart and fast learner, and those are IMHO the crucial skills for any small or medium sized team. You will end up in new and unexpected situations here and there and the "specialist" mindset is not very good in dealing with this. You need a generalist to come up with the best hack, simply because he has a much wider perspective...
The problem is that you'll never see the generalist's CV. The gatekeepers ahead of you (HR or recruiters) will always find someone with more of the right keywords or more of the desired experience to push first.
You might also end up with a jack of all trades - master of none. They often appear competent at first, but will fail once stackoverflow and their $LANG cookbook doesn't have a copy and paste answer.
This does probably not apply to OP obviously.
It's tough; when I was doing tons of tech screens a few years ago working for a consulting firm, I got pretty decent at picking out good resumes more than half the time. Mind you this was not my full time job. But you really need to do quite a bit of resume reading and phone screens before you get a good feel for it.
Excellent point. And, conversely, how do I demonstrate, on my resume, that I'm proficient as a generalist without listing the things that specialist-oriented readers here suggest that I omit?
Look at the generalist's source code to make sure it's coherent and original. It's not a problem if they use something online as a model, especially when they're unfamiliar with an API or something, as long as they understand what they're doing. Also, good generalists tend to be more prolific when it comes to entrepreneurial endeavors, so look for a bunch of original side projects. What's most important with a generalist is his creativity and ability to learn a new technology. How he does this is not really important as long as he can do it. But originality in side projects probably indicates a desire for originality in code as well.
Yes, they will make it if they are interviewed. But I thought we were talking about a situation where the recruiter needs to decide which people are invited to an interview? And than its much more difficult because in some situations you can't read the code of all applicants for volume alone.
You interview them, just like we do for every unknown person. If you don't want to take the time to do that, then you do a quick search for work they've done, and then come back to the 'do I want to interview this person?' question. Ask them what their timeline for having a job is. Tell them that the interview will involve coding on this specific thing, give them weeks or a month to prepare for it.
Help your candidates do the best they can. Don't set them up to fail at a task they weren't expecting.
One of 'pg essays is about this. So finding low risk / low investment ways to work with someone solving a real problem cuts through most of the bullshit.
If you get hundreds of resumes as a HR specialist for the programming jobs you offer, any claim that there is a shortage of programmers for your company is a big lie.
Then the company should better advertise more exactly in its job ads what they expect from their candidates so that less unqualified applicants submit their applications (while - of course - not preventing suitable candidates to submit their applications). Is this nontrivial? Surely it is; but that's why HR is a distinctive position in most companies.
If you want to learn more about this topic, begin reading about statistics - especially type I errors and type II errors, since this is the mathematical formulation of the topic I was talking about in the previous paragraph.
I applied for a position at a company a year ago and was a great fit (both from my perspective and a company rep) but my salary expectation was higher than their budget. That position remained open on their website until about a week ago. What happened a week ago? They sent an email to my almamater highlighting the position and included their current salary range. Guess what - the salary I was asking for last year fell smack in the middle of that range and they were inundated with applications!
It is. I do some recruiting work for my job. When you're looking over 100+ resumes for a position you don't have time to research every little acronym that you don't know. Sure ideally you'd know exactly what they're talking about, but in the real world that often doesn't work out.
I agree that you should tailor your pitch to the company that is hiring, but bullshit like "generalists don't get hired" is one of the reasons I left software development. People who have the fluidity of thinking to be able to grok say Ruby as well as assembly are an asset, not a liability. They can see the forest rather than the trees. There are times when you need a specialist, usually because you need some domain specific expertise, but to penalize generalists is totally insane.
What made me excise all PHP work from my resume (except for PHP security work, which honestly is like shooting fish in a barrel) was when a company looking for "PHP experts" asked "how much of your last job was PHP?" and "about half" was considered too little. Because using Ruby makes your PHP knowledge rot or something.
So I'd tell him to lie to get that PHP job. It sucks for lots of reasons, but so many employers in the PHP space all have their heads up their garbage collectors.
Yes, yes, a thousand times, yes. You don't have a single resume; you have a collection of data points that you coalesce into specific resumes for specific positions. The "vomit everything" resume is invariably a sign of:
1. a new graduate, in which case we need to be having a different sort of conversation than with an experienced hire, or;
2. a graybeard who hasn't looked for a while and doesn't realize how many more layers there are now between his initial resume and the hiring manager.
In the former case, the resume is going to be useless and I'd really rather there were a common format specifically for someone with very little work experience. And no, a transcript isn't useful, either, although it has strengths that a standard resume format doesn't.
In the latter case, these guys (and at 42, this is my cohort now) need to learn about the volume of incoming data, and how useless for decision purposes a 30 year large pile of acronyms is.
Disclaimer: Every employer is different. My advice may be completely out of phase with someone else. But during my career I've had to unfortunately interview a lot of people (as I think anyone in this field has), and frankly this is a really bad resume. Even in non-tailored format. I don't mean that in a bad way, I just think this person could really improve his prospects with some changes.
To nitpick one example, I've always felt that after your first job you should drastically cut down the importance of your degree on your resume. As far as I'm concerned your degree/major/whatever is a poor indicator of the kind of developer you're going to be, to be used only as a last resort when you are young and haven't had the chance to demonstrate yourself in the workforce. After that, your previous job titles/accomplishments are way more telling.
This guy is in his 50s and he's still got individual line items for honors and high honors. I don't care. I don't even know what that means back when he got his degree. He points out he has a double major. Then tells me his majors individually. Then tells me how he did in each major separately. This after the fact that he's already told me all this in his overview. This reads like a recent grad's section (look at me, I graduated!!!!). I half expected him to list projects he did in school (hell, maybe some of those projects at the bottom WERE school projects -- that's the mindset I'm put in by the schooling section).
Then he tells me his hobbies. This isn't as bad as telling me he likes to ride his bike or something, but "working on a couple of books" sounds so "I've been working on that big idea in my spare time for 10 years..." It conveys zero useful information to me. Clearly he has no finished books (because then he would have listed them, but somehow he is working on more than one at once). The ONLY thing interesting to me here is "Open Source projects". But thats lost in a bunch of stuff I don't care about. This should be ONE LINE which has specific github projects where I can go check out what he's done.
"MS-DOS, Win 3.1 through 7" Ugh. Unless your goal is to maintain old systems or something this just seems ridiculous.
Then you've got gems like "Voting Software; 50% of U.S. market" LOST in the stockpile of buzz words. Something like that should be a bullet point under the employer you did it under in the top section.
People go through hundreds of these things. This thing is visually exhausting. It doesn't read like a list, its jam-packed with information in different styles: top looks like an essay, then a list of short answers, then "how can I maximize information per square inch" at the bottom. I'm intimidated to read it.
Your overview should MAYBE be 3 sentences. Then immediately drop into the jobs you've had, with bullet points about interesting standout things done in them. Then ONE LINE with your degree to prove you have one, then maybe "skills" or whatever to fill out the bottom. If you've done your job right no one will be reading by then, you'll already have been placed in the "follow up" pile.
> You don't give resumes like this, you tailor your pitch to the company which is hiring. [...] Generalists dont' get hired, then don't be a generalist.
IMO this is stupid, self-destructive for companies and likely the result of cargo cult management.
My "generalist" palette is exactly what got me hired at each one of my previous jobs. I learned programming as a hobby long before going to university, and I got a degree in Instrumentation Engineering with what essentially amounts to a minor in Power Electronics. During the last two of my undergrad years I worked in a research team at my university and did a fairly good job (papers and all) in a third field, computational electromagnetism, mainly with applications in microelectronics.
This means, on one hand, that I can be very helpful to anyone in my team. I can help those of my colleagues who lean more towards software than hardware troubleshoot their instruments and development boards, and I can serve as a buffer between the hardware designers and the programmers. I can make good trade-offs between circuit-level design and high-level programming abstractions and I can design applications for low-power operation instead of writing something and tweaking it until it has decent battery life.
What this also means, though, is that people in management are ecstatic about how they can give me pretty much anything to work on, and I'll munch it, or stick me in the same room with people who think JS is the best thing and people who think computers are evil and still understand what each of them says. This enthusiasm comes from precisely the same people who whine about candidates who are "miles wide, inches deep", and I know of at least one instance when the lead developer who interviewed me had to kick and scream to get me hired because my CV painted me "undecided" and "not having a good career discipline". It's even more ironic considering that the people who whine about it are typically millimeters wide and deep.
I often hear this kind of discussion in the middle management circles. Our people are way too specialized and it makes communication and collaboration difficult; we could use people with a more diverse range of skills; we depend too much on one or two people doing this thing, but they're the only ones in the team who can do it. This is especially problematic in teams of people who have been in the company since they were juniors. Well no shit it is, since they just spent four out of the six years of their careers doing precisely the same thing.
And no, "side projects" are not a good solution to this, and I've walked out of interviews because of HR folks strongly implying that my side projects are for learning skills the company needs. Fuck off. Thinking and learning aren't free. You want it, you pay me.
I think the generalists will beat the specialists in the long run, but if the current fashion is for assembling the perfect team of specialists, a job seeker has to (unfortunately for everyone) adapt to it.
I've walked out of interviews because of HR folks strongly implying that my side projects are for learning skills the company needs.
Could you explain what you mean here a little more? Did a company, at the interview phase, tell you they wanted you to work on side projects for free?
> Could you explain what you mean here a little more? Did a company, at the interview phase, tell you they wanted you to work on side projects for free?
What they told me is that it's a good thing that I am familiar with so many technologies, since that probably indicates that I spend a lot of my own time perfecting my skills. Which is actually true. But then they began to rant about how that's a good thing because this is a competitive field and it's really hard to keep up with all the new technologies popping up, so I might have to put up some of my own time to learn the technologies we'll use.
I actually raised an eyebrow and said that no, I'm not willing to do that. This opened up a discussion about dedication and loving one's job beyond the matters of workhours and payment, which are true signs of a professional programmer, at which point I really just told them I'm not interested in their offer anymore and left.
At that point, I'd have left even if they'd have sworn I wouldn't have to do that and that they were just checking. It's really impolite. I don't presumptuously boast about how I know what really makes the difference between a professional medic and one who just has a license to practice. It's also manipulative in a really poor way, implying that if you don't do all that stuff, you're "just" a programmer, rather than a "professional" programmer. Yeah, no shit I'm a "professional programmer" -- I don't have kids, I live close to work, my girlfriend works from home so her schedule is more flexible than mine, everyone in my family is in good health and back in college I fucked up my sleep schedule so hard that the occasional all-nighter doesn't do much damage anymore. But I'm exactly as professional as the dude who comes in at 9 and leaves at 5 because his kids want their father, not his toys.
If customizing a resume is likely to work at a company, according to the conditional probabilities I have estimated, working there will make me less happy than working at a company that does not exclusively prefer specialists. Since it also involves an additional investment of time, that means the posting itself would have to be closer to my ideal vision for a job working for The Man.
Companies use barely-functional pattern matching algorithms to automatically toss your resume into the garbage. It is very likely that any effort you spend hand-tailoring your self-advertisement will be wasted anyway. But let's assume that you're doing it to pass the bozo filter and talk to a real person.
If you have to feign specialization to get past the auto-rejector, it is safe to assume that the company sees fewer qualified candidates. Supply is lower. As long as the posting remains open, demand remains the same. Therefore, the more specialized the role, the higher your expected remuneration should be. It's fine that companies are picky, but not both picky and cheap.
My advice is to use a general, unmodified resume for all your initial applications, and only to tailor your resume if the company does not respond in person after the first 2 weeks. If that generates a response, remember to ask for a higher salary if you reach the negotiation phase.
Of course this, like most other advice, should be taken with skepticism, because it is based on my experiences, not yours.
Honestly, I don't spend much time customizing a resume, because I already have a job, even if I don't like it, and a lot of the postings that I see are just as flavorless and uninspired as an untailored resume. My primary criteria for applying are whether the job itself seems like it could be interesting after you subtract the HR boilerplate and whether the company makes it easy for people to submit themselves for consideration.
If applying is as easy as writing an e-mail with a resume attachment, I will take the time to write an original cover letter. If I have to jump through 8 pages of hoops where I have to re-enter my entire resume into a series of tiny text boxes, I will not customize anything. And on the 8th page, where I am asked to list 3 of my weaknesses in an HTML form, just above a request for my entire salary history, I will almost invariably list "I get snarky when confronted by foolish or wasteful hiring practices." At that point, I have already invested that much time on an application that I know will not yield fruit, so I can't help but feel bitter about the utter waste of it.
I concur, my generalist resume listing 10+ technologies is what interested my current company in hiring me. It turns out they hire polyglots/generalists.
Maybe not BS, but in either case it doesn't tell me who you are and what you want.
And that sets off all kinds of alarm bells, be it on a resume or on a job description.
If I get a resume like that, I'm assuming the applicant doesn't really want to work with us, they just want any job, and other than a paycheck they don't give a fuck about what we're offering.
"Bug fixes, manuals, mock-ups for investors, ..., IT, web
and FTP sites (both servers and content), support calls, sales calls, marketing"
and at that point you are thinking was this really the best use they could make of this guy? IMO even if you did this stuff, just remove it, unless you want to be doing more of it. Make more of the "GUI and Internet layers for old products, design of new products" bit.
Also, maybe because I'm British, I think the tone of some of the stuff is a bit off. I would remove all the "Reason for leaving bits"
And maybe you should make a call as to whether you want to do software development or system administration, and trim or include the "my own distro" bits as appropriate, and put in more about software you have built.
Heh. I had to do all that at the dot-com because they fired everybody else after the money ran out. I was the only rank and file employee left except for one left-over junior marketing person. I turned him into a coder and he wrote a GUI for one of the CLI products. I did pretty much everything else for a couple of years.
I think you're right about the "Reason for leaving bits"
The "my own distro" part is about more than sysadmin. I'm fairly proud of it and recruiters have sometimes contacted me specifically because of the project.
The "my own distro" part is about more than sysadmin.
I'm fairly proud of it and recruiters have sometimes
contacted me specifically because of the project.
Yeah, I agree that this is really impressive. Everybody's advising you to trim older things off of your resume and perhaps that's good advice but starting/maintaining your own distro seems like something to leave on. One question: why not name the distro on your resume so people can check it out and verify and/or be impressed by it?
What I would say is rather than trim old stuff indiscriminately, focus on what it is you want to do (or what is relevant to the position you are applying for) and remove stuff you've done but don't want to do again (I've done COBOL programming but I've NEVER put that fact on a resume). Resumes do not need to be exhaustive lists of everything you've ever done.
I would suggest applying for university IT jobs. Their salaries will pale compared to what SV pays, but you will be able to live, the hours are sane, the work environment tends to be decent, the benefits tend to be excellent, and if you are at least moderately competent and ethical you're unlikely to get fired.
LACLIN will be 10 years old, in its current incarnation, on Christmas Eve 2014. I use it for all of my work. But I haven't created a public release yet.
I'd hoped to create a public release this year but I needed to suspend development in 2012 due to unforeseen circumstances. Work will resume if things stabilize.
I looked at OldCoder.org and saw that you do have extensive screenshots of your distro. Very cool!
I don't mean to myopically focus on your distro but since you said you're quite proud of it (and you should be!) ...perhaps mentioning the distro by name on your resume, and also by name on your site, could make it much easier for people to make the leap from your resume to finding out about it on your site.
Well, you're overlooking mistakes that I made. I feel that generalists should be valued more highly; this is a significant issue. However, I should have built more of a social network, taken better care of myself physically, diversified my investments more, and kept up more with how the market was changing.
I agree with that; I think people undervalue generalists, get stuck with a specialist which is nice while you are in that particular field, but the world changes. Specialists are specialists because they spent a lot of time on one thing; depending on your age that means you didn't spend a lot of time on anything else and that might turn out to be VERY difficult when you get older. I don't know many PHP 'specialists' above 30 who can actually 'change' their calling. They have an extremely hard time picking up anything else as they have been coding PHP (and a tiny bit of JS) only for the last 15+ years. It takes serious effort to switch at that point if you're not used to that flexibility in your brain.
Keeping up with the market is a big thing though; as someone who was in the dotcom boom and who did backends at the time, I only noticed that everything changed years 'too late'. It wasn't really too late, but my eye wasn't on the ball for sure as I had a cushy position anyway I didn't need to, but when I sold my stock and went looking for the next interesting thing to do I noticed that the world changed significantly.
I don't deny that getting older has an impact but your statements above are applicable to anyone and probably more so to older developers. Reading over your story the main thing that stuck out with me is that you've had a it rough for the past few years and its obviously had an impact on the career.
What I would add is to focus on your health. I don't know what problems you have but if you can work on the diet, work on the fitness, get on some kind of weight training program. The better you feel, the more energy you have will make you more effective everywhere else.
I started a few days ago. It hasn't been a good week for medical issues but things are looking up.
I've been to the Emergency Room twice since Sunday. And I had a fever of 102 degrees just a few hours ago. But I'm feeling O.K. and I'm scheduled to go back in a few hours to nail down what's happening physically.
Due to recent changes in U.S. laws, I might be able to qualify for medical care now. If it works out, this will be a big help.
Still, you should be preferable than any college graduate in any kind of junior role. Correct me if I'm wrong, but doesn't a junior role mean 100K in SV? Or do you want a more senior position?
There is a bias against having highly experienced people in middle level jobs.
Apart from the stereotype of the jaded guy that has seen too much shit, there is the power balance between a youngish manager and a very experienced programmer. Sometimes the programmer will see a flurry of incoming problems very soon and flood the manager with them, and the latter won't know how to deal with this kind of situation. He'll be relying a lot on the more experienced person, but the power balance is reversed and the responsibilities as well, and it takes a lot of tippy-toeing and ego swallowing to sail smoothly. It's tricky on both sides, and company would prefer to avoid that kind of situation.
This is highly unfortunate and seems like the problem is with the younger managers not having adequate support.
In my early 30's I had the the privilege of being able to recruit 50+ developers onto two separate teams at a startup. These were people who's experience vastly outweighed my own. I was still responsible for guiding my teams to meet the business needs, but what I learned from these people literally changed my life.
Completely agree. I had the chance to be on project where I was the least experienced in programming, and got to deal with the management stuff (in the most basic meaning: I was doing just anything needed to let the other devs focus on their tasks, not telling other people how to do their jobs). I learned a lot, I got explained a lot of tricky problems that I wouldn't have understood otherwise, and on their side they didn't have to care if the client answered their email or not.
It was a really nice experience, but more an exception than the rule. I never got to work in another place where people wouldn't focus on the titles as a hierarchy thing, but just as different roles in a projet.
If I stay in the S.F. Bay Area, I think that a junior tech position here might work out. Above entry level and below lead. The trick will be staying above water long enough to find a good match.
I'd expand my options, both tech and non-tech, if I took the right courses and obtained certifications. I'm seriously considering doing something like this.
For example, the person who did my LiveScan recently (it was a background check for a tutoring job) teaches an EKG Technician class and said that it might work out for me.
A police detective who I phoned by mistake one night told me that I should consider getting a Digital Forensics certificate. He seemed to feel that I might be a match for that. Note: The story of the call is on the same weblog as tonight's post.
The medical care issue may be looking up. I had to go to the Emergency Room the other day. Didn't wish to, but no choice. I learned that the laws changed in January and that I might qualify for assistance after 10 years without care.
The digital forensics suggestion seems quite good to me. It's a growing industry and people with decent skills are hard to find, where decent skills means being cable of working with technology from hardware up to data structures and encryption, while also making sure processes to capture and present evidence is followed properly.
In everyday situations, outside of job interviews, if I feel confident about a situation, and I'm not under time pressure, I often come across as polished.
I've been mistaken for an attorney repeatedly over the past few decades. At least twice, people have thought that I was a government official of some type.
If the confidence isn't there, I do poorly. And I haven't felt confident in interviews because of the types of questions that you're referring to.
I don't memorize data structures and algorithms. I start with projects and learn what's needed in each case.
Coding tests are another problem for me. If you review my GitHub repos or technical site (oldcoder.org) you'll see that my code is reasonably good. But it involves flow. If I drop into flow, I can do anything. But it's difficult to reach that state while somebody is waiting.
I understand, of course, that companies have their processes, and that I need to be the one to adapt as opposed to the other way around.
I'm around 40 and I struggle with the exact same issues, at least with algorithms (I'm pretty much OK with data structures).
Funny thing is, I've enjoyed doing things like Project Euler just for fun, and I can usually work out an algorithm given a little time and the ability to work on my own in an environment I'm comfortable in.
But put me in front of a white board, or phone interview, with one or more impatient interviewers in front of me? I'm toast. Many of these interviewers were studying these algorithms in depth in school only 4 or 5 years ago.
Anyway, I've resigned myself to the fact that I have to earn my own living by freelancing and side projects. I'm doing OK with that, and I hope that an upcoming side project will provide even more financial stability.
Have you considered starting your own company? These days, you don't need much.
On the off chance that you'll look back and see this, I'll response. Your implication is that data structures are algorithms, and while that certainly may be true, both traditional computer science curricula and hiring tech companies make a distinction between the two.
In the latter case, what they call algorithms usually tend to be similar to the kind of "brain twister" problems that Microsoft was famous for.
In the former case (academics), data structures include things like stacks, queues, deques, linked lists, and on to graphs and trees. Whereas algorithms are specific procedures carried out with data structures, like sorting and searching, and dynamic algorithms. And then on to much harder stuff, like FFT.
My point is simply that I feel comfortable creating stacks, queues, linked lists, graphs, trees, etc., whereas when someone asked an open-ended algorithmic question to be solved on the white board or phone, I struggle under the pressure and gazing eyes of multiple interviewers to solve these problems (whereas I do fine in my own environment with only the pressure of finishing a job).
Thanks for the reply. Yes, I was going for "data structures are algorithms" bit. Eg what good is a Fibonacci tree without the operations on it? And on the other hand, lots of `algorithmic problems' fall into place naturally, once you have the right data structure.
> My point is simply that I feel comfortable creating stacks, queues, linked lists, graphs, trees, etc., whereas when someone asked an open-ended algorithmic question to be solved on the white board or phone, I struggle under the pressure and gazing eyes of multiple interviewers to solve these problems (whereas I do fine in my own environment with only the pressure of finishing a job).
I actually do way better in the interview than when I just have to convince the computer (or myself). Enough confidence often persuades interviewers to accept handwaving.
That advantage is unfair, and makes the interview less predictable of success on the job; but I won't complain. For you, I can only recommend practice, or looking for companies with different hiring procedures.
You should study up on algorithms and data structures. You should get some coding interview books and do the problems in them. It will make you more confident, and it'll let people see the skills you have. Unfortunately, traditional interviews are really bad at actually figuring out if someone is a good coder... but if a company you want to work at uses those methods, you have to be able to pass their tests.
You mention social network, I think it is also critical to build up a good professional network. The group I am part of has a couple of individuals in their 50s, one a specialist and one more of a generalist. They joined the company through professional connections they had worked with before.
I'm purposefully making a distinction between "a random set of contacts" and a more targeted group of people who you have worked with, know your strengths, and want to work with you again.
The quoted text is a classic example of not talking to your audience, i.e. the person who is actually able to sign your paycheck and who wants to know "what do I get?"
Take the first item:
I've created a Linux distro of my own. Original and
not a fork. See articles on website.
How did this help anybody? Did it save the company time? Give them a competitive advantage? Did it increase server uptime, increase developer productivity, increase the price of the packaged product? SHOW ME THE MONEY.
So is the resume supposed to be "how can I make money for the company?" I thought that the resume was supposed to present the skills of the candidate to the person looking to fill a role. If said role already exists at the company, than the definition of how this role will generate revenue for the company should already be fairly well defined (or they wouldn't be looking to spend money on hiring someone).
Maybe this is the difference between applying for an open position, and cold-pitching yourself to a company?
> I thought that the resume was supposed to present the skills of the candidate to the person looking to fill a role.
It's always about making money for the company. (Or making your hiring manager's life easier.) Filling a role is just a means to the end of making money.
A targeted resume, intended to present me as a specialist in Linux, would zoom in and do precisely this.
However, if I tried to add this level of detail to everything on the resume at once, I'd end up with dozens of pages. Remember that I've done hundreds of projects.
In the 1990s, I tried to produce a complete resume. The result was a short novel :P I'm kidding, but it did take me years to get the thing down to a single page.
> However, if I tried to add this level of detail to
> everything on the resume at once, I'd end up with dozens
> of pages...
If we saw a function in a program that was twelve pages long, we'd think there was a problem: The code is trying to do too many things at once.
Resumes are a bit trickier because they have several purposes these days:
1. It lets the hiring manager *quickly* scan the resume
to see if it's a good fit for
an *already open* position.
2. It lets the recruiter/HR database index all of
the keywords for future candidate searches.
3. It lets hiring manager use it as a template
for *creating* a job description to give to the
HR manager that they've already selected
the candidate to fill.
Note that (1) and (2) presume that you're applying for a job the traditional, ineffective way. (3) presumes that you've actually had a face-to-face conversation with the hiring manager, have convinced them that you can help out, and left them with a copy of your resume as a courtesy. You definitely want to be doing (3). (There are many, many books and articles on how to tap into the "hidden" job market that will help you with (3).)
Resumes are like landing pages, you've got to hook people and then get them to commit or dig deeper. If I've got a stack of 50 resumes on my desk, several meetings scheduled, and some actual work to do, I'm going to be doing some serious thin slicing. I'm sure lots of strong candidates get eliminated before they even come in for an interview, but I don't want a strong candidate I want the guy I'm going to hire.
But really all that aside. I think hiring managers probably just Google your name and get scared off by the legal drama. I know you can't help that, but there it is.
"Jobs" are highly overrated. I would truly push any older developer to consider consulting. So much freedom, I have more than quadrupled my pay, work is generally interesting and I have plenty of free time to work on what I want. I don't think I'll ever be able to go back.
Most contract jobs that I see seem to be apps or webdev.
I expect to get up to speed more on native apps and/or web apps. So I've got a shot at this side.
I've done basic webdev. I might be able to make a go of small sites. But I don't know much about building a client base. Note: I've held onto an octocore server with 32GB RAM, so I could probably combine webdev and hosting.
Initially subcontracted for a friend to help his business out on a couple of contracts. His business grew and in a different industry, so I took them over and started my own business eventually. It took time, but 2 years into it I still consider it the best decision I have made.
Another story on the same page suggests he is autistic. Isn't it possible that all of the factors work against him? Subtle age discrimination, inability to interview and seem "normal" due to his disability, and the fact he's been out of work a while and seems indigent. Trained HR recruiters would see red flags even if they knew to suppress them.
And who claims recruiting as a skill when seeking a coding job?
What's wrong with his resume is that the last work experience seems to be 5 years ago, and that his skill set doesn't list anything that hasn't been around at least since the 90's.
Age discrimination is a real thing, I have seen it happen, and this resume implies 'probably expensive and not quite up to date'.
It's a little unsettling, because I'm probably not that much younger. It could have been me.
So, get up to date. The victim mentality is not helping. Programming skills are maybe unique, in that everything you need to get better is actually available from the internet. Try learning plumbing that way.
Maybe one of those recruiters can help you prune out a bit of the fluff, and expand on things that are relevant.
Also, since the CV clearly implies you're coming back from retirement, you should probably mention it explicitly and make what you have been doing the past 5 years sound good. I don't know how to do that, but those recruiters probably do.
As a former hiring manager, and a middle-aged guy myself, I see hiring as (basically) a two phase process. The first step is to get noticed, and the second step is to close the deal (get hired).
You get noticed by appealing to what your prospective employer is looking for. In this context, everything on your resume either helps get you noticed, or it's a nice-to-have, or it's a negative.
Extraneous technical experience and a great college background are pretty much always nice-to-haves. Recent, relevant experience and accomplishments are generally the real things that get you noticed.
Once you're in the door, you close the deal by demonstrating that you can kick butt on whatever your prospective employer needs to get done, and fit in well with the team while doing so. It's true that different people want different things, but if you can show you're an expert at what your employer needs, and if you are pleasant to be around and work with, your odds of getting an offer go up tremendously.
The OP is right that if you fall off the job ladder, it's much harder. Your first priority should be to get some kind of job doing what you want to do, at the best salary you can negotiate. But, you're negotiating from a position of weakness, and that probably means you won't initially make as much money as you want. I don't have a magic bullet here. You have to get back on the horse, put in your time, build your resume, and from there you have much better prospects in future job negotiations.
Note that all these things are true regardless of your age. No doubt, age is a factor sometimes (just like, say, ethnicity is a factor sometimes). But if you sell yourself right, and if you can really do the work in an awesome way, ultimately that will carry the day, regardless of age.
> You get noticed by appealing to what your prospective employer is looking for. In this context, everything on your resume either helps get you noticed, or it's a nice-to-have, or it's a negative.
Too much volume of things is negative in itself, even if all of them would be nice to have by themselves.
Not a clue but I shouldn't imagine he'd have any trouble picking up a contracting gig in London (which isn't specifically helpful to OP, I know) - his resume is much better than mine and I do ok at 42.
IT industry is in a bubble since 10 years or so. To sustain its economy it needs to generate so called new technology that obsoletes in a few years. It is called progress. Our web pages in Perl became web apps powered by frameworks like rails, that became apps on mobile written in C. They are fundamentally the same. Just using more and more resources, more unstable, less secure.
That's the price to pay for not having an industry anymore and keeping people that took a 90k$ loans employed. Old programmers are a pain: they have knowledge. Sack them all.
I wonder how much of this is age discrimination. A common complaint I've heard against older workers is, "Why isn't someone they're already worked with eager to hire them?" It gets to the point of networking, and once you've had a bad spell, it's tough to recover.
edit: on the bright side, now that this post is on HN frontpage, I hope someone seeks this guy out and gives him a job. From what I can grasp, the quality of his code is pretty damn good.