Status: High school graduate (no college degree)
Experience: 2 summer internships, 2 years full-time experience
Position: Software Engineer at AT&T
Location: Los Angeles, CA
Date: July 2019
The interview process was streamlined and professional. I met with a woman outside the AT&T corporate office who led me upstairs to the 10th floor where the interview was held.
I entered a room with 3 software engineers sitting at the table. After the brief introduction and small talk, we moved onto technical questions. Here are some of the things I was asked:
It's Leetcode, so of course I'm going to talk about the whiteboard part of the interview! :)
I was asked a variation of Best Time to Buy and Sell Stock (#121), except instead of stocks it was buckets of corn.
Link: https://leetcode.com/problems/best-time-to-buy-and-sell-stock
Problem: Say you have an array for which the ith element is the price of a given stock on day i. If you were only permitted to complete at most one transaction (i.e., buy one and sell one share of the stock), design an algorithm to find the maximum profit. Note that you cannot sell a stock before you buy one.
Example:
Input: [7,1,5,3,6,4]
Output: 5
Explanation:
Buy on day 2 (price = 1) and sell on day 5 (price = 6), profit = 6-1 = 5.
Not 7-1 = 6, as selling price needs to be larger than buying price.
I initially found an O(n^2) solution and wrote it out on the whiteboard while discussing my thought process and talking with the other engineers. Eventually I was able to widdle this down to O(n), which the engineers seemed satisfied enough with.
I would describe the overall interview experience with AT&T as professional and efficient. I had one behavioral & technical screening phone call, followed by an on-site, followed by an offer. The office seems like a great place to work and the software team I met seemed very sharp and friendly.
Looking forward to the future! Keep grinding, everyone!