This article dissects what apples long term VP of engineering Craig Federighi’s said in his talk “A view from the top” at UC Berkeley 2019 which can be found on youtube.
One I heard it first back in Dec 2019 I felt closely related to the advice he dashed out in his talk because it was a good. An advice valuable for any engineer working in product software industry. For this reason and many others like, remembering what he said, recapping and pondering on what he meant and just taking notes I will write this article in hopes for somebody else finding wisdom from the great mans speech.
So here it goes.
Be an adventurer
Although he joking points out the fact that the tech industry just exploded around him and he found himself to be at the right place at the right time, he is still is an advocate of an adventurers soul. He never settled for things that did not move him. His purpose and passion for computers was intense and from the start he did what he loved.
I believe what he really meant to say was to be an adventurer when it comes to decision making in life. Take chances. Explore.
Find purpose in your passion
In your spare time you do what you love. Now if you love what you do for a living it is almost as if you’re cheating in life because all your recreational time turns into something that helps you develop your career.
The most important thing to do is to focus on doing things you love. If you’re worried about where you're going, where this all will take you, if you’re focused on the destination, you will miss out the journey.
Work with people who’s work you admire
This just spoke to me on a different level. Work with people and products that move you as a person. You want to be amoung these people because you want to find out how they work. How they make things happen. You want to be a part of it. You feel magnetically drawn to be among the people who do that kind of work that you really appreciate and learn from.
What drawn Craig to Next, a failing startup which massively undercut his paycheck, back in 88 was what he saw, the product just spoke to him, he said this is an incredible piece of work, he need to see what its like to be among the people who do that kind of thing.
During life, you are surrounded with all these opportunities to learn, and not just in your field and not just in that thing that you think you’re studying, but all those things that are peripheral to the field you’re studying.
There are so many fascinating things to learn around you all the time. Carry around a note book with a pencil and just take notes all the time, people will think you’re a wandering reported or spy or something because all you will do is just constantly jotting things down, because there are so many interesting things, and if you’re making your time to suck them all in and if you’re curious, it will really help.
Never stop acting like the new one on the team
No one expects you to know anything, so you get to ask the stupid question. Never stop being that person. Its okay if i dont know everything. “I can have some questions.” Remind that to your self everyday. You might ask something that the team probably should be thinking about, so you might bring in a good point that everybody might need to hear.
But also, it is that permission to be learning that it brings because its not about being narrow and being wanting to be secure in one little area, every adjacencies is an area to explore and the way you're going to broaden yourself and learn is to feel the permission to ask the question all along the way.
Team > self
What ever the teams mission is, and what ever we are trying to accomplish, i am going to be the one that try to make that happen. I wanna be a part of making that happen and I want to do everything and anything that can be done to make that happen.
Adopt the team. Adopt to the project and you qill find there are so many different ways you can help and along the way find so many different ways to learn. Whereas, if you focus on what this means to me and what am I interested in then I think you miss out the oppertunities.
Commit, Focus and reassess
Related to this, is the notion of committing to something for a period of time. You want to spend your career and spend 4 to 5 year on one thing. I am going to do this thing. I am not waking up each morning and ask, am I doing the right thing. This is what I am gonna do, and immersing myself to that thing.
Follow your heart
Cheesy but super important. There has been important decisions I made, if you’re analytical you make a list and there is right and then there is wrong, but when I thought I just got a feeling to my gut like no I want to be there, that i want to be there, there was something wise and intuitive that was drawing me to the right decisions. The ability to listen to yourself in those moments and when you're there you feel good about it.
Its an interesting blend, because at one hand you want to be extremely deep in a domain and be an expert in something and that takes a lot of hard work solving real problem and spending time doing that, but increasingly, software engineer has become a team sport, building things at scale is about building things with lots of people and not just other software engineers but building things with designers and working with project managers working with hardware teams. All these other disciplines, communication is incredibility important. Being able to collaborate. Being able to empathize with users.
Building a product software is about can you put yourself in the mindset of your customer and think about how they are gonna see what you're doing and what they want and what they value and translate that.
And, then having the ability to be a part of collaboration is respect all these other disciplines.
What you come to appreciate is that you have many blind spots so that’s a narrow point of view and being able to respect all of these different kinds of roles and points of views and collaborate effectivly with these people is what it takes to build a great product as a team and thats so much of what its about these days.
Be authentic for being better at communicating.
Diversity in tech
When you think about building the best products they come from a diverse team fundamentally. They come from understanding your customers and your customer has comes from all kinds of background and experiences and desires and aptitude's and if the people in the room have a narrow perspective of what the customer wants and what the customer understands. You're gonna build something that is very narrow and i found over and over these areas where having the right set of people in the room thats eye opening.
You go of-course someone would want this and someone would say actually no, actually i really value this… and you go really? and you realize how narrow sometimes you can be viewing things if you just have a single view point in the view. This has to do both with culturally, national customs, age, whats currently fashionable or popular with different demographic and you need this diversity in every domain in form you to build the right product.
And it's not just understanding the customer, it's also that the diversity, domain background, or ways looking at the problem are where you make those leaps. You can spend kind of optimizing in your lane but where the really interesting stuff happens is when you cross the lanes and that really happens by having those diverse set of disciplines together at the table.
Mixing it up is great
Many of us are inherently lazy people and we’re always thinking how can i make this easier and then you do way more work trying to make it easier then if you did it normally.
When you think about how you’re gonna connect a peice of product to a customer experience. I am not a graphics designer but I enjoy working with them and i enjoy thinking about that connection between the customer experience we want to create and what that experience can be and whats the underlying architecture that could make all of that happen… there is something fantastic about that.
But, i’ll say generally with programming there is something really zen about it, you could lose yourself for hours just thinking deeply about a problem and then when it all comes together there is this just unbelievable feeling of I DID IT… IT WORKS… it just undeniably works… there is lots of things where you could have an opinion and write an essay. Did you nail it? I don't know, but you wrote a program and it did that thing there is no denying it it worked. The satisfaction out of that is great.
Diversity of things that you’re working on, parts of your day and parts of you week that you want to go and focus on this and i am going to go in deep but then to be able to spend sometime doing some other activities, which can still be related to your project, or exercising, but mixing it up is great.
Constant diversity of the problem you're solving does kind of renewing you. You are always learning something new. I've learned something, how do I apply this thing I learned? I come up with a project that i want to build and then you're building a project and then you realize there is something else you need to learn to do it right and there nothing like having a problem to solve and seeking a solution to then give you the hunger to learn and then having that appreciation to the solution when you’re doing it and that cycle is just so motivating.
I was always focused on at any given time trying to solve the problem for the team and when youre working on a project and you're devoted to the success of the project and solving all the problems to the project that’s where people someone say you should manage this team.
It was because my focus had been not just my narrow thing but what can I do for my team. What are the all the different problems i can solve. People say, hey you should manage this team and when think about how my project fit in with other project they said you should lead this collection. I never wanted any of this.
If you not too worried about getting there but just trying to do the job at times it turns out that people see in you maybe a solution to a problem they are trying to solve which is managing other people and thats how you climb the ladder and be a successful leader.