[{"content":"Source: https://diego.cool\nFAANG refers to big tech companies that are high growth, working on trendy services across different industries, pay well, and have a large market cap or potential. The acronym originally stood for the companies Facebook, Apple, Amazon, Netflix, and Google, although the actual companies have changed over time (today, tech giants like Microsoft, NVIDIA, OpenAI, and SpaceX may be considered in this category). A career in FAANG is often the dream of software engineers for a variety of reasons, but there are both merits and drawbacks to such a life.\nFAANG as a Lifestyle Working at FAANG means the company itself becomes part of your identity.\nFor example, to work at Amazon Web Services means to be at the cutting edge of cloud computing, a trendy yet important domain space in the software industry. There’s excitement in being part of the evolution of technology, and your work contributes to the movement and your company’s position in the industry. Of course, innovation happens in FAANG companies as much as out of it; the external visibility and attention of their impact is what sets FAANG apart.\nMost FAANG companies have a very generous compensation and benefits package. You are paid competitive salary and stock that has moonshot potential, companies have generous PTO options including unlimited PTO at some, and the office itself might have amenities such as gym, shower, or food court options. Subsidized by FAANG, it’s easy to live the high class lifestyle and raise your personal standard of living.\nJoining a FAANG company is not easy. The interview process is famously standardized and rigorous, and lots of effort goes into interview prep for “Leetcode” exercises, system design practice, and behavioral interviews. Clearing the hiring bar for a FAANG company becomes a symbol of accomplishment, as if you’ve proven yourself a competent enough software engineer to work in the big leagues.\nWhen I first joined a FAANG company, I felt elated to have finally made it. Joining one had always been my long-term dream, and I had always been envious of those who work in the heart of the tech industry, working on cool technology and making stacks of money. For the first several months after joining, I genuinely felt accomplished and successful.\nHaving FAANG as a long-term goal by itself gives purpose to your individual life. It’s a clear finish line that can be met with enough time and effort, and it acts as a motivator to help improve your own software engineering skills. Should you job hop until you make it into FAANG, you may even see your own income increase over time until it reaches FAANG-equivalent pay, a linear indicator of your career progression.\nFAANG on the Resume Outside the company, having FAANG on your resume opens many doors because of their fame and scale.\nFAANG companies have a reputation for their rigorous hiring bar: for example, working at Google means you cleared Google’s hiring bar, a feat worthy of respect and status. Working at any FAANG also unlocks a private network of ex-FAANG members, which makes it easier to make professional connections. This helps to build rapport with strangers, whether they be new friends, hiring managers, or professional contacts.\nI regularly get recruiter messages on Linkedin due to my prior experience. This is not something I ever anticipated, but it indicates just how competitive the software industry is. Putting “Meta” or “ex-Meta” in your tagline catches eyes, regardless of how good of a candidate you are.\nFAANG companies typically are very large, which creates opportunities for career growth. You may start as a junior software engineer and dream of climbing all the way to principal or distinguished engineer, and you start to find meaning in career promotion. Such opportunities would not be present in a smaller company with fewer positions. Lateral transfers are also an option, for example pivoting from software engineer to becoming a product manager or an engineering manager. You may discover a role you didn’t know existed and make that your next goal, and you may also discover a business line you become fascinated in and wish to internally transfer to. Regardless of the business, there are always difficult problems to be solved across the company you may find fulfilling and take on to grow professionally.\nFAANG carries prestige because of the success of the company, which you have first-hand access to by working for them. By seeing how “the big guys” do things, you can quickly learn cutting-edge practices and tooling for doing things at their level of success. Whether it be best practices for development testing, software deployment, or oncall duties, FAANG serves as a reference point for software implementation at scale.\nReasons to Not Join FAANG In some sense, the many advantages of working at FAANG make it difficult to leave. This is sometimes referred to as “golden handcuffs,” where the pay and benefits are worth it to never leave the company. While there’s nothing inherently wrong with this, this can mask many legitimate reasons to leave such as demotivation, burnout, and disagreement with company direction which have more impact on your personal wellbeing. Avoiding FAANG also avoids the inertia felt of being trapped at the company.\nDue to the company size, chances are you may not get to build the large scale systems you were dreaming about. FAANG tends to make your individual contributions small because the systems are so large. You become a “cog in the machine,” and even if your product is innovative and exciting, your individual lines of code might not make the contributions you were actually hoping for. A 0.1% improvement to delivery rates might have huge, measurable impact at scale but might not sound very exciting conceptually.\nAs I worked longer and longer at FAANG, I started to learn the realities of what a company of this size does. Despite working on massively scaled systems, my individual impact and scope was small, and a lot of the work was highly bureaucratic and political, rather than the technical I actually cared about. I experienced steady career growth up to a certain point before stagnating and not finding any exciting scope to pursue. I tried transferring teams, and in the process, I learned that I actually valued work-life balance and direct customer impact, which I would only find in a smaller company. I don’t regret working at FAANG because it served as a meaningful reference point, but this only occurred after I had more experience across different teams and companies.\nAside from experience, FAANG carries a significant amount of “external validation”. You may be tempted to view FAANG as meaningful because of the company’s size, status, or wealth, none of which have any bearing on you. Should you tie your self worth or the worth of any software engineer to FAANG, you create a bias that only FAANG companies carry good engineers (the mentality of “if you’ve never worked for FAANG you’ve never done real software engineering”). The average FAANG engineer is neither smarter nor more capable than any other software engineer, and joining FAANG alone does not change your individual capabilities as a software engineer.\nIs joining FAANG worth it? Working at FAANG carries a lot of meaning, internally to yourself and externally from others. As a lifestyle, identity, and resume piece, FAANG gets hyped up as a final destination for a software engineer, and working there may not be what you expect.\nIn my opinion, as a career software engineer, it’s worth working at FAANG at least once to experience it and decide for yourself whether you are a good fit for FAANG. You don’t have to work at FAANG forever; careers evolve over time, and FAANG is an excellent checkpoint to reach in order to re-evaluate your career direction.\n","permalink":"https://careerengineer.dev/posts/faang-career/","summary":"\u003cp\u003eSource: \u003ca href=\"https://diego.cool\"\u003ehttps://diego.cool\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFAANG refers to big tech companies that are high growth, working on trendy services across different industries, pay well, and have a large market cap or potential. The acronym originally stood for the companies Facebook, Apple, Amazon, Netflix, and Google, although the actual companies have changed over time (today, tech giants like Microsoft, NVIDIA, OpenAI, and SpaceX may be considered in this category). A career in FAANG is often the dream of software engineers for a variety of reasons, but there are both merits and drawbacks to such a life.\u003c/p\u003e","title":"The Meaning of FAANG"},{"content":"The career level in the software engineering industry represents a promotion level where one has no expectation to promote further and can comfortably remain put. At most engineering companies, this level is called “Senior Software Engineer” and follows after Junior and Mid-level promotions. The career level marks the end of the typical software engineer career ladder.\nReaching this level feels very personally rewarding and fulfilling. Starting at junior engineer level, promotion to this level typically takes years and may not be a linear path. In some sense, promotion to the career level means you’ve “made it” and have proven yourself worthy of being a competent, independent engineer. It’s like a graduation, where your diploma is the status of the career level title, representing your personal accomplishments and skills built throughout the promotion journey.\nI personally felt very proud when I reached Senior Software Engineer. I considered this the most important milestone in my career: I felt like I finally built the career I had always dreamed of and was working toward. I felt confident and validated in my skills to be a software engineer, and I could finally just enjoy and be fulfilled by my job. What I enjoyed most is the lack of promotion pressure. I didn’t feel any pressure to prove myself anymore and could enjoy my paychecks. Instead of being driven by career progress and a form of imposter syndrome, I felt that I was actually good enough to remain as is for once.\nBeing at the Career Level After reaching the career level, an engineer faces a real emotional tension between job stability and novelty.\nThe career level represents a very simple and straightforward work lifestyle. You are effective enough to deliver without the pressure for professional growth. This is the level where I’d argue you can treat it as a job and nothing more. As Will Larson describes in Staff Engineer, there is no company expectation to promote past senior engineer, not without having to pivot into management or technical leadership. You have already succeeded in climbing the mountain, and any future work will entail climbing a similar sized mountain.\nEntering the career level introduces a vague sense of stagnation, given the lack of pressure to move upward. Expectations are always the same: simply complete the assigned work based on business needs. The same Jira board will fill up with tickets for the coming sprint and gradually burn down in the coming days, only to refill in a couple weeks. The cycle never stops, and you go through the motions as this becomes your entire routine. You may even become a “lifer” or someone who spends their remaining career at the same company at the same level.\nIt’s perfectly reasonable to feel comfort and stagnation simultaneously: they define the career level mentality. But this conflict makes it difficult to make meaningful career choices. Unlike the career ladder climb from junior to senior software engineer, there is no clear guidance past the career level. What should one pursue next?\nExploring Career Directions For some outside perspective, let’s look at current academic research into career direction. Socioeconomic researcher Meng-Chi Chen describes three \u0026ldquo;Axes of Success\u0026rdquo; that describe career trajectories in three dimensions:\nWealth: capital accumulation and economic optionality Autonomy: control over task selection, temporal allocation, strategic direction Meaning: social impact, problem important, personal replaceability Without seeking change, the career level offers a very reasonable balance of all three dimensions. There are many practical reasons to remain at this level without further career progress:\nSoftware engineers are generally paid very well Career level engineers have the expertise and autonomy to make architectural choices within their domain, a source of career fulfillment Software engineering can be a source of passion and a means to an end for other life matters (raising a family, funding a side hobby, etc) On the other hand, remaining at the career level can atrophy your skills if you don’t continually improve. Stagnation can feel very boring and demotivating, and some wish for some novelty. This can take the form of a new company, industry, job role, or other forms of side-gigs. Every person values each dimension differently, but for those pursuing a transition, there are ways to achieve each of these in the tech industry:\nSwitch companies to a higher paying competitor or industry Pursue a technical or leadership promotion to gain more scope Join a mission-focused startup where you will meet like-minded people Any career change can feel rewarding, just like the career level promotion. The tech industry has a very career driven mindset where all careers and companies should be progressing and evolving in some way, and career change helps break the stagnation induced by the career level. On the flip side, building a professional career can be exhausting, frustrating, and yield unsuccessful. Your previous graduation to senior software engineer now becomes the starting line, and you have to repeat a similar yet much more arduous process once again, on top of the Jira tickets you are still expected to complete. There is merit to the comforts of the career level.\nWhether to remain or make a transition is entirely a personal choice. But regardless of your day-to-day career level, there are still other avenues to achieving long-term fulfillment.\nThe Career Engineer Mindset I believe it essential to remember what made you reach the software industry career level. The practices, principles, and mindset that taught you to get that far should not be thrown away but be continually refined and applied.\nI define a career engineer as one comfortable with the craft of software engineering.\nSoftware engineering encompasses a variety of dimensions, technical and personal. There is the technical aspect represented by the software development lifecycle: best practices around testing, deploying, monitoring, and incident handling define the core of developing good software, and this is the baseline expectation of any software engineer.\nThere are intrapersonal skills expected of an engineer, centered around technical growth and mastery. Integrating a new library, developing in a new language, trying out a new toolchain or IDE, these are all part of engineering culture but require a developer’s personal curiosity and capacity for growth. The software industry regularly evolves and innovates. The very same task, such as standing up a full stack website, gets more and more streamlined and abstracted over time as technology improves and evolves. It is essential for the career engineer to follow along with the industry and embrace the novelty that comes with it. Jira tickets become a proxy for professional development and experimentation.\nInterpersonal skills are also required at the career level. Being able to work with your boss, a product manager, a coworker, and other stakeholders are basic skills that don’t go away. Soft skills like communication and mentorship take practice but are still essential to the software engineer job (Tanya Reilly refers to this as \u0026ldquo;glue work\u0026rdquo;).I don’t think one ever “learns” how to do all this, but one simply gets better at it over time. You will never be perfect at it, so you always enjoy every improvement you make.\nThe Career Engineer’s Purpose In my eyes, the career engineer can be a software engineer, manager, product lead, or a multitude of other roles. Regardless of the role, within the career engineer is a personal purpose at stake. Purpose comes in a variety of shapes:\nPassion for building software Ambition over career prestige and status Desire for economic freedom Self-determination to grow a business A career engineer’s purpose may be multidimensional and even change over time, but it’s important to have some personal motivation to sustain a long term career. Put differently, purpose is your career direction, and it can bring both stability and novelty that you seek as a career engineer.\nSince programming as a child, I have always had a passion for building software, regardless of age, job, educational status, or language or tooling used. This continues into my professional career. I may be a “Senior Software Engineer” today, but whether I change roles or get promoted in the future, this remains true to me.\nBuilding a long-term career in the software industry requires a mental shift from the external factors (title, compensation, career progress) to the internal mindset (motivation and growth). You must cultivate a personal identity, the career engineer, and respect the craft of software engineering to be fulfilled in this industry.\n","permalink":"https://careerengineer.dev/posts/career-engineer/","summary":"\u003cp\u003eThe \u003cstrong\u003ecareer level\u003c/strong\u003e in the software engineering industry represents a promotion level where one has no expectation to promote further and can comfortably remain put. At most engineering companies, this level is called “Senior Software Engineer” and follows after Junior and Mid-level promotions. The career level marks the end of the typical software engineer career ladder.\u003c/p\u003e\n\u003cp\u003eReaching this level feels very personally \u003cem\u003erewarding and fulfilling\u003c/em\u003e. Starting at junior engineer level, promotion to this level typically takes years and may not be a linear path. In some sense, promotion to the career level means you’ve “made it” and have proven yourself worthy of being a competent, independent engineer. It’s like a graduation, where your diploma is the status of the career level title, representing your personal accomplishments and skills built throughout the promotion journey.\u003c/p\u003e","title":"Career Engineer Stagnation"},{"content":" !! UNDER CONSTRUCTION !!\nAbout this blog Career Engineer (commonly \u0026ldquo;Senior Software Engineer\u0026rdquo;) : an engineer at the particular software engineering level where no further career promotion is expected\nThis blog focuses on the sustainability and craftsmanship aspects of the career software engineer in order to build a decades long career in the industry. In the absence of vertical career growth, I focus on building non-technical skills necessary for long-lasting resilience: emotional intelligence, professional productivity, and personal ideology.\nThe mental and emotional state of a software engineer is rarely discussed. Engineers face meta-career crises with far more impact than their day-to-day technical worries:\nAm I facing career burnout already? Do I have imposter syndrome, and what does it even look like? Why shouldn\u0026rsquo;t I use this hot new technology? What does being blocked really mean? This blog is for the software engineer seeking a long term career in the software industry, as opposed to motivators like career ladder promotions or entrepreneurial growth. I hope to centralize a wealth of advice, frameworks, and stories in one place, serving as a general purpose runbook for the career level engineer. This blog captures my personal stories, knowledge, and insights I needed when growing as a software engineer myself.\nAbout me My name is Andy Nguyen. I\u0026rsquo;ve always enjoyed computer programming and aspired to be a software engineer since a child.\nI have about 6 years of experience, having worked in an academic lab, a FAANG company, and currently a midsize startup.\nI started this blog based on my personal experiences and shortcomings in software engineering mentorship. I rarely found meaningful advice on how to build a long-term career in line with my childhood dreams, and I never found a role model that captured this personality. I hope to build a resource to encapsulate this persona and give advice toward building a sustainable software engineering career.\nYou can contact me at andy@careerengineer.dev. I welcome any questions, feedback, or connections.\n","permalink":"https://careerengineer.dev/about/","summary":"\u003chr\u003e\n\u003cp\u003e!! UNDER CONSTRUCTION !!\u003c/p\u003e\n\u003ch2 id=\"about-this-blog\"\u003eAbout this blog\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eCareer Engineer (commonly \u0026ldquo;Senior Software Engineer\u0026rdquo;) : an engineer at the particular software engineering level where no further career promotion is expected\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThis blog focuses on the \u003cem\u003esustainability and craftsmanship\u003c/em\u003e aspects of the career software engineer in order to build a decades long career in the industry. In the absence of vertical career growth, I focus on building non-technical skills necessary for long-lasting resilience: emotional intelligence, professional productivity, and personal ideology.\u003c/p\u003e","title":"About"}]