Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

IT Profile Checklist

Progress Section

  • Resume

    • Header
    • Summary
    • Accomplishments
    • Experience
    • Education
    • Other stuff
  • GitHub

    • Followings (20+)
    • Followers (10+)
    • Stars (50+)
    • Forks (10+)
    • PRs (5+)
    • Avatar
  • LinkedIn

    • Contacts (50+)
    • Photo
  • Portfolio (TODO)

    • Sandboxes (10+) (TODO)
    • Libraries (1+) (TODO)
    • Applications (1+) (TODO)
    • Games and puzzles (TODO)
    • Flagship project (1) (TODO)
    • Common errors (TODO)
  • Other Formats

    • Tutorials (TODO)
    • Articles (TODO)
    • Interviews (TODO)
    • Polls (TODO)
    • Tech reviews (TODO)
    • Book editing
    • Recommendations (TODO)
    • Competitions (TODO)
    • Ranks (TODO)


Fake it till you make it!

  • (TODO) Goals.
  • (TODO) Professional and non professional.
  • (TODO) Pyramid of impression.
  • (TODO) Ethics.


The basic idea is to make a single resume in markdown format and update or fine-tune it for each hiring platform or medium independently. Some platforms require sections in specific order, some mediums don’t support images, some vacancies worth highlighting or muting some spefific skills. You simply can’t have a single document satisfying all those mutually exclusive points. Yet You don’t want to recreate resumes from scratch each time either.

As tedious as it is, it’s a good idea to have a few versions of your resume if you find yourself applying to different roles. You don’t have to have a unique resume for every single job, of course, but if you’re applying for both manager and individual contributor positions, for example, then you want to have a slightly different version of your resume that’s tailored to each one.

The best way to go about this is to find at least 10 recent job listings under the position title you’re going for, scan them all for common skills and experience requirements, and then emphasize those skills and experiences in your own resume. Do this for each position you’re applying for and you’ll be prepared for anything.

(TODO) downloadable example

What’s a resume to begin with?

Your resume is a marketing document. It’s not the history of your past – it’s an ad. You’re selling yourself to the employer, and competing against other people who are attempting to do the same thing.

A great resume doesn’t just tell them what you have done but makes the same assertion that all good ads do: If you buy this product, you will get these specific, direct benefits.

Your resume is not a place to brag; nor is it a place to be modest. Its sole purpose is to generate interest in you. What differentiates you from the competition.


There are three basic resume structures: Chronological, Functional, and Combined. I personally prefer Combined so I will explain sections from its point of view. Feel free to make your own research.

In most cases, a great resume has two main sections. In the first, you make assertions about your abilities, qualities, and achievements. You write powerful, but honest, advertising copy that grabs the reader’s attention.

The second section, the evidence section, is where you back up your assertions with evidence that you actually did what you said you did.

  • Header
  • Summary (assertion)
  • Skills (assertion)
  • Accomplishments (evidence)
  • Job History (evidence)
  • Education

Put the strongest titles first. No matter how well written, a resume gets scanned for 5–25 seconds. And only then, a recruiter may decide to inspect it in more details. Scanning is more difficult if your resume is hard to read, poorly organized or it spans multiple (4+) pages.

I believe 1–3 pages are the optimal length for most cases. As a rule of thumb, the more experience you have, the longer your resume may and should be.

Let's talk first about general writing style you should follow.


One of the best marketing advices I heard is to flip your statement to the opposite and check if it gets a bad meaning. If so – your initial statement is probably a platitude, a commonplace and needs reconsideration.

For example, "experienced", "specialist", "senior" adjectives aren’t bad because their opposites "novice", "generalist", "junior" aren’t bad by default. You don’t say you’re automaticall better-than-others, using them. It’s just a clarification. While "the best", "competent", "expert" are bad because nobody will use terms like "the worst", "incompetent", "amateur" to describe themselves in resume.

Use a logical format and wide margins, clean type, big and contrasty font and clear headings. Selectively apply bold and italic typeface that help guide the reader’s eye. Use bullets to call attention to important points (i.e. accomplishments).


