Main Responsibilities of a Software Engineer III at Big Tech Company
Matthew, a Software Engineer III at Big Tech Company, spends the majority of their time "implementing and designing specs for software that will be used in distributed systems", primarily through coding in C, C++, and SQL and debugging distributed systems across various teams and repositories. A significant portion of the role also involves project management-like tasks, such as estimating delivery timelines, identifying potential blockers, and ensuring all necessary resources are available for timely product delivery, balancing innovation with "keeping the trains running on time for the products and features that already exist."
Software Engineering, Distributed Systems, Debugging, Project Estimation, Communication
Advizer Information
Name
Job Title
Company
Undergrad
Grad Programs
Majors
Industries
Job Functions
Traits
Matthew Gagliardi
Software Engineer III
Big Tech Company
University of San Diego
U.C. Berekely . M.A. mathematics
Mathematics, Data Science, Statistics, Philosophy
Arts, Entertainment & Media, Technology
Product / Service / Software Development and Management
Took Out Loans
Video Highlights
1. Coding and Debugging in Distributed Systems: A significant portion of the role involves coding in languages like C, C++, and SQL (approximately 60-70% of the time) and debugging complex distributed systems to prevent issues from impacting customers.
2. Estimation and Project Management Skills: Engineers need to develop skills in estimating delivery timelines, identifying potential blockers, and optimizing solutions, which is considered a challenging but crucial aspect of the role.
3. Coordination and Communication: The role requires substantial communication, including attending meetings, going through emails, and coordinating with various teams and individuals to ensure timely product delivery and address potential pain points.
Transcript
What are the main responsibilities within your role?
My main responsibilities consist of implementing and designing specs for software used in distributed systems. About 60% of my day is spent coding in languages like C, C++, and SQL.
The rest of my time involves a lot of debugging. This includes not just local code and compiler errors, but entire distributed systems. I focus on understanding how systems spread across several repositories and teams might break down.
My goal is to fix these issues before they impact customers. As an engineer, I also need to develop skills in estimating delivery timelines and identifying blockers.
I also work on optimizing solutions to solve several problems at once. A challenging part of my role is understanding if all necessary components are in place for a product's timely delivery.
This involves knowing who to reach out to and anticipating potential pain points. It also means going through emails, participating in calls, and attending meetings.
In summary, my responsibilities involve innovating and developing new products while also maintaining existing ones.
