Recruiter Spotlight with Anya Voronova
Originally from the Ukraine, Anya Voronova was looking to pick up a new language when she moved to Berlin. Instead, she ended up taking on a much bigger challenge: recruiting for SoundCloud, a company that helps millions of people connect with artists using dozens of languages across the Internet.
Anya has always been drawn to the music world, which was among the reasons she found Berlin so appealing. Years prior to working for SoundCloud, Anya used the platform to find new musicians and DJs. As an employee and tech recruiter, she's discovered that SoundCloud is more than just a great company that discovers musical talent. The cultural experiences and the high-level talent that she's surrounded by on a daily basis at SoundCloud ensure that she never gets bored.
We recently sat down with Anya to learn more about her experiences with SoundCloud, her insights into how to stand out in the application process, and what SoundCloud is doing to promote a more diverse and inclusive workplace. Read on to learn more!
Prep For Your Next Remote Interview With These Tips From DigitalOcean Hiring Manager, Archana Kamath
Looking for your next role? In the age of remote interviewing, DigitalOcean has a leg up — they've been doing just that for years!
Archana Kamath, Senior Engineering Manager at DigitalOcean, was kind enough to share some general tips for remote interviews, as well as a behind-the-scenes look at the interview process at DigitalOcean!
Interested in remote roles at DigitalOcean? Click here to learn more.
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!
Below is an article originally written by Kahne Raja, Lead Engineer at PowerToFly Partner Stash, and published on March 26, 2018. Go to Stash's page on PowerToFly to see their open positions and learn more.
- Cracking the Coding Interview by Gayle Laakmann McDowell
- Clean Code: A Handbook of Agile Software Craftsmanship by Uncle Bob
- Extreme Programming Explained by Kent Beck
- Stash Invest Careers. Join us!
If you love clean code and you want to help disrupt the fintech industry, then look no further!
Recently, we here at Stash have upped our recruitment game. Over the past few months, I've seen the company double with an outstanding crew of new engineers who truly care about what they do and how they do it. We are dealing with scale issues on all fronts and we need your help!
The mission at Stash is clear. Build financial systems that work for everyone — not just the wealthy.
It's a big challenge and we have a long way to go. A big part of that is growing the team with the right people.
As an engineer at Stash myself, I regularly host technical interviews. Here are some of my notes on what it takes to pass our first stage code pairing challenge.
Back to basics.
Interview preparation takes weeks… even months. Do it in batches and do it well. Enjoy the nostalgia. Enjoy the beauty of math.
Your regular tech work life patterns and practices are important but quite often they are not so helpful when doing interviews. Here are some ideas to help you prepare for the engineering interview at Stash:
- Read Cracking the Coding Interview by Gayle Laakmann McDowell.
- Read Extreme Programming Explained by Kent Beck.
- Watch as much Uncle Bob talking about SOLID principles as possible.
- Ask a friend to test you at a whiteboard over lunch.
- Choose a language and get comfortable with it (without an IDE).
Our first line of code.
When I sit down with you to pair online @coderpad, this is what I am looking for:
- A focus on data structures and algorithms.
- At least one passing unit test.
- A simplification of complex ideas.
I want you to start by slicing off a single conditional in two to three lines of code. Something we can compile, run, test, and discuss.
Example challenge: Leap Year.
Problem statement: write a function that returns true or false depending on whether its input integer is a leap year or not.
If we can get to this place within a few minutes, that is a great start! We should then be able to complete a number of variations within 10 to 20 lines of code.
Try to avoid spending too much time on the following:
- Web app / CRUD design patterns like Controllers and Repositories.
- Database structures and persistence strategies.
- Language comparisons and platform specific features.
After each interview, I assess candidates on the following metrics. Ability to think on your feet, communication, critical thinking, creative problem-solving, debugging, speed, management of competing priorities, organizational skills, and test driven.
Following this initial online code pairing session, you'll be invited in for a half day session with a number of colleagues.
At Stash, extreme programming and solid principles are at the heart of what we do. We move fast and embrace change.
Please don't hesitate to hit me up on twitter — @kahneraja. I'm always happy to help a candidate get ready for an awesome new career at Stash.
Below is an article originally written by Sarah Gray, Engineering Manager and Software Engineer, at PowerToFly Partner PromptWorks, and published on March 10, 2017. Go to PromptWorks' page on PowerToFly to see their open positions and learn more.
As the spring semester winds down, I've been getting meeting requests from soon-to-be grads to discuss how to get that all-important first programming job. I find myself giving the same advice over and over … which means it's probably time for a blog post. So, these are my inside tips on how to have an advantage when trying to land your first full-time gig.
Background: Why is it so Hard to Hire a Junior Programmer?
Most employers will want to spend significant time on-boarding and mentoring junior devs before considering them independent contributors. Though junior developers are needed and employers want to provide a strong foundation, that ramp up time is expensive.
It's easier to invest in a junior candidate if they demonstrate that the on-boarding period is money well spent. Dedicated, curious juniors are priceless. As bootcamps continue to saturate the market for junior developers, junior candidates of all stripes are wise to differentiate themselves. Here are some tips on how to have an edge.
N.B.: You don't have to follow all of these suggestions. Acting on a smattering of these tips will help you stand out during the job search.
Be a Known Quantity
It's easier to know that a junior is a good investment if you see them participating in the local dev community. That participation hints at a deep desire to learn and grow. And, as a job seeker, I find personal connections to be the most effective way to look and apply for gigs.
- Go to Meetups that you are genuinely interested in. Ask questions, meet people.
- Participate in your local dev slack team. Ask questions, meet people :)
- Develop some sort of public, professional presence. Think twitter, stackoverflow, or linkedIn.
- Blog about what you are reading, your projects, and your experiences. Long format communication really helps the reader understand your thought process. Show off your problem-solving mindset and demonstrate grit.
- Consider getting a mentor in your local dev community. Mentors can be a welcome touchstone as you suss out development opportunities and begin your career.
Develop a Resources List
Many employers will want to know how you stay on top of industry developments or may ask you about current events in the tech world during the interview. It's good to be informed. And, in the long run, it's advantageous to be aware of changes within the fast-paced software industry.
Take some time on a regular basis to brush up on events in the field. Here are some of my favorite resources:
- Hacker News
- Joel on Software
- Software Lead Weekly
- The 'weekly' digest from your language of choice
- Follow the blogs and twitter feeds of developers you admire
Have a Low Signal to Noise Ratio in Your Resume
Sigh. This is the crummy part where I tell you to edit away things you toiled over and care about. The point of your resume is to make a strong case for yourself, knowing that a reviewer will spend 30 - 60 seconds reading your CV. Your related skills and experience should shine, but that means being a merciless editor and focusing your resume content.
- The usual resume advice applies. Typos, poor organization, and space filler will dilute the impact of relevant information.
- Make it easy to scan your resume for technical skills and how you met challenges. Use action words like "optimized", "researched", and "implemented." Back action words up with quantitative evidence if you have it, eg., "optimized our data compression algorithm, increasing our Weissman score from 2.8 to 5.2."
- If you have deployed code and you can show it off, make it easy for your reader to access it. Github and Heroku links are great. Make sure that your code is well groomed and has a thoughtful README.
- Note all of the professional development stuff you are doing like attending Meetups, blogging, etc.
- Briefly cite unrelated prior experience when it demonstrates consistent employment or increasing responsibility.
- Only keep fluff sections, like hobbies and volunteer experience, if they relate professionally. For example, note your passion for Ultimate Frisbee if you are applying at Wham-O, nix it for all other jobs.
- Keep the objective section if there is a compelling reason for it, like if it's the only way to marry some other area of experience with your development experience – and that combination directly relates to your job search.
Further Resume Reading:
Oh hey, you made it to the end of the article! Well, since you are still here, let me tell you about our job openings. We love Philadelphia and are committed to making it a great place to be a developer – we hope you'll consider working with us.