Like the tip above, don’t be afraid to take ownership of the things you’ve achieved. Phrases like "assisted with" and "participated in" are passive, and they can give off the impression that you were a bystander on the project. "Responsible for" and "contributed to" are slightly better, but action verbs like "completed", "engineered", and "developed" are the best there.

This isn’t to say that you should eliminate all passive phrases from your bullets, but do try to limit them. On the flipside, don’t take ownership of things you haven’t achieved. You want to be honest with what you’ve done, so if you really did only assist on a project – don’t say (or imply) that you managed it.

DETAILS THAT MATTER There are any number of details that really matter. Consider all of the following.

Font. Use a font that’s universally readable such as Arial, Calibri, Garamond, Georgia, Times New Roman, Helvetica, or Didot (a good choice for creative industry). Whatever font you select, use it consistently. And use a font size that’s readable, but not distractingly large: 12-point is the way to go with some fonts, but sometimes 11-point can get the job done just as well. PDF. Save your resume file as a PDF. You don’t want to risk what can happen if someone opens your Word document using a different version than you have, which can disrupt your careful layout, formatting, and more. File name. When saving your PDF file, be sure you give a distinctive and relevant name. Definitively don’t give it a number (e.g., NickSmith_V3.pdf) and don’t call it NicksResume.pdf. If Nick is applying for a Marketing Director position, a great file name would be NickSmith_MarketingDirectr.pdf). Keep track. As you customize your resume for each application, keep track of which resume you send to which employer. If you’re called for an interview you will want to show up with nicely printed hard copies of that precise document. Don’t mix first-person and third-person. Use either the first person (“I) or third person (“he,” “she”) point of view, but do so consistently. Watch your verb tense. If the accomplishment is completed, it should be past tense. If the task is still underway, it should be present tense. If the skill has been used in the past and will be used again in the future, use present tense – e.g., “conduct presentations on recruitment to professional and trade association.” Experience first. Experience sections should come before Education. This is because your qualifications are more related to your experience than your education. Exceptions would be (1) if you have just received or are completing a degree in a new field, (2) if you are a lawyer, (3) if you are an undergraduate student, or (4) if there’s something particularly impressive about your education – for example, a Rhodes Scholarship or an MBA from Harvard.


Recruiters expect to find your contacts right on the resume header. So I think it’s a good idea to follow this convention. Don’t add multiple emails there – it will present you as an unorganized person. Check that your contacts look professional and preferably contain your name:



Summary it the most important section of the resume. As the word suggests, it summarizes your whole resume in a few sentences, making the work recruiters/HRs would do otherwise. Weak summary = No Job. You'll have to rewrite this paragraph as many times as you need to achieve the perfection it deserves. It should be short, outstanding, and memorable at the same time.

Concrete Recipe:

  1. A short phrase describing your profession
  2. Followed by a statement of a broad or specialized expertise
  3. Followed by 2–3 statements emphasizing your TOP selling points.
  • breadth or depth of skills
  • unique mix of skills
  • range of environments in which you have experience
  • a special or well-documented accomplishment
  • a history of awards, promotions, or superior performance recommendations
  1. One or more professional or appropriate personal characteristics
  2. One sentence describing professional objective or interest.

More information:

Use Summary section instead of Objective. Employers don’t really care about what they can do for your career. They care about what You can do for them instead. The objective section is all about you, when the interview should be all about what you can do for them.


The number of bot usage in resume search is increasing. As most bots evaluate keywords – the importance of Skills section is hard to overestimate.

On the same time, you should avoid repetitions and redundancy: HTML, XML, XHTML, HTML5, DHTML... HTML5 or just HTML is enough. Those bots will use shortest terms or fuzzy matches to handle such corner cases for you. So HTML5 or just HTML should be enough. And for people it will look spammy. Be conservative – unless you’re a Java developer – you can easily forget about XML "skill".

Avoid skills like "Microsoft Word", "Markdown" and other skills you must have by definition as a developer. If you don’t have anything better to put there – it’s probably too early for you to look for a programming job.

Don’t list years of experience with each tech. Those years will hardly be accurate and don’t add anything valueable to a reader. If you have a big experience with PHP – state it explicitly in your summary. Your projects and work history prove your skills much better than abstract "years spent".

Avoid progress bars. They assume you know exactly the amount of knowledge in the specific area and those particular bits you’re missing. Which is, most probably, a big lie.


Soft skills are becoming almost as essential as technical skills to hiring managers and companies. You want to demonstrate that you’re someone who can work well in a team, analyze and solve problems as they come, and communicate with all levels of an organization and everyone outside it—most importantly.

So how do you show this on your resume? Use words like "negotiated", "analyzed", and "influenced". You want to be the "key player" in motivating a team or the "go-to person" for relaying information. You completed a difficult project under "tight deadlines" or "with minimal supervision". If you were ever asked to do something outside your job responsibilities, this shows flexibility. If you ever trained a new team member, then that shows leadership and communication skills.


Identify accomplishments not just job descriptions.

HRs seek candidates that can help them solve a problem or satisfy company’s needs. Consequently, you can’t be a solution to their problems without stating how you solved similar problems in other companies and situations.

Focus on what you did in the job – don’t just claim "my job was X". Accomplishments should be unique to you, not just a list of what someone else did. Avoid being vague and generic – the more specific are your claims, the better.

If the only awards received were in school, put them in the Education section. If you have received commendations or praise from some very senior source, you could call this section, “Awards and Recommendations.” In that case, go ahead and quote the source.

When you set about writing the bullet points for each of your previous roles, remember that it’s not about the work you’ve done; it’s about the things you’ve accomplished. Companies want you to duplicate your successes with them, not just your tasks, and they don’t want to just take your word for it. If possible, always include solid figures that put your accomplishments into measurable terms; you want to definitively show that you’ve increased productivity or lowered costs, for example, by x percent.

Job History

Use reverse chronological order. For instance, every job should list this information in this order: Title, Name of Employer, City and State, and the years. (TODO expand)


List education in reverse chronological order – degrees or licenses first, followed by certificates and advanced training. Set degrees apart so they are easily seen. Put in boldface whatever will be most impressive. Don’t include any details about college except your major and distinctions or awards you have won, unless you are still in college or just recently graduated. Include grade-point average only if over 3.4. List selected coursework if this will help convince the reader of your qualifications for the targeted job.



Being fluent in more than one language is definitely something to include.


Include only if published, and provide links where you can if you think the work is impressive and relevant. Summarize if there are many.

Comments from Supervisors, Clients, other Professional Elite

Include only if very exceptional. Heavily edit for key phrases.


Tread thoughtfully here. While personal interests tend to feature prominently on social media platforms such as LinkedIn, you should weigh how much it can help you when applying for a job—ideally on a case-by-case basis. It you include a section like this, keep the following in mind.Advantages: Personal interests can indicate a skill or area of knowledge that is related to the goal, such as photography for someone in public relations, or carpentry and wood-working for someone in construction management. This section can show well-roundedness, good physical health, or knowledge of a subject related to the goal. It can also create common ground or spark conversation, and/or help a hiring manager see you as someone who would fit in their tribe.Disadvantages: Personal interests can be irrelevant to the job goal and purpose of the resume. Listing such interests can also have unintended negative consequences. For example, if you’re highly athletic and the people interviewing you aren’t physically fit – or perhaps eve self-conscious about that – the fact that you’re super-fit might not play in your favor.If in doubt, do not include a Personal Interests section. Your reason for including it is most likely that you want to tell them about you. But, as you know, this is an ad. If this section would move the employer to understand why you would be the best candidate, include it; otherwise, forget about it.

Things to avoid

Every word on your resume takes up valuable space, and you shouldn’t waste it with things that make no difference at an initial resume assessment. Constantly ask yourself: does this piece of information help the employer decide whether or not to call me for an interview?

