# How to craft a career image in the tech industry All the [image-crafting rules](jobs-3_image.md) apply, but CS has a few specific tweaks. ## Self-marketing [Marketing](marketing.md) applies to *any* career, but your personal brand is vitally critical in the tech industry because the work arrangements are much more volatile than in 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 in most other places in the world. The [obsession with new trends](https://trendless.tech/trends/) and the general reality that older people are more resistant to trendiness foster a cultural bias that slants toward younger people. It helps that younger people are also generally cheaper and don't tend to know [their rights](people-boundaries.md). - Many jobs are project/contract-based, and the constant turnover creates a widely shifting [culture](people-culture.md) relative to companies with longer-term roles. - Depending on the [political angle](politics-leftism.md) of the company, you'll likely face discrimination if you are heterosexual, male, and 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: - Résumé and 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](computers-sofware-webdev.md), you may have a more nuanced public image, but maintaining a public image *really* doesn't take much work or [creativity](mind-creativity.md). All you need is to publish what you're already building or have built, and it's typically an [impressive story](stories.md) if you practice [expressing it correctly](language-writing.md). 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 many tutorials, so focus more on making interesting projects than on official certifications. Often, you can get more mileage by adding a [creative flair](mind-creativity-how.md) 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](computers-ai.md) whenever you can. Natural language models are sophisticated enough that they can inspire answers to interview questions or craft an entire résumé. It's not perfect, but enough to get you started with what's industry-standard. You *will* need to thoroughly review anything auto-generated by [machine learning](computers-ai-ml.md), though. ## Résumé/CV When passing the résumé 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 résumé, use the *exact* lettering as you see on the job posting. If it says "nodejs", don't put "node.js". Each role requires many specific skills, so *always* tweak your résumé'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](jobs-3_image.md), but desperately critical to emphasize because tech people tend to forget that humans (including [managers](mgmt-2_projects-cs.md)) don't read [data](data.md) like computers do. As much as you *can* build out a stylish and original résumé format, the hiring portal's automation will make a weird output for the hiring manager, which is 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 résumé styles. 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](legal-ip-floss.md) regularly and build projects with your style added into them. You can use [GitHub](networks-social.md.md) 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](computers-software-versionctrl.md). If you use GitHub, put in 1-3 pull requests a day to imply you're severely passionate about coding, but don't kill yourself: nobody cares *that* much. ## Portfolio Keep a central hub for your projects. In the tech industry, your portfolio shows your competence *way* more than your résumé will, and also serves to help you *build* those skills. However, assuming you're *not* applying for a front-end or [web dev](computers-sofware-webdev.md) job, most hiring managers will *only* read your résumé 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, but it's not difficult to learn enough [web development skills](computers-sofware-webdev.md) 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](computers-sofware-webdev.md), accessibility-friendly (i.e., [easy to use](engineering-design.md)), and your preferred 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](computers-sofware-webdev.md) 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](fun.md) to it. It doesn't have to be elaborate, but it 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](mind-creativity-how.md) and may be a [trademark violation](legal-ip.md). - 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. ## Skills 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: 1. Decide on the job you want, then copy-paste a few dozen job descriptions for that job. 2. Count how many times each job requirement/skill comes up, then find the top 3-5 you don't have. 3. Take courses and build things to understand those skills and, at the same time, apply to those jobs. [UI/UX](engineering-design.md) - Visually focused software like Adobe XD, Figma, Photoshop, and Sketch. - On the development side, a *lot* of CSS and other [graphics programming](engineering-graphics.md). - 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. Product Management - 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. Front-End Development - Design tools, but mixed with various [frameworks and libraries](computers-programming.md) to build (mostly) [websites](computers-sofware-webdev.md). - Coding mostly in HTML, CSS, and JavaScript, with something like Chrome Dev Tools for [debugging](computers-software-redesign.md). - [Version control](computers-software-versionctrl.md) via Git, likely through GitHub. - An [IDE](computers-software-ide.md) 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). Back-End Development - 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. Cybersecurity - Network [security](computers-cysec.md) monitors like Splunk or Argus. - [Encryption](encryption.md) tools like VeraCrypt and TrueCrypt. - [Vulnerability](hacking.md) scanners like Nikto and Burp Suite. Technical Writing - 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](computers-distsys-cloud.md) 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 various [debugging and testing](computers-software-redesign.md) tools like TestRigor, Testim, Kobiton, and Kualitee. ## Updates 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, provide details and the story behind it. Trim your content once in a while: - Take down old posts, especially if your [political views](politics-conservativeliberal.md) have changed. - Keep the links current and take down inactive projects. Keep asking for advice, which includes posting your résumé for criticism and review on web forums.