Below is an article originally written by Nina Yang, Software Engineer at PowerToFly Partner Yelp, and published on September 9, 2019. Go to Yelp's page on PowerToFly to see their open positions and learn more.
Finding that first job in the tech industry can be a daunting task. You might not get a response to your application, or maybe you'll move forward with the interview, but it doesn't pan out in the end. You might wonder, "How are other people successful at getting offers? What do others do differently? What's the secret to getting through this arduous process?"
The answer is pretty simple: lots of practice. While there's never a guarantee of getting an offer, following these recommendations can increase your chances of successfully going through the interview process and potentially landing your dream job!
Know the Basic Flow
When you start interviewing, expect to follow this basic structure. Below is Yelp's interview process, but many companies have something similar:
- Online coding challenge
- Technical video interview
- Onsite interview
Review CS Fundamentals
Before you begin the interview process, you'll need to have a good grasp of fundamental CS knowledge. If it's been a while, review data structures and algorithms. I highly recommend Introduction to Algorithms as a good resource. If textbooks aren't for you, you can find an abundant amount of public resources online. Keep in mind that when a company decides to not proceed at any stage of the interview process, they will likely have you wait 6 months or more before you can reapply. It's important to be prepared before you apply so you can get the most out of your experience.
For coding exercises, most companies will allow you to choose your programming language. Even if your preferred language is different from the company's primary coding language, use it! This is your opportunity to demonstrate your coding knowledge and show your best work to the interviewer. Pro tip! The interview process is not the time to attempt a new language. Stick to your strengths.
If you don't have a strong preference, consider the trade-offs of different programming languages. For example, one of the biggest constraints for any interview is time, so using a scripted language like Python over a compiled language like Java could be an advantage. Statically typed languages like Java and C++ are considered very verbose, which can take some time to transfer from your head onto a screen or whiteboard. In addition to being less verbose, scripting languages like Python have more flexibility with data structures such as slice notation.
Now that you have the fundamentals down, it's time to practice! Out of all the options available online, many engineers favor LeetCode. Leetcode categorizes problems by difficulty, which is helpful when you're preparing for an interview. The first technical interview typically covers easy to medium level questions, and onsite interviews medium to hard, so it's important to practice all levels. From personal experience and online suggestions, you should do 100-200 Leetcode questions to be prepared.
Practicing coding will help you at every stage in the interview process. However, you'll want to make sure you also prepare for the online coding challenge, which is typically the first step. Take advantage of any practice tests made available to you on the website that the company uses (for Yelp, it's currently HackerRank). Practice will allow you to familiarize yourself with the UI and the environment, so those won't be barriers when taking the timed version. When you're ready to take the test, be sure you're are in a quiet place without interruptions and that you have a reliable internet connection. You don't want technical difficulties affecting your performance.
Prepare for the First Interview
Once you're done with independent study, it's time to mimic a real life interview! There are many online resources, such as Pramp, to help you get comfortable with interview situations. Doing mock interviews will let you practice coding while explaining your thought process. It's important to know that during an interview, you are evaluated on your technical thought process, and not just your code. This is often what distinguishes an outstanding candidate from an average candidate. There is no substitute for practicing saying your thoughts out loud— you don't want your actual interview to be the first time you try.
During your first interview, there are at least three times when you should speak up:
- At the beginning, always reiterate the problem back to the interviewer to make sure your understanding is aligned. This is your chance to ask follow-up and/or clarifying questions. It is important that you ask clarifying questions instead of making assumptions, as some interviewers will purposely omit criteria to test that candidate will ask the proper questions.
- When it comes time for a solution, it's best to offer two or three options and discuss the pros/cons of each with your interviewer. Once you've reached a consensus, be sure to either explain the components you plan to code, or make comments, before moving on to actually writing code.
- Once you're done writing code, walk through each line to look for errors. If everything looks good, you can verbally unit test your code. Depending on the difficulty of the problem, your interviewers may ask follow up questions or provide additional parts to the problem.
Remember that in an interview, timing matters! Don't assume that the first question that the interviewer asks will be the only question and be sure to keep a steady pace throughout the interview.
I hope all of this was helpful as you embark on the interview process! See below for key takeaways and additional resources.
- Whether you have old class notes, pick up a book to review, or study online, know your fundamentals before jumping into the process.
- Use your preferred coding language in practice and in interviews.
- Practice as many coding challenges as you can, ranging in level of difficulty. It helps to browse the website of the company's online coding challenge to get familiar with the set up.
- Practice sharing your technical thought process out loud.
- Reiterate the problem and state assumptions.
- Tell the interviewer why you're choosing the solution that you chose.
- At the end, walk through the code for errors and explain what you see.
- Always keep an eye on time and keep the conversation moving.
Become an Engineer at Yelp
We work on a lot of cool projects at Yelp, if you're interested apply!
Join us April 16th from 6pm to 8:30pm at Work-Bench in NYC
If you are a New York-based tech professional who is interested in attending this event, please email email@example.com to be considered for an invite.
Join PowerToFly and women tech leaders from Bloomberg, Peloton, and TodayTix for an evening of illuminating tech talks and networking.
This invite-only evening will include tech talks and product demos from women tech leaders at each of our featured companies followed by audience Q&A. Whether you are looking for new job opportunities or just want to network with your peers over complimentary food and drinks, we hope you can join us.
The event will be held on April 16th from 6pm to 8:30pm at Work-Bench, located at 110 Fifth Avenue, 5th Floor.
According to Margaret, "people would be surprised about how much cutting edge technology goes into making the in-air experience...the same as that in one's own living room".
Are you interested in those kinds of innovative tech jobs at Thales?
If yes, then click here to see all available opportunities at Thales and don't forget to press 'Follow' to receive custom job matches, event invitations and more!
Uber Forges Partnerships with SF Organizations to Help Expand Access to High Quality Job Opportunities
Below is an article originally written by Alex Randolph at PowerToFly Partner Uber, and published on January 23, 2019. Go to Uber's page on PowerToFly to see their open positions and learn more.
Uber is committed to improving access to high quality jobs for residents in our home town of San Francisco. To help make this a reality, we've partnered with organizations across the city over the last couple of years to help train the next generation of technology leaders; and today, we're excited to announce that we're committing more than $300,000 in 2019 to three of these groups. Beyond the financial commitment, we're donating office space for these organizations to use in meetups and training sessions; and our employees are volunteering their time to train students on a range of skills – from coding to interviewing and more.
As part of the commitment, we're donating $100,000 each to DevMission, Code Tenderloin and Opportunities for All. The donations build on long-standing relationships we've established with each of these groups that date back to their founding days.
Launched in 2017, DevMission helps prepare young adults ages 16-24 for careers in technology by creating apprenticeship programs with local tech companies. Since it launched, we've worked with them to host weekly "Open Labs", where our engineers mentor young adults for two hours every Tuesday, answering questions about coding and software development. The labs started at Uber's offices before moving to DevMission's headquarters in Summer 2017. We've also hosted three corporate visits from DevMission students, where our engineers and lawyers have answered questions about working in tech and provided guidance on how to break into the field. We're excited that they'll be able to use the grant to add an additional 30 students to the program, as well as an additional 10 new internships, and purchase equipment for its students to use.
Code Tenderloin offers training and guidance to help its enrollees remove financial, legal, and logistical barriers that stand in the way of long-term job opportunities. We started working with Code Tenderloin in Summer 2018 by providing space and resources for Code Ramp Bootcamp, which is a 6-week program for students to learn basic front-end web development. The group meets five days a week for three hours a night at Uber's headquarters. With this grant, Code Tenderloin will add more than 50 students to its Job Readiness Class and Coding program, which teaches students how to build a resume and prepares them to interview.
Opportunities for All is a program led by Mayor London Breed to fight systemic inequality by connecting high school students to paid internships, employment, training, and educational opportunities across multiple industries and sectors. As part of the initiative, we're providing city youth with real job opportunities and a platform for enhancing job preparedness skills through workforce training programs and mentorship in the tech industry. The grants will be used to bring additional interns into the program – which costs between $1,800 – 2,400 per youth – and for operating costs.
These partnerships build on work that we've done to improve access to food and healthcare for residents in need across the Bay Area. For example, we've given ride credits to groups like Family House and San Francisco AIDS Foundation to help ease the burden of transit on their members. Family House, a recipient of Uber's 2017 Community Credits program, used the credits to book rides for the 80 families that stay with them, many of whom can't take public transportation to go between appointments; while San Francisco AIDS Foundation enrolled in Uber Health and continue to use their credits as a way to get their clients to and from medical and housing appointments.