Sneak Peek: The three most common TPM interview questions:
- How do you handle people issues? Watch Google TPM answer here.
- Design Instagram. Watch an answer to this question here.
- How would you initiate a new program? Watch answer here.
Are you interested in making the leap into becoming a technical program manager (TPM)?
You may be intrigued by the exciting job descriptions and lucrative salaries.
But you also want to learn a little more about what it means and what it takes to be a technical program manager before diving in headfirst.
We've covered all the bases in this article concerning the roles and responsibilities of a technical program manager.
Complete TPM Interview Course
So, you want to ace your technical program management interview. You’re in the right place! Introducing the Exponent TPM Course - your best ticket to a successful TPM interview.
Table of Contents:
- What is Technical Program Management?
- Are Technical Program Managers the Same as Project Managers?
- Technical Program Manager Job Responsibilities
- TPM Job Requirements
- How Do You Succeed as a TPM?
- System Design for Technical Program Managers
- Program Sense for Technical Program Managers
- Technical Program Managers and Cross-Functional Partnerships
- What Teams Do TPMs Work With?
- Interview With Senior TPM at Square
What is Technical Program Management?
In short, technical program managers (TPMs) help guide projects to completion like project managers. They help with everything from scoping a project in planning meetings to performing quality checks once it's developed. They prioritize business and technical needs in every project or product a company produces.
A TPM is the person responsible for all aspects of a technical project's success, from engineering requirements to business analytics.
T - Technical:
The position unsurprisingly requires a technical background. TPMs must be capable of making strategic decisions based on their technical expertise. This means TPMs need a coding or technical background to succeed.
P - Program:
The position is centered on developing and executing technical business programs, from new products to software compatibility improvements.
M - Management:
TPMs are managers and must be able to manage from start to finish! This includes ensuring products are delivered on time and that their metrics match a business' goals.
Learn more common TPM terms in our TPM Glossary.
Are Technical Program Managers the Same as Project Managers?
What is a "program" referring to in this context?
A 'program' is defined as a "plan of action aimed at accomplishing a clear business objective, with details on what work is to be done, by whom, when, and what means or resources will be used."
Does this mean that programs are essentially projects?
Well, programs have a much greater scope compared to projects. This is because technical programs are composed of several related or interconnected projects.
On the other hand, projects are usually more temporary and focused on a single, specific deliverable.
For example, imagine that a CTO is looking to develop and bring to market a software product.
They would formulate a program charged with the software delivery, which a TPM would manage.
This program would consist of several projects with similar goals at every phase of the program's lifecycle, from strategy creation to execution to delivery to completion.
TPMs handle all aspects of these programs. And as a result, they're often tasked with working through every phase in the program's life cycle, from the beginning idea phases to the closure or post-closure monitoring phases.
While TPMs have many job duties (see below), the technical program manager role consists of three primary dimensions. These are:
- System Design
- Program Sense
- Cross-Functional Partnerships
Each of these is a complex aspect of the technical program manager role in its own right.
We'll extensively cover each in much more detail below.
Technical Program Manager Job Responsibilities
TPMs typically have a wide variety of job responsibilities. In general, though, they can broadly be summarized in the following way:
Determine Technical Requirements
TPMs will work alongside other engineers, product managers, and stakeholders as they develop programs.
Much of this interaction will be centered around determining the technical requirements of the programs they must manage.
These requirements may include anything from program/project budgets, timelines/milestones, and how many people are necessary to execute the program.
Form Smaller Projects Within Programs
As we mentioned earlier, technical programs will inevitably consist of numerous smaller projects. Therefore, part of managing technical programs means managing and developing these technical projects.
In a similar way that TPMs must define the technical requirements of their programs, they, too, must specify the requirements of the sub-projects within that program.
A massive aspect of a technical program manager's job is keeping their programs on track.
Technical programs may be pretty complex—many different projects, each of which will have its own schedules.
It is the TPM's job to keep all of these projects running smoothly so that the program's timeline can be maintained.
Report to Stakeholders
Technical program management is an inherently cross-functional role, as you shall soon see.
For instance, they may need to provide budgetary reports to financial or accounting teams or deliver development status updates to upper management.
The TPM role sits at the crossroads of dozens of different teams. This means it is often up to them to communicate progress to the various stakeholders involved in their technical programs.
TPM Job Requirements
Let's look at some of the most common TPM job requirements
- Bachelor’s in Computer Science or Engineering, or equivalent experience
- 2+ years of professional experience in a technical role as a TPM, PM, or SDM
- Experience on teams building and operating extremely high volume and highly scalable online services
- Experience delivering tech programs or products from inception to delivery
- Knowledge of user needs, gathering requirements, and defining scope
- Experience communicating and translating non-technical to technical (and vice versa) requirements and discussions to internal and external teams (including public-facing communication)
- Experience describing features and/or system details and communicating technical information effectively
How Do You Succeed as a TPM?
It should be no surprise that a technical program manager is a complex and multifaceted position in a company.
Several interdisciplinary skills are necessary for any successful TPM. These include, but are by no means limited to:
Strong Technical Aptitude
Every TPM must have a strong aptitude and understanding of their organization's technical aspects and capabilities. Their technical knowledge will be indispensable for developing and executing programs.
It will also be invaluable to their overall ability to lead their different teams.
Having solid technical skills yourself will ensure you are an effective and inspiring leader to those highly specialized members of your teams.
This will directly translate into a better execution of your technical programs.
Planning & Strategic Thinking
Program Management positions are deeply strategic, focusing on long-term, significant picture initiatives intended to meet an organization's business goals.
TPMs must be able to develop programs that can accomplish some aspect of a business's larger strategy.
And as such, an enthusiasm for high-level planning and strategic thinking is the cornerstone of being a technical program manager.
Risk Management skills are also necessary when developing business programs.
Because of a TPM's focus on an organization's long-term, strategic goals, a successful TPM must have the ability to recognize, measure, and mitigate the many risks that come with their programs.
They must be able to make prudent decisions about how to best apply an organization's time, resources, and personnel to achieve some end.
Deep Understanding of Business Goals
A TPM must have a deep understanding of the goals and objectives of their company. Otherwise, they would not be in the position to develop and deploy programs that would actually result in success and create an impact.
TPMs must be prepared to have an intimate understanding of their organization's particular goals, both big and small, to be most effective as a technical program manager.
Domain expertise is also crucial for successful strategy definition and execution.
Therefore, aspiring TPMs should always be sure to gain deep knowledge in their company's particular domain to best prepare themselves for the role.
Project & Personnel Management
All TPMs must coordinate several interrelated technical projects across the many involved teams. They must develop their program's roadmaps and strategies while leading all the teams that ultimately execute them.
This is where excellent people skills come into play, allowing TPMs to work with various teams, influence and get buy-ins in multiple situations, make strategic decisions, and get the team's trust.
Previous experience managing people may be beneficial in this regard.
Complete TPM Interview Course
So, you want to ace your technical program management interview. You’re in the right place! Introducing the Exponent TPM Course - your best ticket to a successful TPM interview.
Communication is the foundation of the position, as TPMs must communicate the strategies, roadmaps, issues connected with their programs to all the principal stakeholders involved.
Therefore, exceptional communication skills are essential for all program managers but are especially critical for technical program managers. TPMs are tasked with communicating complex technical ideas to technical and non-technical members of their teams.
In doing so, they must keep everyone on the same page. This can be a unique communication challenge that potential TPMs should keep in mind.
And last but certainly not least, TPMs must have strong leadership. Generally speaking, technical programs tend to be long-term business objectives of several related projects.
Numerous employees may work extensively on a project within the TPMs program. As such, much of their day-to-day workflow is determined by the strategies and roadmaps defined by their TPM.
These employees rely on strong leadership skills to successfully guide them through the successful execution of the program.
As we mentioned, the technical program manager role essentially consists of three primary dimensions. These are system design, program sense, and cross-functional partnerships.
Therefore, all these previously listed duties will fall under one (or several) of these dimensions.
If you're thinking about jumping into the technical program manager role, you must deeply understand each dimension. Otherwise, you will not be capable of performing your best as a TPM.
System Design for Technical Program Managers
System design is simply the design and definition of a technical system's interfaces, modules, data, and overall architecture according to particular requirements or specifications. In general, system design for TPMs consists of the majority of technical aspects regarding their programs.
Ultimately, system design is the skillset that focuses on how these technical systems should be best executed and built.
Many system design problems share the same fundamentals, such as system architecture, databases, content requests, load balances, etc.
Here's an overview of some of the most essential system design concepts for technical program managers:
Model-View-Controller (MVC) is a popularly used architecture pattern for developing software applications that need to include graphical user interfaces.
It was typically used to build user interfaces for desktop applications.
However, it has since come into fashion to develop UIs for web and mobile applications.
MVC architecture has been used by software developers ever since the 1980s.
As such, most programming languages used today include frameworks that support the use of MVC architecture.
These frameworks include:
- Apple's UIKit for iOS apps,
- ASP.NET MVC,
- and Backbone.
The utility behind MVC is the division of the program and its underlying logic into three parts. These three components are:
MVC ultimately separates the program's internal representations of information from the models presented to the user. In doing so, developers can produce much more user-friendly GUIs for their applications.
Fundamentals of System Design
Our product management interview course teaches you the essential skills you need to ace your PM interview, with hours of example questions, videos, and interview tips.
Data was traditionally stored in relational databases, which grouped data in tables, rows, and columns.
Yet, developers increasingly found that as the size of their data increased, relational databases would start to bottleneck with a system's CPU or its memory, among other things.
This would require continuously more advanced and expensive hardware to keep the application running and performing well.
At a certain point, even the most high-end hardware can't support the necessary data using just relational databases when it comes to most applications.
As such, developers started taking advantage of database sharding. They found that, in some instances, it was possible to spread data throughout several different servers.
This is database sharding.
The process looks like this: large data tables are broken into horizontal partitions, called shards.
Each shard contains a piece of the entire table of data. Sharding is the act of placing each shard, or a horizontal slice of the whole table, onto separate servers.
The memory management of an application refers to how it is designed to allocate and free up memory while the program is being executed. Many of the newer programming languages allow for automatic memory management.
However, some of the most commonly used programming languages like C and C++ do not include these automatic memory management features. Instead, developers using these languages need to allocate and free up memory themselves in their code.
Memory storage comes in two different forms: Stack and Heap. While memory on the stack is automatically managed, Heap storage is not. However, memory allocation functions similarly for most systems.
However, the techniques developers use to release memory can vary quite a bit.
TPMs should take note: effective memory management relies on each allocation being matched by one, and only one, de-allocation. Otherwise, the following scenarios could play out in your applications:
- Suppose some piece of allocated memory is not released. In that case, this memory will 'leak.' This just means that the memory would become unusable until the final termination of a program. If memory leaks, the program will eventually run out of memory. This will result in the program crashing completely.
- On the other hand, if a program tries to release memory that has already been de-allocated, it will only release memory actively being used. This can also result in crashes or system failures, or even more unpredictable consequences such as security exploits if not addressed.
At the end of the day, manual memory management is responsible for most bugs during development. All a developer needs to do is make a mistake with their allocation or de-allocation calls for problems to arise.
Not only that, but it's not always easy for developers to know how memory should be released when using specific libraries.
Like Python, for example, many more contemporary programming languages include features that automatically manage an application's memory.
Load balancers are crucial for system designs when building scalable web applications.
A load balancer is a web server that distributes web traffic coming into the application throughout multiple backend servers.
They literally balance a load of a web application's traffic volume so that it can scale up or down effectively with ease.
Load balancers also improve and maintain the web application's availability while effectively managing its server's resources and capacity.
When it comes to loading balancers and system design, there are three primary considerations to keep in mind:
- Turning into bottlenecks. If a system design does not utilize enough load balancers, they may become bottlenecks as the application scales. As the traffic of a web application increases, additional load balancers need to be implemented to maintain the application's availability.
- Configuring for user sessions. Depending on the particular session data of an application, load balancers may need to be configured correctly to prevent problems. For instance, if a user's session requests are balanced among several servers while session data isn't shared, the applications may not function correctly.
- Load balancers may result in longer deploys. Load balancers could cause delays when new server versions need to be deployed. The nature of load balancers means that traffic from the old servers needs to be rolled over to the new servers, leading to longer deployment times.
Caching is a ubiquitous data storage technique throughout computer systems and plays a vital role in designing scalable Internet applications.
A cache is any data store that can store and retrieve data quickly for future use. This enables faster response times and decreases the load on other parts of your system.
If it wasn't for caching, our computers and the entire internet would run unusably slow. Caching makes use of something called locality to improve access time.
The locality is when data is stored closest to where a system is most likely to use it. This system design is universally used in computers for a variety of tasks.
Surfing the web, for example, involves caching images by your web browser, where data is temporarily stored on your hard drive.
Caching is invaluable with the necessary data retrieval necessary for web applications running at large scales. However, the retrieval process can be much more efficient by minimizing reoccurring calculations, database queries, or system requests.
In addition, Caching allows system resources for different operations and supports a greater traffic volume.
Caching may refer to storing some pre-loaded data that would be much more difficult or resource-intensive if it was instead loaded on-demand.
The Program Sense of A Technical Program Manager
First and foremost, program sense has everything to do with the management of 'programs' or any technical process at a company.
Then your' program sense' is your level of deep understanding and ability to improve these programs. This includes what methodology to use, how to improve the delivery of programs on short deadlines or limited resources, and managing the risks of technical program management.
Sounds simple enough, right?
How to Answer Program Sense Interview Questions
Our program sense module teaches the fundamentals of acing program sense questions. Includes sample questions and answers from real-world interviews.
There are, nevertheless, several important considerations that go into program sense. These are:
- Influence: As a TPM, a crucial aspect of the position is influencing and persuading the relevant teams and stakeholders to take the necessary actions to accomplish specific goals. TPMs should ask themselves how they can control or pitch their ideas regarding the execution or improvement of company programs to the relevant teams and stakeholders?
- Managing Technical Dependencies: Most TPMs will find that managing various technical dependencies are central to their role as technical program managers. They are responsible for ensuring technical processes can be completed according to their deadlines. As such, a TPMs program sense entails the ability to manage and navigate through technical dependencies and work alongside the engineering team.
- Understanding of Product: All TPMs must work alongside their organization's product managers to develop and release the company's products. Therefore, they need to have a thorough understanding of the product. An integral part of program sense is understanding product vision and requirements.
- The Ability to Simplify Complex Processes and Execution Strategies: Ultimately, the most critical aspect of program sense is delivering a product. A TPM with great program sense is one with a strategy and the ability to simplify technical processes and expedite the delivery of unique products.
Technical Program Managers and Cross-Functional Partnerships
Perhaps the most fundamental aspect of the technical program manager position is what is known as cross-functional partnerships.
As the name suggests, cross-functional partnerships are the working relationships TPMs form with various team members involved in implementing their program. This aspect of the TPM role requires strong leadership skills and communication skills.
Because cross-functional partnerships are crucial for technical program managers, aspiring TPMs should expect several questions on the subject during their TPM interviews.
What Teams Do TPMs Work With?
First and foremost, to further introduce cross-functional partnerships, we should look at the departments that TPMs usually partner with.
Most TPMs typically collaborate with a similar group of stakeholders. These are engineering or other technical teams, product management, data, and design teams.
It almost doesn't need to be said, but the engineering teams will be the keystone cross-functional partnership for any technical program manager. The T stands for technical, after all.
TPMs will have close relationships with engineering managers and tech leads in many cases. TPMs will help create the timelines and processes needed to achieve technical product milestones alongside engineering and software development teams.
As such, aspiring TPMs must have the ability to manage technical partnerships above all.
During technical program manager interviews, you will inevitably be asked to demonstrate this with examples from your previous employment, so be sure to have these prepared.
Product Management Teams
TPMs also work closely with the various product managers involved with their programs.
The PM-TPM partnership almost always provides a critical role in the ultimate shipping of the product. The technical program manager cooperates with the PM(s) to carry out the product vision and keep the product team on schedule in achieving their goals.
The importance of the reciprocity of the PM-TPM relationship must be emphasized. Your respective insights as a technical program manager may color, for example, how a product manager sketches out the product roadmap and vice versa.
Data Science Teams
No matter which they may specifically work with (whether it be biz ops analysts or data scientists), TPMs will routinely partner with the various quantitative stakeholders.
These partners are needed to effectively implement and analyze their programs. Together, TPMs and their data science partners will measure the efficacy of their campaigns and their parts.
In this regard, the most essential skill a TPM needs is the ability to deliver actionable insights derived from the data as they help guide the program's direction.
As you should expect, design teams are an essential component of any product development.
Typically, the various design teams will have their own particular time frames that could potentially influence or hold up the related engineering teams.
Therefore, working with the design teams will be a critical responsibility of a TPM. In addition, in many organizations, the design teams will have their own program manager that works alongside TPMs to align their processes and keep the development time on track.
Interview With Senior TPM at Square, Liana Gevorgyan
We had the opportunity to speak with Liana Gervorgyan. She's currently a senior technical program manager at Square.
She has previously held Senior TPM positions at WeWork and Instagram and acted as a consultant for MIO Partners.
Liana has over 15 years of experience working with Fortune 500 companies and tech startups with expertise in program management, technical project lifecycle, and value-added leadership.
We asked her a few questions about her background, why TPM is important, and who is best suited for a TPM role.
Check it out:
Why is technical program management important for today's companies?
As companies grow, the need for cross-functional programs and cross-functional collaboration is also growing fast. Unfortunately, it's bringing a lot of dependencies that engineering managers/product owners need to spend additional time on while still keeping everything aligned.
So TPMs are equal partners that help balance, drive, maintain control, track programs, streamline cross-team dependencies, and ensure that the overall delivery remains smooth and efficient.
Also, there can be multiple stakeholders within complex programs where each team is responsible for certain milestones or certain parts only.
TPMs help create a big picture and update stakeholders on the overall program health instead of each engineering team taking care of their responsible position.
In general, TPMs help to move fast!
What types of programs does a TPM generally lead?
TPMs are more needed for cross-functional cross-team dependent programs.For example, migrations, integrations, systems decommissioning, disaster recovery, capacity planning, performance optimization, DC/AI solutions integrations, software projects delivery are all examples of technical programs a TPM could lead.
What kind of person is best suited for a technical program management position?
While the TPM title itself clears all-important critical components of the vital role, such as T-Technical, P-Program execution, M-Management/Leadership, I would also add strategic thinking, excellent communication, and people skills as the best suited for this role.
Leadership and people skills are the key points for success because of the nature of the job. TPMs have to work with many people. They need to be excellent listeners and exceptional communicators. They need to be concise and to the point. That's really important.
TPM should also be a strategic thinker and should be able to evaluate and measure program impact that can help in prioritization and alignments toward the company goals.
Of course, in many cases, it may include hard decisions. Still, prioritization and healthy judgment are the keys to success in fast-paced environments.
How did you get your start as a TPM?
I was in the Quality Assurance side of technology at the beginning of my career. Then, I started to execute several programs on a bigger scale, not just within QA focus.
I was partnering with our engineering teams' product managers, making efficient delivery processes, partnering with the customer support, and delivering product releases to a market.
I ran three different projects within a program in one of my management positions. I really liked cross-functional leadership, partnership, and collaboration.
So, I just changed my title to align with what I do and what I am passionate about at some point in my career. So this is a story about how I became a TPM.
What's the most surprising aspect of a TPM job?
It's not necessarily surprising, but the program's value and the impact it's making are very cool. So maybe you make some positive changes for your customers. Or you can save a lot of money leading the program because you can improve some infrastructure.
So, TPMs can impact employees, add happiness and satisfaction to how people do things, increase customer satisfaction, and monetize successes for the company through revenue generation, cost-saving or new streams generation, and many more ways. All of which is really empowering.
What's the best part of being a TPM?
You get the chance to work with a lot of intelligent people. So you really need to learn fast, and you're in a continuous learning process.
Being a TPM, you need to move quickly, collaborate, and strive to be the best at whatever you're doing. The level of impact that I make and that continuous growth really inspire me.
Technical Program Manager Interview Resources
Hopefully, reading this article has increased your interest in the technical program manager role.
As Liana has shown, jumping into a TPM career can be really empowering and fulfilling. Before you do so, however, you'll inevitably need to ace the TPM interview.
But, here at Exponent, you can find all the interview resources you need to put your best foot forward and nail your upcoming TPM interview:
💬 Practice with sample Technical Program Manager interview questions
📖 Read through our Technica Program Management interview guides
👯♂️ Rehearse your behavioral and interpersonal skills with our interview practice tool.
👨🎓 Take our complete Technical Program Management interview course.