All the image-crafting rules apply, but CS has a few specific tweaks.
Marketing applies to any career, but your personal brand is vitally critical in the tech industry because the work arrangements are much more volatile than most industries. For that reason, your job security comes in how well you can maintain your public reputation and prove your aptitude, not strictly from your reputation with your boss.
When it comes to discrimination, the tech industry has a few distinct differences than many other industries:
- Age is a much more pronounced bigotry than most other places in the world. The obsession with new trends, and the fact that older people are more resistant to trendiness, fosters a cultural bias which slants toward younger people. It helps that younger people are also generally cheaper and don’t tend to know their rights.
- Many jobs are project/contract-based, and the constant turnover creates a widely shifting culture relative to companies with longer-term roles.
- Depending on the political angle of the company, you’ll likely face discrimination if you are heterosexual, male, and/or white. You can usually sidestep this by labeling yourself trans/nonbinary/asexual or intentionally mixing up your pronouns.
As a bare minimum, make sure you have the following:
- Resumé and/or CV
- Programming projects and contributions shown in a public code repository
- Portfolio website as a central hub for all your projects
- LinkedIn account that points to your work
For front-end work, you may have a more nuanced public image, but maintaining a public image really doesn’t take much work or creativity. All you need is to publish what you’re already building or have built, and it’s usually an impressive story if you practice expressing it correctly. 1-2 blog posts or a public code repository can go a long way.
Hiring managers want to see you actually did something, not that you completed lots of tutorials, so focus more on making interesting projects than on official certifications. Often, you can get more mileage by adding a creative flair to an existing project you’ve already completed (e.g., a boring calculator you made now says exclamations like “cool!” or “not today!” about the results) over slogging through a course on React Native.
For all the below, make sure to use AI whenever you can. Natural language models are sophisticated enough that they can answer inspire answers to interview questions or craft a resumé. It’s not perfect, but enough to get you started with what’s industry-standard.
When passing the resumé through an ATS, obsess about keyword optimization, and use the precisely correct choice of words:
- Most HR software isn’t smart enough to know the difference between “MS Office”, “Office365”, and “Microsoft Excel”, so use formal terms as much as possible.
- Many managers are oblivious to tech synonyms and related concepts, so add all applicable words (e.g.,”HTML”, “CSS”, and “UX” instead of simply “web design”).
- Also, to avoid the HR system weeding out your resumé, use the exact words as you see on the job posting. If it says “nodejs”, don’t put “node.js”.
Each role requires a lot of specific skills, so always tweak your resumé’s skills for every role you apply to. To make it easier, add in all the possible skills and terms you’d use, then remove them to fit the image you’re implying for the role.
Make sure the skills are listed as part of the story, and not simply in a list. This is a generally good idea, but desperately critical to emphasize because tech people tend to forget that humans don’t read data like computers do.
As much as you can build out a resumé format that’s original and stylish, the hiring portal’s automation will make it come out in a weird format for the hiring manager, which adds another reason for them to throw it out. Use a boring format that won’t parse incorrectly and you won’t have to manage multiple styles of resumé.
CVs can be tiresome for recruiters to sift through, so dialing them back to 1 page can help you stand out.
Public Code Repo
Contribute to open-source projects regularly and build projects with your own style added into it. You can use GitHub for plenty of places to contribute (as well as a type of ad-hoc central hub), but you can also use other code repos that may make your code look more interesting (e.g., CodePen). Bonus points if you can host your code directly on your website via git.
If you use GitHub, put in 1-3 pull requests a day to imply you’re severely passionate about coding.
Keep a central hub for your projects. In the tech industry, your portfolio shows your competence way more than your resumé will, and also serves to help you build those skills.
However, assuming you’re not applying for a front-end or web dev job, most hiring managers will only read your resumé and not check your portfolio site. Across the industry, your ability to clearly and simply communicate what you’ve done within your portfolio is far more important than the public presentation of it.
The easiest way to make a central hub is to use a profile page service (e.g, about.me), but it’s not difficult to learn enough web development skills to make your own website (e.g., WordPress on distributed hosting).
If you want to set up a portfolio site for yourself, make sure it has the following:
- Responsive web design, accessibility-friendly (i.e., easy to use), and your own domain.
- An “about me” section that gives your personal story or a few personal stories that capture who you are.
- Some way to contact you (at least email or a web form).
- Projects (linked or embedded) that show significant work you’ve done.
You have many projects to choose from:
- Independent side projects you’ve been tinkering with.
- Technical work you volunteered for (e.g., making a website for a non-profit or club)
- Projects from a class that you’re particularly proud of
- Work from your day job where you incorporated programming
- A research project on your own or for school
- Past internship projects
It helps tremendously to add something fun to it. It doesn’t have to be elaborate, but shows you’re an interesting-enough person that you won’t irritate people.
Avoid a few design decisions:
- Duplicating another portfolio blow-for-blow, since it’s a complete lack of creativity and may be a trademark violation.
- Step-by-step tutorials, since they’re severely cliché.
- Non-development-related projects, since they take away from what a potential employer may want to see.
- If you have quite a few non-development projects, group them separately.
- Don’t link the portfolio itself as one of your projects, since they’re already using it.
- Skill progress bars, which are cheesy and imply you don’t understand programming.
Pay very close attention to whether your profile is public or private. It’s often only one little setting, but may not convey the image you want.
Depending on the role, you’ll need some general skills, but pay close attention to the specific tools you’ll need and the expectations for those roles:
- Decide on the job you want, then copy-paste a few dozen job descriptions for that job.
- Count how many times each job requirement/skill comes up, then find the top 3-5 you don’t have.
- Take courses and build things to understand those skills and, at the same time, apply to those jobs.
- Visually-focused software like Adobe XD, Figma, Photoshop, and Sketch.
- On the development side, a lot of CSS and other graphics programming.
- Motion designers use 3D graphics software like Adobe After Effects, 3D Blender, Cinema4D, and Maya.
- For graphic designers, more robust visual tools like Adobe Illustrator, Procreate, Affinity, and Canva.
- User tracking and analysis tools like Pendo or Amplitude.
- Roadmapping software like Product Plan.
- Survey tools like Typeform or SurveyMonkey.
- Feature flagging tools like Split.io.
- Flowchart tools like Visio.
- Design tools, but mixed with a variety of frameworks/libraries to build (mostly) websites.
- Version control via Git, likely through GitHub.
- An IDE that varies on the company, but is typically software like VS Code, Atom, or Sublime (though you can often bring your own if you know how to set it up).
- Uses everything on the Front-End Development side, minus the design tools, plus database programming like SQL or NoSQL server.
- Game developers add game-specific software like GameFroot, Flowlab, Splender, and Construct.
- DevOps ramp up the experience with build tools like Gradle and Apache, package managers like Npm and Mache, and CI/CD tools like Jenkins.
Data Analysis and Data Science
- Coding mostly in Python and R.
- Spreadsheet-heavy work with Microsoft Excel and Google Sheets
- Database tools like MySQL, SQL Server, and Tableau.
- Data visualization software like PowerBI.
- Network security monitors like Splunk or Argus.
- Encryption tools like VeraCrypt and TrueCrypt.
- Vulnerability scanners like Nikto and Burp Suite.
- Markdown editors like StackEdit, Typora, Dillinger, or IA.
- API documentation tools like Bump, Redocly, Postman, and GitBook.
- Publishing tools like Document360 and Adobe Robohelp.
- Editing tools like Grammarly, Copy.Ai, Adobe Acrobat, and Evernote.
- Cloud software like Dropbox or OneDrive.
- Media management tools like Snipaste, Loom, and Camtasia.
Managers use project/program management Agile tools like Trello and Jira.
Growth managers use activity tracking software like Expand, Zapier, GrowthBar, Colibri, and Airtable.
Marketing-type roles will often use email management software, CRM (Customer Relationship Software), social media management tools, and SEO tools.
QA Testers use a variety of debugging and testing tools like TestRigor, Testim, Kobiton, and Kualitee.
As much as you can, sprinkle your target skills into social media and website. They will add to the theme you’re trying to build across your various sites and dramatically expand your “SEO”.
If you use LinkedIn, avoid technical discussions and only speak with vague, high-level ideas. You’ll get more technical mileage on forums like Hacker News, Stack Overflow, or Reddit.
Use your portfolio to make your learning and efforts as public as possible:
- Advertise every time you complete a course.
- Link every code repo or programming social network you’ve used.
- Link every decent programming project you’ve made to your website.
- To interest people, give details and the story behind it.
Also, make sure to trim your content once in a while:
- Take down old posts, especially if your political views have changed.
- Keep the links current and take down inactive projects.
Keep asking advice. You can post your resumé for criticism and review on forums like /r/cscareerquestions.
When you have a good-enough portfolio lined up, you can properly pursue the job hunt.