Career Guide

#Table of Contents

#Which Company?

I'm interested in companies with products I used, so I reached out:

  • Github
  • Gitlab
  • Reddit
  • Bloombuilt (for their DayOne Journaling app)

As you will be someone who is going through the job application process, you could focus on companies.

#Work Arrangements

  • Remote Freelancer
  • Remote Contractor
  • Contractor (Full Time)
  • Full Time Employee

#Job Boards

#General

#Remote Work

#Evaluating Companies

How much risk are you willing to take?

#Job Application Sites

These site swill help you get a job.

Be careful about enabling each of these sites at once. It can get intense, I got 70+ recruiters reaching out to me.

#Online Practice

#Offline Practice

Go to meetups

#Books/PDFs

#Live Programming Environment

When using these, ask wether the interviewer if they are comfortable with pseudo code, or is correct syntax/semantics important.

#Questions to ask them

#Questions to ask Recruiters

  • What skills are you looking for?
  • What roles are you looking to fill?

Ask questions that would make it easier for you to figure out how to craft your message to land that job.

#Questions to ask Interviewers

All of the above

#Questions to ask Founders

All of the above

SWOT:

  • What are your company's strengths?
  • What are your company's weaknesses?
  • What are your company's opportunities?
  • What are your company's threats?

#Career Advice

#General Job Application Process

The goal should ideally be, to do the least amount of work to get into the company you want to get in to.

If you don't know what company you want to join, this will increase the number of companies you are going to talk to. This can help you focus on what you want.

The general application process is like so:

  1. General Call with Recruiter
  2. Technical Phone Screen or Homework Assignment
  3. Onsite
  4. Offer extended

Knowing this process, the goal should be how many offers do we want to evaluate and we should work backwards, because this a time consuming process.

  1. Offer extended
  2. Onsite
  3. Technical Phone Screen or Homework Assignment
  4. General Call with Recruiter

#Example

If we want 3 offers, how many onsites do we need? Minimum: 3 (Best case scenario) Probably: 6

If we want 6 onsites, how many technical phone screens do we need? Minimum: 6 (Best case scenario) Probably: 12

If we want 12 technical phone screens, how many recruiters do we need? Minimum: 12 (Best case scenario) Probably: 15

We look at the process, work in reverse, and figure out how many offers we want.

Talking to 15 recruiters, is exhausting.

#Spreadsheets

Use a spreadsheet to manage all the companies you are talking to, and follow up steps.

Reserve a column for:

  • Glassdoor Rating
  • Glassdoor Salary Range
  • Paysa Salary Range

#Scheduling

If we have to take at least 6 onsites, how many can we do a week? Probably: 2

If we an take 2 onsites. This means that the process will take at least 3 weeks to a month.

#Setting up meetings

Becareful about scheduling meetings/onsites back to back because they may stretch longer than the given time. They can also be very exhausting.

I use vyte.in to coordinate with recruiters about time availability.

#General Call with Recruiter

  • Lasts from 15mins to 30mins. Some can last longer.

#Technical Phone Screen or Homework Assignment

  • The phone screen lasts up to an hour.
  • Homework assignments lasts up to two hours.

#Onsites

  • These last the whole day. From 4 to 6 hours.
  • Arrive early.
  • Mentally taxing.
  • Bring your own whiteboard markers and erasers. Theirs may suck.

Be prepared for:

  • Systems Designs

  • Product Design Questions

  • Be careful about scheduling onsites back to back. Due to how taxing it is this can be really tiring.

#Pair Programming

  • Work with the interviewer
  • Check your data structures

#Whiteboarding

  • Not the best.
  • Highly subjective.
  • How precise a code do you want?
  • Not the best environment available.

Whiteboard sucks:

#Negotiation

#Deciding

  • What are you prioritizing for?
  • Choose a team for growth
  • How will this help your spiritual growth?
  • Do you have any devops?
  • Do you have any SRE?
  • Vacation policy?
  • Sick leave policly?
  • Maternity/Paternity leave?
  • How does the company dogfood their own product?

#Integration

  • How integrated is the company?

#Meetings

  • What are meeting policies like?
  • What are the laptop policies during meetings?

#Exit Interviews

  • How do you handle exit interviews?

#Colleagues

  • What can you learn from your new colleagues?

#Socializing/Integration

  • Do you do lunch meetings?
  • Do you have lunch at your desk?
  • Does the team go for lunch together?
  • How do you integrate new employees?

#Tooling

  • What tooling do you have?
  • What tools do you have for onboarding?
  • What tools do you have for feedback?
  • What tools do you have to manage momentum?
  • What tools do you have for measurements and metrics?
  • What tools do you have for effectiveness?
  • How do you schedule time for building tooling?
  • Is tooling an after sight?
  • How much time do you spend on your tooling?

#Onboarding

  • How long will onboarding take?
  • How many reponsitories do you they have?
  • How many lines of code?
  • What programming language do they use?
  • How do they maintain the language?
  • What tools do they have to maintain the language?
  • What tooling has the team built?
  • What is your plan of attack?
  • What are your companies best practices?
  • How fast can you learn the context?
  • How do you easy onboarding?
  • How fast do you teach the require processes?

