This is loosely based around MIT's idea of the missing CS Semester: https://missing.csail.mit.edu/ as well as the Stanford Problem Solving for the CS Technical Interview https://web.stanford.edu/class/cs9/ and here you'll find links to things that I've found useful in my job search over the last month or so.
Some of my ideas are based on this (Hacking your Interviews): https://www.youtube.com/watch?v=O6nFJzW-SDg
Some good ideas can also be found here (How to Get a Job at Google - Amazon - Facebook - or Microsoft in 2019): https://www.youtube.com/watch?v=6nODOtyHSBc
Most of the other stuff is lessons I've learned.
Useful to have is an application tracking system, if companies are investing time and resources into an Applicant Tracking System https://en.wikipedia.org/wiki/Applicant_tracking_system
So too should you invest a few minutes into an application tracking system.
Mine is a simple spreadsheet that has the name of the company, a link to the job posting, where the job is located (City, State or REMOTE), and the date applied. From there I go through and check it on a regular basis or when I have a few minutes, and update it with companies that have rejected me, companies that have reached out to me, and companies I haven't heard back from yet.
- Recruiters, outreach, and cover letters
You should know going in that it's not uncommon to get ghosted, get lowballed, have recruiters be shady and try and force you into a position you don't want (I can't count how many times I've been told that it's a backend position only for the next interview to be frontend focused) so know what you want going in and be willing to stick to your guns.
That being said, I'll often try and reach a recruiter on Linkedin and will sometimes connect with a note like this:
Hey <RECRUITER NAME>, I'm currently a software developer at <COMPANY> with 3+ years experience
looking to change roles and <COMPANY NAME> is one of my top companies. I'm interested in a few positions and
would love to hear more about the roles and company culture. Feel free to reach me here or at <EMAIL HERE>
For applications that require a cover letter I'll use something like:
Hello,
I'm writing in response to the recently posted opening.
I can offer <NUMBER OF YEARS> years of experience as a software developer <AT ORG/AS A STUDENT>
<ACCOMPLISHMENT/PROJECT THAT WAS SUCCESSFUL FOR YOU>
<STATEMENT THAT REINFORCES AREAS THAT YOU'RE STRONG IN> which should make
me an ideal candidate for this opening.
I have attached my résumé for to review and look forward to hearing from you.
<YOUR NAME HERE>
You can also structure your cover letter in a bullet point format such as:
Hello,
I'm writing in response to the recently posted opening.
I can offer <NUMBER OF YEARS> years of experience as a software developer
<AT ORG/AS A STUDENT> <ACCOMPLISHMENT/PROJECT THAT WAS SUCCESSFUL FOR YOU>
Additionally there are several qualities that make me an ideal candidate
for this position including:
- Bullet point 1
- Bullet point 2
- Bullet point 3
I have attached my résumé for to review and look forward to hearing from you.
<YOUR NAME HERE>
If you feel like tailoring your cover letter, go for it.
- Salary Negotiating:
Answering, "What are your Salary Expectations": https://www.youtube.com/watch?v=WChxbBSlWnQ
Negotiating Tech Salary: https://www.youtube.com/watch?v=u9BoG1n1948
- Interview loops and (kind of) what to expect:
In general I've found that most interview loops follow the format of:
Intial interview with recruiter going over background, the position, expectations (salary, location, etc...)
Behaviorial/Business interview with another recruiter that's more of the same from the first, possibly some techncial questions here.
Technical interview(s) the more FAANG the company is usually the more interviews it is and the harder the questions. Most companies I've found though are on the Medium to hard end of the spectrum of Leetcode questions.
- Odds and Ends:
- I HAVE to set an alarm and calendar reminder 10 minutes before I'm scheduled to have a recruiting call so that I can have a few minutes to look up the company and so I don't miss the call (yes, I've missed recruiting calls before)
- Interactive Tutorial: https://learngitbranching.js.org/
- FCC Video (1hr): https://www.youtube.com/watch?v=RGOj5yH7evk
- FCC Article: https://www.freecodecamp.org/news/the-beginners-guide-to-git-github/
- FCC Algorithms and Data Structures (5hr) https://www.youtube.com/watch?v=8hly31xKli0
- Big-O Cheat Sheet: https://www.bigocheatsheet.com/
If/when they ask you to describe yourself, have an elevator pitch that is AT MOST 30 seconds, but ideally around 15 seconds that summarizes you, your work, and your ambitions/what you want to do.
-
Other common questions "Tell me about yourself"
"Why do you want this role"
"What do you know about this position/company"
"Why are you leaving your current position"
"How do you see yourself in this role/contributing to the team/organization"
"Tell me about your last job and your role/responsibilities there"
"What is your biggest weakness/strength"
-
STAR Method: https://www.indeed.com/career-advice/interviewing/how-to-use-the-star-interview-response-technique
- Leetcode: https://leetcode.com/
- Hackerrank: https://www.hackerrank.com/
- Pramp: https://www.pramp.com/#/
- (Hard Mode) Cracking the Coding Interview: https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850
- CI/CD in 100 seconds: https://www.youtube.com/watch?v=scEDHsr3APg
- FCC Devops course (2 hr): https://www.youtube.com/watch?v=j5Zsa_eOXeY
- Setting up Github Actions to get Started with CI/CD (12 minutes): https://www.youtube.com/watch?v=mFFXuXjVgkU
- Docker in 100 seconds: https://www.youtube.com/watch?v=Gjnup-PuquQ
- FCC The Docker Handbook 2021 Edition: https://www.freecodecamp.org/news/the-docker-handbook/
- Docker Tutorial For Beginners (3 hr): https://www.youtube.com/watch?v=3c-iBn73dDE
- Kubernetes in 100 seconds: https://www.youtube.com/watch?v=PziYflu8cB8
- Kubernetes Tutorial for Beginners (4hr): https://www.youtube.com/watch?v=X48VuDVv0do
- FCC Docker and Kubernetes Full Course for Beginners (4hr): https://www.youtube.com/watch?v=Wf2eSG3owoA
- FCC Deploying with AWS Tutorial(4hr): https://www.youtube.com/watch?v=U3VSJhaC4kc
- Amazon Docs: https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorials.html
- Design Patterns for Humans: https://roadmap.sh/guides/design-patterns-for-humans
- 5 Design Patterns Every Engineer Should Know(12 min): https://www.youtube.com/watch?v=FLmBqI3IKMA
- Unit Testing for Beginners: https://www.codementor.io/@wbsimms/unit-testing-foundations-programming-beginners-du107q81d
- Python Tutorial: Unit Testing using unittest module: https://www.youtube.com/watch?v=6tNS--WetLI
- Debugging for Beginners: https://docs.microsoft.com/en-us/visualstudio/debugger/debugging-absolute-beginners?view=vs-2019&tabs=csharp
- Tips for Getting Better at Debugging: https://www.geeksforgeeks.org/debugging-tips-to-get-better-at-it/
- FizzBuzz
- Palindrome checker
https://www.geeksforgeeks.org/python-program-check-string-palindrome-not/
- Write a data structure that represents a node in a tree
https://www.tutorialspoint.com/data_structures_algorithms/tree_data_structure.htm
- TwoSum
https://www.tutorialspoint.com/two-sum-in-python
- How do you learn new things
- How do you deal with conflict
- What kind of role do you take on a team that you're on
- What do you do better than anyone else on your team
- What do you know about
- What experience do you have with technologies such as Python, Puppet, Chef, Jenkins, Terraform
- Why are you moving companies