Skip to content

Instantly share code, notes, and snippets.

@npdarrington
Last active November 10, 2020 14:59
Show Gist options
  • Save npdarrington/e98d93110254c14a38d71a566c86be8f to your computer and use it in GitHub Desktop.
Save npdarrington/e98d93110254c14a38d71a566c86be8f to your computer and use it in GitHub Desktop.
  1. Prepare for Job Shadow: AEIOU
  • Activities: what questions do you have about the activities that a software developer does on a daily basis?

    • When you’ve done your best work here, what about the culture has enabled you to do that?
    • Where have you experienced your largest growth as a developer working with Infinicept?
    • How often do you meet with your manager/team leader for additional training, direction and skills to become a better programmer outside of evaluations?
    • Does Infinicept have any specific initiatives that to improve diversity and inclusion?
    • What would 1:1's be like with your direct manager? What types of topics would we discuss?
    • Can I see your calendar and/or workflow for the week?
  • Environment: what questions do you have about the overall environment and culture of this workplace?

    • What are the top reasons that people have left the company of their own volition?
    • What's the hardest piece of feedback you've received, and what's the hardest feedback you've given?
    • How do you cultivate and foster individual contributor growth on the team?
    • What will separate someone who is good at this job from someone who is really stellar?
    • Think back on a really great experience that you had with the last person who previously held this role. Why was it so great?
  • Interactions: what questions do you have about the team at this company? What do you hope to see in your interactions during the shadow?

    • What will my first 30, 60 and 90 days look like? Do you have an idea of the first problems you want me to help solve?
    • How would your team describe you?
    • Can I see your calendar and/or workflow for the week?
  • Objects: what questions do you have about the code or the product?

    • What is the mission statement of your company that drives the innovation and design of your product at Infinicept?
    • Who is your largest competitor and what threats do they bring to Infinicept?
    • What are the top 3 customers that you have won? The top 3 customers that you have lost?
    • What area of the business does your company feel behind on and why? What area do you feel ahead and why?
    • Talk me through a project that initially went off the rails that you are really proud of.
  • Users: what questions do you have about how the company interacts with their users?

    • I did not have any initial questions in this area.
  1. After the Job Shadow, reflect on the same questions; what are your takeaways from the shadow?
  • Activities: what was engaging to the person/people you shadowed?

Solid, clean code that was well introduced. At certain areas of the code, Andy was explaining why certain things would be approached a certain way and the benefit of approaching it that way. The benefit of an AGILE workflow as opposed to the waterfall workflow and why it has been beneficial to the tech industry. A lot of it was what someone as a software engineer would encounter on a daily basis, how it helped them grow as a software engineer and how to become more than a junior software engineer.

  • Environment: what did you notice about how they talked about the culture and environment of this company?

Andy had a lot of good things to say about the culture and environment of the company. With Infinicept being more of a smaller company, they had a really solid workflow set up that relied on the software engineer themselves to be motivated to go for more, as opposed to only doing what they had to do and collecting a paycheck. The culture and environment at the company was very open and had multiple opportunities each month to bond with others in the company. They only had 8 reviews on glassdoor for the company, but all 8 reviews were 100%. The CEO is pretty much open and available to anyone at the company. While the people above had the final decision and direction for the company, anyone is able to speak with anyone at the company. This keeps everyone engaged, active and invested in the mission statement and direction for the company.

  • Interactions: what did you notice about your interactions with this person/people?

Andy was very open with his interactions. It was a 1 on 1 meeting with him and he didn't have anything planned for it. At first, this seemed a little strange but he left the way that the meeting was driven completely up to me, the questions that I asked and anything he could do to support a more complete answer and/or interaction. This made incredibly beneficial for me as I was able to ask all of my questions with intentions of how I could approach the job market, a new career as a software engineer, and ways that I could make myself more sellable as a software engineer. It was very open, honest and direct which are always the best kinds of conversations and environments for me. While I was not able to see actual interactions between other developers, this was a much better kind of meeting for me.

  • Objects: what did you learn about their approach to code and/or product development?

They have a point system focused development system. This way, they are able to rate how easy and/or how difficult an expect ticket is supposed to be. Before an issue is developed into a ticket, it goes through a series of checks and evaluations to ensure that it is something that will benefit the final product and the users of that product. All of the tickets are done in a user story format, highly detailed about what that ticket should cover and are then distributed to members of the engineering team. This allows them to see how productive a team is, where the strong points and weak points for the team and individual are, where they can be coached and taught to improve.

  • Users: what did you learn about their approach to their users?

Most of the meeting was focused on how to make it better for the user in a more efficient capacity. There were multiple areas of their system where there are multiple steps to complete something and it felt cumbersome. He showed me many examples of how they are revising those areas to make it more easier interactable with the user as opposed to simply adding more features while letting the original foundation suffer.

  • What are your main takeaways from the shadow? How will you use this information to help you with your job search strategy?

