The Full Stack Career: Autonomy, Efficiency & Ownership = Antifragility (Part I)
Thiago Ghisi
Director Of Engineering at Nubank | Ex-Apple & Ex-ThoughtWorks | Follow me for ??Tech Career Growth Tips, ??Engineering Leadership Insights & ?? My Books/Articles/Podcasts/Talks Highlights.
This is the Part 1 of 6 of a series of posts about The Full Stack Career I started last week:
Newcomers to the Tech/Engineering world often ask me: What should I do to build a strong foundation for a successful career in tech? My answer is always the same.
1?? Aim to become as Full Stack as possible by deliberately changing your job every 2-3 years for the first 10 years of your career.
Experiment working as a Software Engineer with different programming paradigms, languages & frameworks, in different parts of the stack (front, back, infra), in various platforms (mobile, web, embedded systems..), in different aspects of the process lifecycle (discovery, developing, testing, operations), playing different roles with different business domains in companies of different stages and sizes. That is usually the first thing I say.
2?? Surround yourself with mentors in a Supportive & Psychologically Safe Workplace.
Be in a place where you are surrounded by people you can learn from. Have at least a couple of mentors around. By that, I mean people you are inspired not only by their hard skills but also by their soft skills. In an environment where you feel safe to experiment, fail, and learn. You're treated with respect and not belittled for not knowing something. You can ask questions without fear of judgment. Finally, you never want to be the "smartest" person in the room, especially in the first ten years of your career.
3?? Value companies that are using open-source projects and allow you to work across the stack.
Value companies that use the most consolidated and popular programming languages, leverage open-source frameworks and allow you to work across the tech stack & collaborate with & play different roles across the process lifecycle when needed. Knowing how to navigate from the AWS account to provisioning new infrastructure to the mobile codebase will pay dividends whenever you decide to build side projects or are changing companies. You don't want to work in a company where you are working on top of a lot of custom-made abstractions on the part of the stack, and you don't have the autonomy to look at the solution & architecture end-to-end and move across.
Why?
The follow-up question I rarely get is: Why? Why should I care? Why should I go to this humongous effort of trying to go broad-first and find environments where I have mentors and can work ecosystem-wide?
Check it out Part II:
Author / Senior Lecturer-Western Sydney University / Fellow AIB / Senior Lecturer-IATC
1 年I think this is an important concept you have captured. Please see our book analysis of Nassim Taleb's Book Antifragile: Things That Gain from Disorder. We applied to Australian Construction Contracting - on LinkedIn. https://www.dhirubhai.net/posts/matt-stevens-4867b45_antifragile-book-analysis-activity-7111553880714330114-yyAK?utm_source=share&utm_medium=member_desktop
???? Dad, Humanist, Software Engineering Leader based in Portugal
1 年100% agree. Once you get to the point where you’re applying design patterns and paradigms instead of rote framework or language conventions then you’re in a place personally where you can really dive into any challenge
Staff Software Engineer | Mobile - Backend - Machine Learning
1 年Now I'm eager to read the next part of this post, where you talk about what comes next after those 10 years. After a fair amount of years working exclusively with mobile, I decided to take another step and start working with backend to become a T-shaped engineer. Then, I took an even bigger step and decided to pursue a career in machine learning as well. Probably, I should spend more time focused on backend before trying to pursue more, but I'm enjoying the journey and learning a lot in the meantime. Thanks for sharing such good advice.