#Collaboration/Communication

  • Ask how do people collaborate?
  • How well is collaboration done across teams?
  • How big is the team? Larger teams have much larger communication overhead.

#Momentum

  • Where does the company have momentum?
  • What momentum does the company have?

#Feedback

  • How do I best deliver feedback?
  • What platforms do you have for feedback?
  • Do you have an employee engagement survey? CultureAmp
  • How is feedback managed?

#Metrics

  • What needles are you trying to move?
  • How do you measure your metrics?

#Excitement

  • What is the team excited about?

#Processes

  • What processes do you have to deploy code in to production

#Miscellaneous

  • What bottlenecks are you facing?
  • How do you release those bottlenecks?
  • How do you balance delivering business value and managing technical debt?
  • How do you reduce the technical debt?
  • Do you have monitoring/alerts?
  • How is knowlede shared? PResentations/Demos/Repositories
  • How "open" is the company?
  • How is feedback managed?
  • How well do the executives steer the company?

#After Joining / Accepting / Acceptance

#Market Rates

#Rejection

  • Always ask for feedback.
  • If you really like the company, ask how you could work together.

#Coding

Example Question:

  • Make assumptions

  • If they tell you are taking input from STDIN, start by just taking input from a string.

  • Write example cases as comments, or part of the code execution. This gives discussion points.

  • Explain assumptions about validity of input

  • Create an assert function, which takes in the expected result given an input. See PHP or JS

input = "a b c d e";

main(input) {
  ...
}

assert(expected, input) {
  console.log(input);
  actual = main(input);
  result = expected === actual;
  console.log(result);
  if (!result) {
    console.log(actual);
    console.log(expected);
  }
}

// Case 1
assert(expected, input);

// Case 2
assert(expected2, input2);

// Case 3
assert(expected3, input3);

#Soft Skills

Themes Job 1 Job 2
Leadership & Influence story
Mistakes & Failures story
Challenges story
Teamwork story story
Successess story

From http://www.crackingthetechcareer.com/uploads/6/5/2/8/6528028/handout-_cracking_the_soft_skills.png

  • What stories do you have on leadership and influence?
  • What stories do you have about mistakes and failures?
  • What stories do you have on challenges?
  • What stories do you have on teamwork?
  • What stories do you have on successes?

#Keywords:

  • Constraints
  • Feasibility
  • Limitations
  • Technical Challenges
  • Organizational Challenges
  • Fail Overs
  • Distribute

#Product Management

If you have worked with multiple product/project managers, and each have had a different style of work, describe each way that you've worked.

For example:

  • Quarterly goals assigned by upper management, which your program manager managed
  • Weekly Sprints
  • Cowboy Style (daily reprioritizing of tasks)

#Others

  • Describe a time when you took technical feedback from a peer, and how you handled it.

#FAQ

#It is ok to decline a recruiter

It is ok to decline a recruiter. You can't take all opportunities, and are going to have to decide which one to take.

There will always be opportunities, as long as you keep working on yourself.

  • Thank them for their time.
  • Leave it open, that this opportunity doesn't interest you right now, and that you might reach out ot them in the future.

#Interviews suck

  • The system is a black box. You generally can't give feedback to your recruiter. It's great if a recruiter allows you to.

  • You are the mercy of your interviewer. If your interviewer sucks. So will your interview.

  • Some interviewers will be purposely vague, hoping you would ask to clarify. This is a pain in the ass.

  • CS questions suck. They don't directly represent what you may be doing on a day to day basis.

  • Did you get hired for a niche? If you aren't familiar with your niche, this could ruin your experience. (Front End Engineer vs Back End Engineer)

  • https://www.nytimes.com/2017/04/08/opinion/sunday/the-utter-uselessness-of-job-interviews.html

#Random / Unsorted

  • What are the philosophies of interviewing?

  • What is the goal of the interview process?

  • Is the goal to make the candidate feel like a failure?

  • Is the goal to make the candidate feel like a success?

  • Is the goal to make the candidate feel like a success?

  • Will this interviewee be impactful?

  • Are you hiring for their strengths?

  • Are you not hiring for their weaknesses?

  • For more senior/experienced people, they will have a multitude of experiences.

  • What are the interviewee's strengths, and where can they be applied? where can the interviewee belong?

  • What other critierias do you interview for? Tardiness? Earliness?

  • What tools do they use?

  • Will they bring up the average? What average will they drop?

  • Take your power trip else where

  • Do you know how to interview senior people?

  • How do you think your interview process/grading is broken?

  • How do you set up your interviewees up for success?

  • Can't see the forest for the trees.

    • What can 100 lines of code make up for 1,000,000 lines of code?
  • http://blog.triplebyte.com/how-to-pass-a-programming-interview

  • Not living in the area?

    • Ask if you can use someones address