I recommend removing all of the following pieces of information from your resume:

  • Age / Birthday
  • Marital / Relationship status
  • Gender / Sexual orientation (*)
  • Ethnicity / Nationality / Immigration Status
  • Social Security Number
  • Driver’s license (how does being a driver help you as a developer?)
  • Full address (city and state/country are fine if you want to give a general idea)
  • Irrelevant hobbies

(*) – every person has at least one trait that an "average person", will consider bad or wrong. You may not like kids or anymals, you may prefer loud music (making others mad), you may be a vegan or meatan. Whatever unique features you’ve got, it doesn’t mean you have to proclaim them every now and then. Conversely, if you enjoy being different – have a courage to meet the consequences.

If you want to mention your less controversial traits or hobbies (ones, you think, may add a bit of personality to the document) – feel free to do that. Just don’t overemphasize them.

DO Sell yourself – first and foremost. Always bear in mind the needs of your customer – the employer. What do they need to know to assess that you’re right for the job and will deliver for them? Customize your resume for each job application. Use keywords selected with your prospective employer in mind. Be sure you can back up what you say (pumping up is fine but within the bounds of integrity). Use dynamic, high-energy language. Tighten up sentences where you can. Space is at a premium. Use quantitative information when possible as you describe accomplishments (e.g., ($1 million portfolio, increased sales 30%, double revenues). Look at everything you’ve written in your resume and add action verbs wherever possible. Make your resume long enough to include all relevant information. Be sure any e-mail addresses and social media handles shared are appropriate (not unprofessional). Use the same version of your professional “screen name” consistently.

DON’T Be unduly modest. You are selling yourself, period. Wing it. Real preparation and homework is required – no matter how lucky you’ve been in the past. Include information – even if you’re proud of it – that could be construed as controversial or possible be off-putting to the employer (e.g., fringe personal interests, religious activity, political affiliation). List everything you’ve ever done. It’s better to leave an employer a little curious and more apt to interview you. Include salary information. It is appropriate for you to provide this information only when asked. Mention reasons for leaving jobs. You can have tactful, professional reasons ready for interviews. Include references. Provide them when requested, and be sure your references know that an inquiry is on the way. Try to be funny or cute – no matter how great your personality, these things don’t translate on paper. Include every single piece of information about yourself – this is not your resume’s job. If the employer wants to know more about you, they’ll ask you for an interview. Get wordy. Don’t use three examples when one will suffice. Be hyperbolic. Don’t use more than one power word or adjective in one sentence. Underestimate the power of reading the job posting carefully and doing all of your homework. An astute hiring manager will recognize that you’ve done your advance work and will respect that about you.


This is certainly a controversial topic, but personally speaking, I see no problem with it. Profile photos are everywhere on the web and you probably have them on LinkedIn, Github and a bunch of other sites. I don’t see why you shouldn’t be supposed to add them to your resume if you want to. Resumes with good-quality photos bring a human connection and empathy that might even give you an advantage. Some say it’s not professional, but I can’t see what’s so unprofessional about showing your face. Others say hiring managers could judge based on looks. To be honest, I prefer to assume good faith and believe that employers are looking for talent and, especially for developer roles, no one cares about looks. A smile brings people together and doesn’t cause any harm IMHO. Obviously, it’s also totally acceptable not to add a photo as well and no job application should require one.


Do you have a GitHub account already? GitLab, BitBucket, etc. are decent repo storages but they fail to be social networks. Maybe it’s community sizes (cumulative effect), maybe it’s a better design and usability (GitLab and BitBucket render 150+ chars per line in .md – omg), maybe it’s something else. Whatever it is, I can tell you 100% that many recruiters scan GitHub on daily basis, and few of them are even aware of its competitors. You may prefer one’s or another’s plans for a commercial subscription, but be sure to setup your GitHub account properly anyway, in case you’re looking for job opportunities.

English may be not your native language, but make sure to have (at least) all your main texts (captions, project descriptions) translated to English. Hopefully, I shouldn’t explain why. Once you’re there, check your grammar.




Start to follow some developers. GitHub will show you their new projects, their stars, and their own (new) followings. Which will keep drawing your attention to more interesting projects and people in the future.

Follow, at least, 20 people. If you aren’t sure where to start, start here:


Followers are harder to get, especially for juniors who don’t have many things to showcase. To get rid of that pesky 0 number, I advice to exchange followings. I’ve created a chat to make it easier:

Leave there a note like:


When people start following you (you get a GitHub notification on Home page), follow them in return. It doesn’t matter who those followers really are (unless they are bots). You’ll be able to unfollow irrelevant people later (and find more interesting to you). As a rule of thum, the less followers has a person you follow – the more chance they’ll follow you back. So don’t try to tempt Sindre Sorhus to follow you – focus on your circle.

Get, at least 10 followers in this way. Please don’t follow ME only for this particular reason – I’m not able to follow you back (my contact list is established at this point).


Now check the profiles of people you follow. Give stars to their projects you find interesting. Big corps like Facebook may publish empty repos and get thousands of stars literally, while so many great individual projects are underrated and undiscovered. Don’t follow the crowd – the less popular is a project you’re starring, the more appreciation you get in return.

Again, as a rule of thumb, it’s much easier to find a way to communicate with authors of smaller projects as they don’t get enough attention. On the other hand, supporters of mainstream projects like TypeScript, React, etc. are very busy and tired answering thousands of newbie questions. Don’t expect them to be nearly as friendly and patient.

People are notified when you star their repos. So, when you do that for a relatively unknown projects, – chances are high those people will check your account and maybe star some of YOUR repos back. Starring Facebook’s, Google’s, Microsoft’s stuff is worthless. And, before your ask, – no, recruiters won’t consider your ★ to Angular as a proof you know it.

A bit later, when you’ll have your own projects you’d like other people to know about – star them! Your followers see your starring actions, including stars for your own project. There’s absolutely nothing shameful in starring your own repos – it’s just a way to notify your subscribers. It’s not like "favoriting your own comment on YouTube" or something. The only way you can abuse it – multiple starring and unstarring the same project (to send multiple notifications). Don’t do that.

Give, at least, 50 stars to different projects. My list, just for reference:


Empty portfolio does not necessary mean you’re lazy and have nothing to show, but it doesn’t say anything good about you either. The simplest way to fill your project list is to make forks. You make forks to send Pull Requests (later) so I propose you to do the following:

  1. Find open source projects you’d like to contribute to.
  2. Fork them. It takes a couple of seconds per fork.

Forks don’t have fork dates so your list won’t look fake. Of course, I expect you to give, at least, 5 minutes of consideration to each repo you fork. Just don’t take it more serious that it should be, – nobody’s spying on you, tracking and judging your every move, except yourself.

Make, at least, 10 forks. Start with a list of projects you starred previously. Go further.


It’s getting harder from this point. Things you do aren’t mechanical anymore, but aren’t "rocket science" either. You have a list of projects. You have to contribute something to them.

Find something you may improve. Your initial help may be as small as a single typo in docs. And it’s probably a good idea to start with such contributions – you don’t risk anything to "go wrong" or to "look stupid".

Prepare and send, at least, 5 PRs. Start with a list of projects you forked previosly. Don’t hesisate to go beyond. Don’t be afraid to communicate if necessary – GitHub has a welcoming community.












(TODO) 10+


(TODO) 1+


(TODO) 1+

Games and puzzles


Flagship project

(TODO) 1

Common errors

  1. Bad or no .gitignore. Extra folders like .idea are very visible and make people question your skills for no reason.
  2. ...
  3. ...
  4. ...

Other formats




(TODO) Technical writing and co-authoring





Tech reviews


Book editing








Recommended Resources:


Your IT profile checklist. Fork this repo and start ticking the boxes...




No releases published


No packages published