Ask HN: What do you want to see in a resume / GitHub profile?
I've been out of the hiring game for 7 years. I love my job, my company but, unfortunately, COVID has affected it more than we would like to believe and layoffs are going to happen soon. I want to be prepared when that happens, so I'm asking my fellow HNers: what do you want to see in a resume and GitHub profile? I'm a Principal Software Engineer.
I see all the cool kids with side-projects: libraries, applications, etc. I also see plenty of fancy resumes. I have a 2-page thing in Helvetica, nothing fancy, listing my achievements and skills. I tried to reduce as much as possible since I've been told that the more I put there, the worse it is since it makes me look old and "you can't teach an old dog new tricks".
I know a lot of people, and I'm sure I won't be in a pickle. But I don't want to rely on my soft skills or work connections to set me up in the future: what is it that the market is currently looking for and how to adapt myself to it?
ps.: Oh, is ageism a thing? I'm 35.
80 comments
[ 4.7 ms ] story [ 139 ms ] thread- Use high-level vague marketing speech like "helped reduce customers acquisition cost by $X" - The world is complex, who knows what that means in practice.
- List MOOCs, certificates, or free online courses on your resume. 99% of these require no commitment and don't teach you anything. Listing them signals that you care about cheap credentials more than learning. If you wanted to learn, you would've created a project out of it, tried to implement something, or written a blog post, etc. I'd rather see "I privately read books about X in my free time" than cheap MOOC credential signaling. That'd be more impressive and I could ask about it in an interview.
- List software like Excel or Google spreadsheets. I mean, if you're an engineer I'm assuming you can use a computer. Listing this means that you're living in a different world.
- List fluffy soft skills like "I am a good communicator" without any backup. Results speak louder than words.
- Too many spelling mistakes.
These are the things off the top of my head, I may add to it later.
How you bring result/backup about soft skills in a CV? Is already quite hard to get an understanding of hard skill from a piece of paper let alone soft skills.
Unless you think you can condense the complexity of the experience of a person in a two page document.
Also trying to backup something like that with things such as "speaking engagement" etc is not even working. There are people who are "good communicator" for a certain audience (eg. Entry level) but quite bad for another audience (eg seasoned engineers). For example for me a bad communicator is a person that spend 30 minutes to share a concept that can be compressed in 2.
I guess organizing meetups, running clubs/committees, giving talks at conferences or having achieved something in a team game.
Also I had experience on working and organizing team of people and I would really point out that is super hard to get people to work together doesn't matter what. There are people who hate each other and can't work together and some that dick head that get along well.
So what I do I just skip the soft skills section in the first place. What I find it useful is scenario base question like: last time you had a conflict in your team how did you handle that. You can understand a good communicator much better in this way than claiming to have experience at speaking on random conference (communication has much more to do with being able to empathize with the other person's point of view rather than keep pushing through your own idea with very nice pointless words)
> Most of the speech in any conference around the world are just simple stuff that can be condensed in an hour
I have found that in majority of technical talks, an hour is thoroughly insufficient to convey everything in detail. This means, a good talk requires days of preparation, careful understanding of the critical aspects of the subject matter and building a narrative that joins all of them seamlessly.
It is incredibly difficult.
> Usually you could do the same in a 10 minutes session if you are targeting a more skilled audience
In my experience, 10 minutes is only good for elevator pitches. To take away anything of technical values, it usually takes 60 minutes or more.
> that is super hard to get people to work together doesn't matter what
That's why my mentioned running clubs/committees or being deeply involved a team sport. Those exact same dynamics manifest in the 2 scenarios and the skills obtained form there are to some degree, transferable to industry.
> What I find it useful is scenario base question like: last time you had a conflict in your team how did you handle that
I love these kinds of questions. Not because they always reveal anything important, but they play to the strengths of a good story teller.
Most people at this point, practice these questions just like leetcode. The interviewee doesn't answer your question, they fetch a meticulously crafted and appropriately fictionalized account of a past event, and the interviewer is none the wiser.
> Most people at this point, practice these questions just like leetcode
This is a valid point and as you mentioned is true also for hard skills (eg. Algo prep with leet code). But at one point the question would be: would you rather hire someone that showed dedication for the job to the point that spent weeks/months to prepare leet code or possible other interview questions or someone that perhaps performed worst during the interview?
Most of the time you can always find out who is just memorizing everything by asking follow-up questions (both for technical and non technical questions) and as I guess you know (there's plenty info on the web) you can find books on how to crack any interview
How I can tell you don't work with the government....
Government and government-related consulting loves certifications. If you're in that field you probably already know this, but if for some reason you're looking to relocate to a gov't-heavy area, or just applying to a contractor for the first time: yes, list certifications if you have them. If you don't have something the employer will have to pay for you to get one anyway, so already having something will save them money.
On the other hand, apart from niche areas indeed nobody seems to care about certifications.
ie: there’s a difference between having a certificate showing you’ve finished some Certified Ethical Hacker course, and actually having the Certified Ethical Hacker certification. The former is not worth much, even for govevernment or their vendors.
Yes, that different world is the public sector (or even just enterprise hiring), where applicants are graded against criteria.
I agree that high-level buzzword-laden items in a resume are off-putting, but that example is actually concrete evidence that the candidate:
1) helped the business in a tangible, quantifiable way. (competent)
2) knows how their work was contributing to an important business metric. (aligned with business side)
The world is complex. There is rarely such a thing as a single person writing a few lines of code, and that code directly leading to $ savings. There are complex interactions and dependencies. Also, not all engineers are working on code that has measureable bottom-line impact, so these statements are only possible for a few. For example, an engineer refactoring old code can save a company millions over the lifespan of that code, and it would never show up as dollar values anywhere.
On the other hand, someone can change a cell in an Excel spreadsheet that had a typo in it and save the company $100,000. Should I hire the person because they found a typo? These kind of statements with dollar values are meaningless because the reader is missing context. More often than not, they are vanity statements and come across as disingenuous. I'd rather have you describe what you actually did.
A better example would be "Architected and implemented new real-time event messaging infrastructure using technologies X and Y that allowed us to move of expensive SaaS service Z and save $$.", or something like that. At least that tells me what you did, but even here the $ value is meaningless.
Which is the worst thing about modern hiring practices.
This is usually what a first stage phone interview is for, especially if that piece of information is critical for the hiring decision. I agree the wording should be more precise about the capacity in which the candidate helped, but there's also a balance to strike between providing that context and brevity (which is valuable in resumes).
I'd take this with a grain of salt. Excel is a very malleable tool that can do marvels in the right hands.
Excel has the usual advantage to be immediately communicatable to others outside IT: just send the excel file.
From my own experience, I can tell you that there's two basic kinds of resumes: an "attractive to recruiters" resume, and an "attractive to a single employer" resume.
The former is what you post on job boards to get recruiters to notice you. It's full of buzzwords and designed to cast a wide net. It doesn't need to look great, but it should provide lots of information about your last few jobs and highlight all the tech you've worked on as well as different industries, roles, etc.
The latter is what you send them as your "latest updated resume" that will get passed on to a real hiring manager at a real company. It should be trimmed down, attractive without looking ridiculous, and only showcase the stuff that matters to the one company and what they're looking for. You want the person who hires you to think that you were born to fill that role, and that you will be an "easy hire".
And yes, ageism at 35 is a thing, but you can use it to your advantage. Younger people might get overlooked for some positions for "not enough experience", whereas an older person can talk up their proven effectiveness and ability to solve problems and manage complex work and soft skills.
I’m not sure if linking to this post from your resume is a great idea... but it could be.
If you’re in Chicago, reach out.
Am I the only 30 yr old who feels like he only just got to grips with the basics of how to write software like an adult?
If we're past it by 35 what happens for the other 35 years of working life?
BTW, based on the currently common lifestyle choices, most tech folks who are 35, likely do not have another similar 35 yrs left in them :-)
- Look at N job descriptions for job(s) you want
- Flush out your LinkedIn profile to make it look like you can do the jobs you want
- Set your LinkedIn profile to being open to new opportunities
- Engage with any recruiter who comes along for the practice
- If you get a lot of attention, refine your pitch, and if you don't get any attention, look into why that is
- If a recruiter asks you to send them a resume, and you don't have one you like, use a PDF of your LinkedIn profie
Could you expand on what all this involves?
Now let's say you've been working on as a Fullstack Engineer @ BlandCo. You're confident that your recent work experience has prepared you for the frontend position at GlamourCo, but it's not an obvious fit.
Would a recruiter @ GlamourCo look at your work experience from BlandCo and think "holy moly, this person looks has the CV that makes me wanna call them first!" If not, why not? You need to make your application a package that the hiring team wants to open sooner than later.
- What draws my attention is humility and the resumes that speak directly to me. Like a resume narrating a coherent career story.
- Show some solid experience in the core technologies requested in the job posting.
This much is usually enough to prompt me to give someone a call and then know their story and cross reference it with what the resume said and also know more about them.
The most salient piece of advice: Use a "what-how-what-impact" format in your work history's line items.
To modify an example given elsewhere in the comments, instead of
> helped reduce customers acquisition cost by $X
prefer
> Streamlined customer acquisition by building a self-serve customer onboarding web app using Python and Django, reducing acquisition cost by $X yearly
Instead get a referral and leetcode like crazy. Target all the leet code questions that are tagged by your target company and CTCI
- Projects should have a clear README explaining what it is and why it exists. Some hiring managers will dive into the code properly but others simply won't have the time and are looking to get a good overview. Both groups want to see a clear README that explains what the project is about and ideally provides a link or some screenshots if relevant. Things like installation instructions should be there as a component of good documentation, but don't expect them to actually go to the effort to do install and run things, most won't.
- Curating your GitHub profile a little can make their lives easier. Simplest way to do this is by pinning your best repos. Consider removing (or making private) things that might be considered "clutter" like e.g. forks that you haven't done anything with.
- Having good, atomic commit messages, and clear, helpful comments on issues, prs, etc. is good, but many simply won't go into this much depth.
- Having detailed, well-written blog posts about technical issues can definitely be impressive. As with your code, a hiring manager may often just skim this, but all they need to come away with is the impression that "this person knows their stuff".
- As said in another comment, things like typos and grammar mistakes are a big no-no, especially on resumes.
[1] - https://profiled.app (tool for generating a portfolio site from a GitHub account)
It's not a definite "no", but it's a red flag for me as to why you would need Flask for one project when you have used Django for another and PHP for something else. If you can convince me that you that you had a good reason for changing that doesn't appear to be resume driven development, then I'll listen.
Also I am starting to value team players over technical skills. Provided you are of a reasonable level of ability it's more useful to have a team player than a diva genius. Most of us are doing a variation on CRUD that doesn't require superior levels of algorithmic ability.
My 2 cents having done this for 20 years and getting a bit bored of the bullshit .
Have as many tech on your CV as you want, but you'll need to back it up when you're asked questions on them.
Using cutting edge technology can be fun and interesting. It may not be optimal, but these are personal projects--they're not intended to be optimal, but rather something more hobbyist.
I don't have a problem with people trying out things, but I have worked with developers that appear to need a new tech for every project. These people are doing it on work time.
It's like when you see a tutorial learn python in 8 hours. That means you have 8 hours of experience in Python, you don't know it in the same way as someone who has used it for 4 years.
This is like people who penalize people with 4.0 GPAs because "that meant you focused too much on academics".
If you really think it's fruitless, then at worst just ignore it.
You're almost there. It's probably not useful to know every framework inside out, but there is a lot of value in being familiar with trends, which often means trying out a small project in a new tech to get a feel for it and then moving on.
What sort of value? Every programming tool (not just framework) requires you to learn different concepts to use it. Each requires you to think differently, which strengthens your toolbox in all frameworks, and learning new things often makes it easier to learn.
There is the potential for professional value. You never know where the community will go or what job listings you will see. For emerging tech, a little side project could mean the difference between getting or not getting a job that uses that tech.
HN tends to upvote those, because they are often controversial and interesting.
Additionally consider there is no good way on a resume to distinguish between considering but declining to use a technology, and never evaluating technology in the first place. Additionally, consider that many people pick up expertise with overlapping tools due to circumstances they cannot control (legacy codebases, client insistence, freelance.)
I say this as a fellow resume reader who experienced some of what you describe. It feels like gaining wisdom but it's not quite.
- Decide first what type of role would you be interested in ? And this is not always driven from your current experience but most likely, your current experience will be the most relevant. You said you are a Principal Software Engineer with at least 7 years of experience ? Do you want to be ready for a similar job or are you interested in a different role that you know you are capable of.
- based on your determination from above, you then need to work on your Resume and online presence. Do you need a github ? Not really. There are lot of github profiles out there that are basically just a fork/clone of other projects without any new work being done. Instead, create a 1-2 page website about you with your Resume on it. Make it easy to learn about who you are and if you are worth a second look on paper. Focus on "accomplishments" instead of technologies especially as you become more senior over the years. I couldn't care less if you are a Python or PHP developer if your Resume talks about solving real problems at work that are similar to your prospective employer.
- I highly suggest starting a blog. It is hard I know. It is difficult to write. But talk about things you have learned. Not only tech but general stuff. Things that gives a prospective employer indication about the type of work you like to do. For the right employers, it will help. No one knows who you are until you show. This is an old saying "Show, Don't Tell". Figure out what works for you to show who you are and then let people find you hopefully.
- Ageism is absolutely a thing. But there are plenty of good companies/hiring teams that look for experience and value it. Because they need it. Find those teams. Ageism becomes a bigger issue when you are that guy with 1 year of experience 7 times instead of actual 7 years worth of experience. Which one are you ? Challenge yourself and find out.
So instead of this:
I'd just have this: I can't comment on if it's something hiring managers and recruiters prefer but I can say that I think it looks nice and I am currently employed.https://thetechresume.com/
I was usually called in for an interview for 2 out of 5 times. The CV just lists the different places that I worked and what I worked on. At the end I have a table with the tech that I know. Listed most recent first. I have a picture in the CV and some bullshit about what I do in my spare time. I have kids .. so no spare time of importance.
Maybe don't rely, but please don't feel bad about using work connections.
And it's not necessarily a matter of "set me up": If you work well with someone at one company, you'll probably work well with them at another. It's win-win.
In a resume, I want to see where you've worked, how long you were at each job, and your major accomplishments at each. Those can be technical and non-technical -- perhaps you made some excellent people process improvements you can showcase. I don't want to see your hobbies or where you went to high school, keep it professional and relevant to work. Personally, I use LinkedIn as my resume. If a recruiter wants something different, they're welcome to use print mode or format it in Word / PDF themselves.
I don't care about your GitHub profile. It's a small value add, nothing more.
Ageism is not a thing I've seen. I've worked at a trendy unicorn and was involved in hiring multiple people 30+ and at least one 50+. I'm in my mid 30s.
At your level, I really want to know how you work with others and influence teams across an organization. Your tech skills are now secondary to your people skills, but you still have to be up to date on tech since you'll be one of the driving forces at the company.
Why don't you want to rely on your network to set you up in the future? It's one of your biggest professional assets and will open doors to jobs that aren't publicly advertised.
I think this sentiment may be unfortunately common. It used to be that having a good github profile was golden. I got my first two jobs probably as a result of my github activity. Lately I get the sense that no one even bothers to look. To me this signals that the company itself doesn't value technical matters as much as how good the candidate is at answering canned behavioral questions.
For example, if as a hiring manager you are convined that "Tell me about a time you had a disagreement with a coworker" is more valuable than a decade of open source contributions to relevant projects, that's a problem IMO.
That makes sense. You're showing small contributions which is what's expected of a junior engineer. It showcases that you can actually write some code. However, as you advance in your career, the expectation is that you will work on higher level concepts. Github profiles aren't really a place I've seen used to showcase architecture and design skills, nor how candidates work with others, and those things matter significantly more than a 20 line patch in an open source library for a Lead+ engineer.
The parent poster was asking for advice as a Principal Engineer. At that level, they aren't going to be writing much code on a daily basis, so their Github profile is not very relevant to the job at hand. That level is VP equivalent or higher at most companies, and most engineers will not achieve it. It comes without the people management, but is most definitely a leadership position.
I would argue that candidates should absolutely be judged on whether they have significant portfolio work available to view publicly. Of course, this is dependent on the hiring managers' being competent.
Candidates shouldn't necessarily be judged on not having any public portfolio work though. I'm an advocate for take-home challenges. I think these give the best representation of actual work.
That's a valid argument and response to the OP in particular re: principal/senior positions.
> Github profiles aren't really a place I've seen used to showcase architecture and design skills, nor how candidates work with others, and those things matter significantly more than a 20 line patch in an open source library
You're underestimating how much work is actually hosted on Github these days. For example, what if one of the major contributors to an open source framework like Serverless, or a programming language like Swift, applied to your company? You're convinced Github doesn't matter, even though your default job application site probably requests a github link. In terms of documentation, formalized APIs, project management, github actually could still be a great source of information on advanced candidates and junior.
I'm more inclined to believe the industry has been inundated by hiring managers who aren't qualified to evaluate anything technical, so fall back on canned questions which are of absolutely no value. "Tell me about a time you had a disagreement with a coworker" is not going to give you useful information. Everyone knows these questions exist, and everyone prepares some bullshit answer to them. What you are selecting for is "How rehearsed is this candidate." Wow, it turns out 90% of candidates had identical "challenges" and "learned" from their "experience" and are "growing as an engineer!"
It does make interviewing easier, and certainly helps with demographic hiring quotas if you don't actually care about a person's technical history - when you are hiring computer programmers.
Edit: Another point I'd make is that, as a candidate, when I find out who I'm interviewing with I always search their github. Most github profiles actually suck and are negative signals.
Of course if someone has built their career on open source work then their Github profile matters, but that's less than 1% of all developers.
Some of my peers would pour over resumes for hours. Others would look for specific items (a technology, a company, a school). Others would almost completely ignore the resume. Some companies I've worked at would have HR pre-vet resumes, getting rid of ones that didn't have some magical combination of keywords.
Sadly your resume is going to have to survive encounters will all of these people.
I will list one personal pet peeve: do not put anything on your resume that you cannot have an intelligent five-minute conversation about. "That was a long time ago, I kind of forget the details" doesn't cut it--if you forgot the details, it doesn't feel like it's part of your current skillset and thus doesn't belong on the resume.
* Concise bullet points.
* Easy-to-scan bullet points.
There is a style of resume I sometimes encounter: huge blocks of paragraph text including scattered bold statements about React Native and other Super Buzzwords. There's a whole story crafted about the applicant and their AWS skills.
It's incredibly hard to parse. Don't do that.
2. Seniority. It's said that a person's second project will be their worst, overengineered and bound to fail. Someone who has done three projects can solo. Any less needs a mentor who has done at least three projects. Someone who's working on their first production project will underengineer it, but that's fixable by bringing a senior in later. There are people who have years of experience but never the opportunity to do a project from scratch - these will still go through those phases.
3. Fill in gaps. If they're a break, why? Many people are embarrassed of gaps, because they're a phase of experimentation and failure. But if you've taken a couple years off to become a monk or try a startup, say so. Dealing with burnout says a lot about your experience and how tough you've grown too.