Software Engineer at Facebook
IoS Developer at Apple
Software Engineer at Adobe
Senior Software Engineer At Google
Technical Staff at Microsoft
This is Edward Kandrot’s resume. Most people aspire to work at one top company in their careers. Kandrot has worked at 5 of them.
After starting out his career as a computer programmer back in the 1990’s, and inventing technology that was way ahead of its time, Edward went on to land a coveted job at Google, followed soon after with gigs at Apple, Adobe, Microsoft and finally Facebook, spanning 30 odd years.
Nearing 50 now, Edward seems to have settled on to working on his own software startup in San Jose now, but he has some brilliant career insights and advice to share with the rest of us, thanks to his 30 years of working in the best tech companies of our generation.
We tracked him down, and asked him about his career, about his illustrious employers and his career trajectory. Here’s an excerpt from his interview with OfficeChai.
On getting the job
“Knowing someone within the company is key.”
Knowing someone within the company is key. I have only ever gotten one job where I didn’t know someone, Facebook. And that required them finding someone internally to be my advocate. Practice interviewing as much as possible – when I was looking, I scheduled as many interviews per week with as many companies as I could. I spent Wed, Thurs, and Fri at Apple interviewing with different teams, 7+ hours a day. Most interviewers ask the same questions, so the more one interviews, the better one does, as well as the more comfortable one is in the format (ie standing at a whiteboard, someone that will almost never happen once one is hired). Usually trick questions with the interviewer having one answer in mind, because they have asked that same question to a hundred candidates before you. I’ve never been asked an engineering question, even though that is mostly what you will be doing.
What I try to get out of the interview is what the company is like, what the team is like, and what the people are like. What kind of engineering practices do they have? Source control? State of the source code base? Project shipping criteria? Which languages do they code in or allow? Hours people normally work, do they eat lunch as a team, do the people seem friendly – ie could you see yourself spending 8-ish hours a day with them, every day.
On compensation and perks
“The problem is that the campus was so large that it was hard to avail oneself of all of them. “
Apple, Google, and Facebook all paid me about the same, when taking into account base salary, stock, and bonuses. Adobe was about half of that. Microsoft was half of Adobe. The distribution of money varies for each company, but averaging over 4 years (due to vesting of stocks) is how I came up with those numbers, even though I never saw most of it, it is what I would have made over 4 years. Some had bigger bonuses, some had a lot more stock (most of which one doesn’t see unless one stays at least two years). When I was at Google, it seemed that they had the best perks. The problem is that the campus was so large that it was hard to avail oneself of all of them. Facebook has a great set of perks with the newest building – a nice garden on the roof (I have a YouTube video of me walking around it), higher quality of food than Google, and much friendly people. Apple has an employee purchase program which allows one to get Apple hardware at a discount, and they have much better parties than any other place (better food, better bands, etc). Microsoft had a lot of activities for employees on campus – they had their own theatre group so if you want to try your hand at acting, they had something for you, for example. And a lifetime discount on Microsoft software. Adobe has loyal users (which made going to Photoshop conference an amazing experience) because Adobe puts a lot care into their products as well as their employees careers. Located downtown San Jose made it very easy to walk to lunch at many places (since they have no free food there, it is a must). These are just some highlights, of course perks keep evolving as companies do.
On work culture
“Apple used to be quite the “hippie” place back when it was started.”
Companies have personalities just like people do, usually it is similar to the founder’s. Just like there are some people who you might not get along with, the same is true about a company. For example, Apple used to be quite the “hippie” place back when it was started, but as upper management changed, so did the culture/personality, yet it still retains much of it, such as high levels of secrecy and lots of alcohol and parties, while some places do not allow alcohol or parties. Places like Facebook where the executives swear casually most anytime in any meeting, or other places where that could get you fired or at least a meeting with HR.
Some companies want it to be perfect – Adobe was all about pixel accurate, while Facebook is all about getting something done now quickly, because it might not be used long and there are tons of other projects that need your help/time.
Some companies are about individual growth, like Adobe has two weeks of classes per year they encourage you to take (from a vast catalog of useful categories like conflict resolution, career planning, or about the latest technologies).
Some companies encourage you to change teams (like Facebook) or work with others (like Google and Facebook) or to stay on the same team (like Microsoft and Adobe and Apple).
Dig it, fix it, or split. Every company has things you like and things you do not. If you like the company, excellent! If there are things that are bothering you and you are thinking of leaving because of them, try very hard to fix them. If all of that fails, leave – there are plenty of other companies, you need to find one that matches you, sticking around doesn’t do anyone anyone any good.
On team dynamics
“Do the people eat together?”
Does the team go to lunch together? At Apple, for example, because of the levels of secrecy, one can not talk to anyone else within the company about work except your team, so teams tend to eat together. Places like Facebook with free food all of the time, people tend to eat by themselves or with some friends they make there. How the company does things will determine how you will interact with people in general.
Being an advocate for the company
“Use the company’s products”
I didn’t use Facebook much at all (like never-ish) until I started interviewing there, then once I started working there, I used it non-stop. While at NVIDIA, I would buy every graphics card that we shipped, and the special laptops, 3D monitors, etc. Once I started at Microsoft, bought a Windows PC and stopping using my Mac. Use the company’s products. By working somewhere, you are putting your name on it, you should be embarrassed if the products suck. So I want to make sure that everything is the best it can be, because as an insider, you have more access to the people who can fix or make things better for the customers.
“I will only work somewhere if I think they will get a return on investment”
I have a passion for performance. As I see it, the only thing we are born into this world with is time – one can make more money, but not more time. So I want to see computers make people’s lives easier as well as make the programs run faster. If I can make a program used by millions or billions of people a few seconds faster, then I’ve saved the equivalent of many people’s lifetimes. Also, since much of our energy comes from coal, etc, ever cycle saved means less energy used, means less pollution. Besides all of that, I will only work somewhere if I think they will get a return on investment – that I can make or save the company at least 2x my total compensation. If not, their money would be better invested elsewhere.
It is all about the people
“Be courteous and friendly. Word gets around that people are hard to work with, and get stuck somewhere.”
Learning to talk with people – make sure there are no surprises in scheduling, delivering what a manager wants, yet making sure your own interests are looked after. Negotiate with others, because even if you have all of the logical evidence, it might not go your way, so plan on a give and take, even though it might be suboptimal. Be courteous and friendly – I know many people stuck because even though they are great at their job, word gets around that they are hard to work with, and get stuck somewhere.
How they stack up
“Facebook had great food, nothing nearby there, very loud environment, but very open and friendly – the people there really care for each other. “
In general, all of these companies had great things about them. Adobe was like family and is downtown with lots of things nearby (ie their cafe sucks, but lots of local restaurants). Access to advanced imaging technology via connections to local Universities, onsite demos of research that is years out, etc. Facebook had great food, nothing nearby there, very loud environment, but very open and friendly – the people there really care for each other. Microsoft is a very competitive environment – they would have a few products internally doing the same thing, the best one would win/ship, it is what drives them to be the best in the market. Google has so many different projects – once inside, one has full access to everything (or at least used to – anyone could shut down all of the servers (I think they stopped that now), because once you are there, they trust you with everything). Easy to get lost in the shuffle, one has to allocate time to build an internal name for oneself. Apple trusts no one – I didn’t even know the project I was hired for for over a day, until they got approval to tell me. But once you are on the team, the team is everything. If you want to leave the team for another within Apple, you have to re-interview. Apple has a lot of gatherings and parties and is willing to spend money to fix things, get you the equipment you need, etc.
I’ve never selected where to work based on how famous a place is. Challenging problems with commiserate compensation is all I seek – I just like solving hard to “impossible” problems.