This job shadow was really beneficial for me, I took over 12 pages of notes. The main things that I will use in my job search strategy are to refresh my knowledge using some backend technologies as they are highly marketable skills for a front end developer to have, really take my poms and breaks seriously (during and outside of work) to prevent burn out and stay focused/engaged in a mentally taxing industry, be bold enough to take on challenges while remaining humble enough to ask questions and remain a student of tech, and lastly key tips for how to speak with confidence and without ego during the interview process.

  1. Interview Prep:
  • Pick a successful project and write about it with the STAR method (What was the situation/scenario of the project? What was the task/target of the project? What action steps did you take? What were the results?):

Most recently, I have been working on a project that we had called Genrefy. The purpose of the project was to design our own app while meeting a MVP. Our MVP was to take multiple API's related to the musical industry and begin with a list of randomized genres. On clicking a button to learn more about a particular genre, the app will randomize a playlist for the user to help them expand on their expand on their audiophile date. The challenge in this project is that the first API that we got the genres from, was a randomizer that would return around 60,000 different genre results. It was definitely a challenge to learn how we could make this app work while creating a unique user experience. Finding two separate API's that would play nice together while receiving genres that are not always straight forward caused us to focus a lot of how we could structure the randomized genres apart into more readable formats that would consistently return positive results. In the end, we had a blast creating the app, learning how we can filter the data to work the way that we want it to, removing filler words and/or certain instances of data that were randomly generated that could cause the app to break. Our biggest takeaway from this project is how much control we have over what we want our app to do and what we want our app to return. Also, that many things are possible in programming that you never thought were possible. Coming into the project, my initial thought was that we would have at least 5 API's to get all of the data that we would need. In the end, we were able to accomplish the task with 2 API's used in a creative and efficient way.

  • Write about a time you failed and what you learned from that experience:

Initial thoughts immediately gravitate towards a refactoring project that I worked on with a group of 4 people called What's Cookin'. The goal of this project was to refactor a previous programmers code base, while adding in new operations such as fetch to interact with data in an API instead of having it locally. One of the challenges with this project was becoming introduced to many new technologies at the same time. Previously, the application was written in Vanilla JS, our task was to upgrade this project to use Webpack, SASS and Fetch. We also wanted to split each file into a more modulated structure to practice developer empathy when interacting with the code base. The most challenging portion of the project was our group composition. We had many newer programmers that were entirely unfamiliar with this tech stack and were less willing to work and struggle on their with the new tech stack, so most of the time we worked together as an entire group of 4. This slowed our progress, and in the end, we were not able to complete the full MVP within the period of time that the project was scoped. In the end, although we all worked together and tried our best to learn the new tech, the results of how each member of the team learned the tech varied vastly. This project taught me that as a programmer, you have to be bold and willing to jump into a new tech stack and project with confidence in your ability to learn. Watching someone else that could work through a new tech stack more efficiently and not having hands on experience felt more detremental to the overall learning experience.

  • Write about how you’ve approached working with a team using a specific example:

Working with a team is one of my favorite things about programming. When working on a team, my first is to get to know more about the team members. Such things as their personality, their best way of working, any strengths and weaknesses they bring to a project, etc. My initial goal is to learn where I can best support or lead the team in the project with my expertise. When working on a team with Nathaniel in our Rancid Tomatillas project, before starting our project, we took the time at the beginning to break this down instead of jumping right in to ensure that we had a complete timeline of the project, what we could expect from each other, how best we could work together and what our plan would be if we hit any blockers. We started a day later than the other groups while taking this extra step before planning the project, however we completely the project 3 days ahead of schedule because we understood exactly how we could best support each other and how to make conditional decisions towards the overall efficiency of the project. This allowed us to have extra time to refine our code, learn more about our first React project, learn an immense amount from each other and how to really perform well as a team. In the end, this is one of my most successful projects to date and taught me how powerful working in a team can be when they are approached and executed correctly.

  • What other stories will you prepare to share?

Highlighting areas where I learned the most (not based on a success or failure)

  • Do some research into your top companies’ tech stacks; what do you already know? What can you compare to your own learning? What do you need to learn more about?

I have adopted most of my tech stack to the top companies that I want to work out, or skills that are the most high demand in the market. I have the confidence in myself to be able to pick up a technology quick enough and become proficient enough with it to become an asset to the company. Mostly focused on how I can fill the gaps in what a company needs for my leg in, how to impress them with consistency and effort when inside the door, and how to become an asset that the company would consider a loss if anything were to happen and the position would change.

  • Pick out at least 3 resources you will use to prepare for interviews as well as 3 behavioral questions you could practice:

Behavioral questions

  1. Describe your background. How did you get to where you are now? What was your previous career field? What did you like about it? What didn’t you like about it? Why coding?
  2. Tell me about a time you had competing priorities or worked on multiple projects at once. How did you manage to make or miss the deadlines? What did you learn from that experience?
  3. Tell me how you solve a problem.

Resources to study

  1. Top 50 React Interview Questions
  2. Front End Interviewing Handbook
  3. Kick Ass Take Home Coding Challenges
@Tracey-M
Copy link

Very nice job using the STAR method and providing relevant project examples.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment