Episode 422: Moving in to big tech and building support
Aug 19, 2024
auto_awesome
Maria, a self-taught software engineer and tech lead, shares her journey of aiming for a big tech transition. She discusses the importance of both technical and soft skills in this shift, debunking misconceptions about roles in larger companies. The conversation highlights strategies for acing challenging technical interviews and the necessity of networking. Maria’s insights on preparing for the demands of big tech environments emphasize the significance of understanding system architecture and collaboration, while also touching on the importance of supporting team dynamics in remote settings.
Transitioning to big tech necessitates a blend of technical proficiency and strong soft skills to navigate complex organizational structures.
Understanding existing internal technologies and articulating one's experience during interviews are essential for engineers seeking positions in larger tech companies.
Deep dives
Transitioning to Larger Tech Companies
Moving from a smaller company to a larger tech organization entails more than just technical skills; it also requires an understanding of the unique challenges and structures within big tech. Many engineers mistakenly believe that large tech companies only operate on cutting-edge systems handling massive traffic. However, a significant portion of their work involves established internal frameworks and tools, designed to manage such complexities, thus altering the expectations placed on new hires. Emphasizing soft skills, such as collaboration and project management across multiple teams, is equally crucial in navigating the intricacies of larger organizations.
The Importance of Experience and Understanding
It is important to recognize that experience handling high-volume systems does not necessarily define one's ability to perform in a large tech setting. In reality, engineers in big tech often utilize existing solutions rather than having to create new systems from scratch. Gaining experience with internal technologies and understanding the operational expectations are crucial, as is the ability to articulate one's competencies effectively during the interview process. Reading resources like the 'Google SRE' book can provide insight into the responsibilities that may differ from those in smaller firms.
Addressing Code Quality in Hierarchical Structures
In environments with strict hierarchies and limited communication channels, sharing and implementing ideas for code quality can be particularly challenging. Engineers often hesitate to present their ideas due to concerns about how they will be received by their immediate team or upper management. A successful approach includes framing proposals in terms of business value, demonstrating how architectural improvements can enhance productivity and reduce bugs. Additionally, proposing a structured process for collaboration across teams can facilitate the adoption of better coding standards without alienating colleagues or management.
Focusing on Problems Rather Than Solutions
Approaching technical challenges by prioritizing the underlying problems rather than hastily suggesting solutions can yield better results for engineers aiming to influence their teams. Understanding the nature of issues and quantifying their impact can create compelling arguments for proposed changes. This involves gathering data regarding system bugs, performance issues, or productivity lags attributed to existing practices, allowing for more persuasive discussions. Ultimately, this mindset not only aids communication with management but cultivates a culture of problem-solving and innovation throughout the organization.
In this episode, Dave and Jamison answer these questions:
A listener named Maria says,
Hey guys! I am a software engineer working in web development at a small/mid-sized SaaS company. I come from a non-traditional background (self-taught, no CS degree) and I currently have 6 years of experience under my belt, the last 2 years of which I have been tech lead of a small team.
I want to move into big(ger) tech, but I’ve not worked on any large scale systems so far. The biggest thing I’ve worked far had a user base of ~100k users and traffic would typically max out at ~2k concurrent users at peak times. Due to the nature of the work I’ve been doing at smaller companies (and also thanks to this podcast!) my soft skills are strong - I am good at working with lots of different people, I can deliver broad/vague projects, and I’m comfortable tackling ambiguous problems. I think my technical skills are probably decent, I’ve spent time learning system design and best practices, and I’ve put in the work to study CS fundamentals. Thing is, I would have absolutely no clue how to maintain an API that needs to handle 100k requests per second. My hands-on experience of concurrency and threading is basically just simple ol’ async/await.
Grinding Leetcode aside, what can I do to make myself a stronger candidate for breaking into big tech? How can I be competitive against folks who already have big tech experience? Are there any projects I could do that would sway you as a hiring manager? I know it’s terrible market timing, I am just planning ahead.
Love the show, thank you for making me a better engineer! :)
Hi! I have been working at my fully remote company with around 100 people in the engineering department for over a year now. While I see a lot of really smart people here, the code quality is lacking. We’re moving from a monolith powered using an opinionated framework to small services powered by a lightweight library, so there are fewer guardrails.
I have many ideas on how to structure the code, add layering, etc., so the code is easier to understand and maintain. However, the company is very hierarchical, and despite being at a senior level, I don’t talk much to anyone higher than my lead. There are no staff or principal roles. There are also hardly any meetings, and the only ones I attend are within my small team of five people. Most of slack channels for teams are private, and I don’t ever see company-wide ideas like that thrown in the “general” channel.
I initially wanted to present this to my team first, but I am afraid that if they don’t like it for some reason, it will be awkward to take it to higher management afterward. How can I share my ideas with a wider audience and ideally get this approved as part of my work so I don’t have to work on it in my free time?
Get the Snipd podcast app
Unlock the knowledge in podcasts with the podcast player of the future.
AI-powered podcast player
Listen to all your favourite podcasts with AI-powered features
Discover highlights
Listen to the best highlights from the podcasts you love and dive into the full episode
Save any moment
Hear something you like? Tap your headphones to save it with AI-generated key takeaways
Share & Export
Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more
AI-powered podcast player
Listen to all your favourite podcasts with AI-powered features
Discover highlights
Listen to the best highlights from the podcasts you love and dive into the full episode