Technical Program Manager Guide
INTERVIEW QUESTIONS FOR A TECHNICAL PROGRAM MANAGER (TPM) CAREERS & NETWORKING, TEAMS, TOOLS & PROCESS, TECHNOLOGY JULY 26, 2016 MARIO GERARD 10 COMMENTS Interview Questions for a Technical Program Manager
Ohh where do I start ? Over the last 6 months or more I have been in the process of being interviewed and I have also interviewed a several candidates (yes, yes the irony !). It has been a very interesting journey to say the least. Which is why I thought it would be a good idea to write this post on “Interview Questions for A Technical Program Manager”. I have learnt a lot on what and how one should prepare for technical program manager interviews the various types of questions involved and the different types of jobs out there. To begin one needs to first understand the various types Technical Program Manager roles out there.
Roles vary and the team’s needs varies on what type of skills they require. My goal in this post is to be as comprehensive as possible in what I believe a Technical Program Manager know and how he/she should prepare for the task ahead.
I believe one of the most important things are to talk to other tech PMs on what they do and how they do things on a daily basis. Network ! Network with people talk to them understand the skills they use and figure out what’s missing or what you are strong and are weak at. Read more on the “Art of Networking”.
Books You Should Read
Cracking the PM Interview: How to Land a Product Manager Job in Technology The Art of Scalability: Scalable Web Architecture, Processes and Organizations for the Modern Enterprise– Must for Back End Technical Program Managers NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence – Must for Back End Technical Program Managers. Switch: How to Change Things When Change Is Hard – If you find yourself being too lazy and cannot find the fuel to start. Essential Scrum: A Practical Guide to the Most Popular Agile Process – If you already have not read, its a must read. The first book “Cracking The PM Interview” is definitely the most comprehensive book written for technology PMs be it a Product or a Program Manager. It can be used as an effective guide to prep and for Interview Questions For A Technical Program Manager. The book covers various things from the very basics of what a Program Manager does to going into a fair amount of detail on big tech companies like Microsoft, google, Facebook, Amazon, Apple etc. A fair amount of advice from industry veterans, to how one should build and format your resume. This book by Gayle Laakmann then goes into extensive detail on interview preparation for PMs with various behavioral questions and answers and also product, case studies and estimation questions. It also touches some of the basics like defining yourself and cover letters.
Though this is a must read this book it does not cover several fundamental areas like :
Tools for Program Management: Today there are literally hundreds of agile management tools out there. But knowing one or better two of the most commonly used Agile tools like Rally and/or JIRA would put you in the forefront among your competitors. If you do not have experience, there are enough and more youtube videos on this you should be able to pick this up fairly quickly.
Also get familiar with traditional project management tools like Microsoft Project. This really comes in handy when you are dealing with a long ended project spanning several month involving several cross dependent functional groups.
Technology: The book does not cover ANYTHING on various technologies you need to know nor does it cover design question which are very frequently asked questions during Interviews for Technical Program Managers. I’ll be trying to deep dive into this, later in this post.
Product / Program Manager Roles : Also the book does not clearly differentiate between Product and Program Management. I believe Microsoft is one of the few places I know where the Program Manager also works as a Product Manager but in most other places they are separate roles (I may be wrong). Both of who work in tandem and have a close relationship, the roles themselves could be very different. IMHO a Technical Program Manager focusing on Architecture, scalability and delivery while the Product Owner who primarily focuses on the vision, design, market research, usability and potential revenue of the product being built.
It also does not distinguish between the various Types of Technical Program Managers. Over the last couple of years there has been an explosion in the specificity of the type of roles. We have Technical Program Managers in the following discipline areas :
Front End: Could be Web, iOS, Android, Backend: API Platforms Integration: PM who works with 3rd parties to integrate their APIs. Business Intelligence: Big data, Hadoop, Machine learning etc. ERP: Implementing Oracle EBS, SAP, SalesForce, Microsoft Dynamics, etc. Localization: To take existing products / Services to international markets. Hardware : Chip Manufacturing. VMWare, Nvidia, Intel Data Center: With all the cloud stuff happening, there is a dearth for datacenter PMs. Process : Lean, Six Sigma, Process optimization Of course there possibly are many more and there are PM generalists as well. I personally see more opportunities for specialized PMs. So know where you fit into and definitely try be an expert in your area.
The second look “The Art of Scalability” is a must read for PMs in the tech world. It is a much harder read compared to Laakmann’s book. It goes into great depth on organizational scalability and technology scalability and building high performance teams. I would highly recommend this book if you are applying to any modern tech company.
NoSQL Distilled : Is a very easy read it takes away all the ambiguity and doubt you might have on NoSQL. It is a beginners book, an easy read and very well written. I think this is also a must read for every tech PM as most modern systems are moving away from traditional RDBMS to NoSQL this could get you sounding like an expert 🙂
Anyway I digress, lets now come back to how one needs to prepare for an Interview as a Technical Program Manager.
Network & Referrals: First if you have not already start networking, go to meetups, talk to people on the tools, process and the technology they use. Most often you would hear from people you know of opportunities at their organization before it’s even posted these days. Also in my opinion it is very important to apply via a referral. Having a referral most definitely helps you stand out of the crowd. Even better if you can have your contact to go and talk to the hiring manager or the HR for you.
LinkedIn Premium: It is $30 per month or so. Do I recommended it ? Hmm I’m on the fence about this. I would ask you to try out the one month free offer you automatically get and see what you feel about it. I think it gives me some insight to the people applying to the opportunity. It gives you the breakdown on the number of people and their background. It also matches your “skills” to the job description.
All in all it’s definitely not worth $30 per month but it kinda tells you if there are a 100 applicants to a job or 10 which is a significant piece of info if you pursuing a referral lead or if you browsing jobs. NOTE: LinkedIn tells you the number of people who have applied for the job via LinkedIn you can assume that there are likely 5x more people who probably found the job through other means or directly applied on the website depending on the popularity of the company.
Linkedin in general is by far the BEST place in my opinion to search for jobs. LinkedIn today is better than www.indeed.com as it offers so much more insight into the job and the company. It tells you hiring patterns, who has posted the job etc. I strongly advise you to create job alerts that send you the latest right to your inbox every day. The new LinkedIn Jobs app which is a separate app designed for job search is fantastic as well a must have in my opinion.
Having a good LinkedIn profile also helps. Don’t take this lightly. If you have a link or two on your resume you are sure to get people’s attention and 70% of them are going to clink on the links. It is simple human nature to explore.
Resume: Second is to have a kick ass Resume ! I am not sure why but 70% of the resumes out there are pain junk ! They are hard to read, not coherent nor do they cohesively narrate a story, people list an awful lot of non relevant things, some are way too generic. Try formatting your resume with easy to read bullets. Talk about projects, programs, features you rolled out, detail HOW you rolled them out, the challenges you faced and the end result and what it accomplished all in a single readable bullet point 🙂 How you ask well I’m sure being a PM once of your core skills are to communicate well, show it off on your resume !
Try to do you resume well because this is the only thing that is going to get you through the door. Take a look at your competition here you will see a good amount of the people applying for the same jobs and their resumes. Get feedback from you friends, mentors and people you trust. If you don’t think you have it in you get professional help. There are many professional resume writers who specialize in writing tech resumes.
Certifications: You can read how I feel about certifications in general here. I think to have the PMP and Scrum certification is good and almost necessary. Though I have interviewed and worked with several top notch PMs who don’t have either. I think they add value when someone is looking at your resume and in more traditional organizations who value certifications over actual experience.
Technical Stuff: Ohh God ! This is the tough part simply because as a Technical Program Manager your interview could go anywhere from coding, designing a system, talking about technologies to even specific questions on designing an API or to discussing how HTTPS works. The sheer breadth of things you need to know about is huge. Which I believe is why no one has every taken up tackling this.
There is no one place where you can learn all of it and most importantly if you do not have real Tech Program Manager experience it is going to be hard to grasp. It also very much depends on the job you apply for, there can be a Sr. Technical Program manager role for a video conferencing service where they might expect you to have a fair knowledge of video encoding or SPI video packet transmission protocols. Most often they are not looking for you to be an expert or PhD on the topic but a fair understanding and knowledge of how it works.
Elevator Pitch: This is what every interviewer is going to ask you if you get called be it HR or be it the hiring manager. Be concise talk about your education, certifications, your blog if you have one, the org you are part of, your team and its core tenets. Add in your key accomplishments and contributions towards the team.
Your pitch should be for 2 to 3 minutes and please don’t put the interviewer to sleep. Be energetic and enthusiastic wake him/her up and have him engaged. Look out for what perks their interests and give more of it. Practice makes perfect if I wake you up in the middle of the night and ask you what do you do you got to be able to tell me your pitch even when you are half asleep, that’s how well you got to know it.
I’ll split the Technical Preparation & Questions into two
a) System Design b) Terminologies & Technologies
System Design Questions for Technical Program Managers
One of the best resources that I know of out there for system design is https://github.com/shashank88/system_design
Shashank K a very friendly and awesome Facebook developer took the time to pen all this down. This was one of the first places I started when I began my journey. There is a solid month or two worth of information here I recommend this to be your primary source for System Design Interview Preparation.
Hired in Tech – http://www.hiredintech.com/system-design/the-system-design-process/ this also has a great exercise in system design that one can use as a foundation for similar types of questions.
Also you should review – https://www.quora.com/How-should-I-prepare-for-a-Technical-Program-Manager-interview-with-Google/answer/Lewis-Lin
Palantir Blog
Remember the depth of system design varies. Here are some of the question collected from various GlassDoor Reviews that I would useful.
Designing an elevator software Design a Parking lot system Shopping cart – How do you store this information when you use multiple servers that are load balanced. How would you design or create twitter ? Recommendation system for fashion / Clothes and accessories Stores &retrieve lat &long for a cab driver ? If a user is at x,y give me five of the closest drivers. Extend the product page X and add the auction capability. How are your ensuring security on a mobile device? Design a web based email system. Describes pieces,components, design, large scale, and use case Chat App with graph db Design Facebook the privacy features in Facebook. Explain different performance scenarios Explain different places of you have chaching. Designing an activity feed system Design Viber / WhatsApp / Facebook Messenger: Issues of each, scaling problems, offline/online users and availability, notification etc. An airline carrier is losing a lot of bags – Design a solution Design SkyDrive, Dropbox etc Design X’s frequently viewed product page Shows the last 5 items you saw Design the product recommendation feature based on a user’s purchase history. Design an online poker game for multiplayers. Solve for persistence, concurrency, scale. Design a mobile app where you can play Tic-Tac-Toe with an anonymous user in real time. Design a url compression system – Bitly Search engine : basic crawling, collection, hashing etc. (Depends on your expertise on this topic) Design a coupon system for a website like peach. Design a picture sharing website. How will you store thumbnails, photos? Usage of CDNS? caching at various layers etc. Design a push and inbox messaging platform. Design a product based on maps, eg hotel / ATM finder given a location. Design malloc, free and garbage collection system. What data structures to use? decorator pattern over malloc etc. Design a site like www.Pronto.com (price comparison, availability on eCommerce websites) When and will you cache, how often would you query, crawl efficiency, etc? Design a system for collaborating over a document simultaneously (eg: google docs) ? Design an electronic election / Ballot machine architecture Design a logging system – Splunk or ELK Design Netflix, Spotify Build a machine learning system to detect if a fake user. How do you design a system with 99.999% availability Design an amusement Park Ticketing system for user ride efficiency Design Uber Design a Inventory Management System Design Instagram Design a Video Conferencing application. So there you go 40 questions. For questions like design facebook or uber the interviewer will likely give you a specific feature he/she is looking to get you started on.
To answer design questions one must be very methodical. In my opinion requires extreme discipline to be follow a format and not jump around. Unless you have a fair amount of experience it is a easy place to fail. Preparing for these types of questions is key.
Steps
Ask as many questions as possible & write them down on the whiteboard. Ask re-clarifying and scope related questions. Once you have the requirements written down draw up a flow diagram with various components and how they are connected and talk about the possible use cases. Think out loud. Verify your assumptions with the interviewer. Be prepared to write up the APIs specs for the flows and split the applications down by features. Also you would need to have a fair understanding of various types of databases. When do you use RDBMS vs NO SQL. When do you use a message queue ? which Queue system would you use. Detailing what kind of cache you would use and where. Interviews might even ask you to code a feature if you have had coding experience in the past.
Terminologies & Technologies
Terminologies & Technologies is a tough one, just because there are way too many to list and even if I did list within a couple of months they are going to be out of date. And then there is a question as to to what depth does a Technical Program Manager need to know and what kind of Interview Questions and Preparation he do ? The answer is that it varies 🙂
Here Is My List of Fundamental Technical Workings A TPM Needs To Know :-
TERMINOLOGIES & TECHNOLOGIES LINK TCP/IP and Networking Fundamentals Pluralsight Scalability lecture ( Lecture 9 Scalability Harvard Web Development David Malan) Youtube Semaphore and Mutex Simplified https://www.youtube.com/watch?v=VQFJQJGmixM API Idempotence http://www.restapitutorial.com/lessons/idempotency.html/ http://restcookbook.com/HTTP%20Methods/idempotency/ Hadoop Basics https://www.youtube.com/watch?v=d2xeNpfzsYI Kafka http://kafka.apache.org/documentation.html https://www.infoq.com/presentations/event-streams-kafka Rest vs SOAP https://www.youtube.com/results?search_query=rest+vs+soap&page=&utm_source=opensearch Memcache https://www.youtube.com/watch?v=TGl81wr8lz8 Algorithms and Data Structures - Part 1 Pluralsight MIT 6.004 L21: Processes, Synchronization & Deadlock https://www.youtube.com/watch?v=TVkQ1VeRKt4 Computer Networking https://www.youtube.com/playlist?list=PL6gx4Cwl9DGBpuvPW0aHa7mKdn_k9SPKO RESTful.Web.Services Book https://www.dropbox.com/s/0ozcstot1mj1nfa/OReilly.RESTful.Web.Services.May.2007.pdf?dl=0 Cassandra NoSQL Distilled mongo DB NoSQL Distilled Graph DB NoSQL Distilled OAUTH Blog http://wp.me/p4qoQo-r Machine Learning https://www.youtube.com/watch?v=UzxYlbK2c7E Throughput vs latency http://community.cadence.com/cadence_blogs_8/b/sd/archive/2010/09/13/understanding-latency-vs-throughput Starvation and Deadlock http://www.math.uni-hamburg.de/doc/java/tutorial/essential/threads/deadlock.html https://docs.oracle.com/javase/tutorial/essential/concurrency/starvelive.html Operating systems https://www.youtube.com/results?search_query=operating+systems+lecture https://www.youtube.com/watch?v=9GDX-IyZ_C8 Mapreduce https://www-01.ibm.com/software/data/infosphere/hadoop/mapreduce/ Rabbit Queue http://www.rabbitmq.com/getstarted.html ActiveMQ ActiveMQ REST Standards http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api REST II http://blog.mwaysolutions.com/2014/06/05/10-best-practices-for-better-restful-api/ Immuatable Services http://rigsomelight.com/2013/06/17/immutable-data-service.html REDIS ? Where and when is it used. how is it diff from Kafka http://stackoverflow.com/questions/7888880/what-is-redis-and-what-do-i-use-it-for Understanding REST Headers and Parameters https://www.soapui.org/testing-dojo/best-practices/understanding-rest-headers-and-parameters.html Basic HTTP Response Codes https://www.smartlabsoftware.com/ref/http-status-codes.htm Micro services http://www.infoq.com/presentations/resilient-systems-blue-jeans-network Video Scalability http://highscalability.com/blog/2016/3/28/how-we-implemented-the-video-player-in-mailru-cloud.html SPI H.323 (Video Protocols) https://www.youtube.com/watch?v=wJKbUflnEKM https://www.youtube.com/watch?v=nicIPJ2O5Co http://blog.trueconf.com/reviews-comparisons/why-sip-better-than-h323.html Global Recomendations http://www.theverge.com/2016/2/17/11030200/netflix-new-recommendation-system-global-regional One API, Many Facades? http://www.infoq.com/articles/api-facades?utm_source=infoqWeeklyNewsletter&utm_medium=WeeklyNL_EditorialContent_architecture-design&utm_campaign=03152016news Pattern: Backends For Frontends http://samnewman.io/patterns/architectural/bff/ BFF @ SoundCloud https://www.thoughtworks.com/insights/blog/bff-soundcloud Apache Spark (Real Time Processing of data) http://aptuz.com/blog/is-apache-spark-going-to-replace-hadoop/ Parquet https://www.youtube.com/watch?v=pFS-FScophU&list=PLA70L35Y7kjgvArPec7s6j-lJRJkGM1Yc JASON Formats and Documentation http://jsonapi.org/format/ Twitter by Hired in tech http://www.hiredintech.com/data/uploads/hiredintech_system_design_the_twitter_problem_beta.pdf Hash Table https://en.wikipedia.org/wiki/Hash_table https://www.quora.com/What-is-the-time-complexity-of-hash-table-O-1 http://stackoverflow.com/questions/730620/how-does-a-hash-table-work http://techieme.in/hashing-in-detail-part-one/ http://techieme.in/hashing-in-detail-part-two/ CAP Theorm NoSQL Distilled Pub Sub https://www.toptal.com/ruby-on-rails/the-publish-subscribe-pattern-on-rails https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=6&cad=rja&uact=8&ved=0ahUKEwjFwaSI35vMAhUO62MKHYkoBjUQFgg-MAU&url=https%3A%2F%2Fshare.confex.com%2Fshare%2F118%2Fwebprogram%2FHandout%2FSession10704%2FS10704%2520Multicast%2520PubSub.pdf&usg=AFQjCNEWbHF7UUQfonPxz7WfxP1tpMIXKA&bvm=bv.119745492,d.cGc Stateless applications http://stackoverflow.com/questions/3105296/if-rest-applications-are-supposed-to-be-stateless-how-do-you-manage-sessions Ring pop http://ringpop.readthedocs.org/en/latest/architecture_design.html http://basho.com/posts/technical/ubers-ringpop-and-riak/ Fault Tolerece, Redundant syestems vs High Availability Systems https://www.youtube.com/watch?v=P7gXmKd4Cck Introduction to NoSQL • Martin Fowler Introduction to NoSQL • Martin Fowler Design Patterns Pluralsight Course https://app.pluralsight.com/player?course=design-patterns-on-ramp&author=jeremy-clark&name=design-patterns-on-ramp-m1-overview&clip=3&mode=live kafka vs rabbitmq vs activemq vs redis http://www.kuntalganguly.com/2014/08/message-queue-comparision.html Design Patterns http://www.oodesign.com/factory-method-pattern.html Stateless by Stan Hanks https://www.quora.com/How-did-companies-like-Uber-and-Whatsapp-expand-their-backend-database-structure-rapidly-when-faced-with-a-massive-influx-of-users Perfect Universal Hashing https://www.google.com/search?q=What+is+Perfect%2FUniversal+hashing%3F&oq=What+is+Perfect%2FUniversal+hashing%3F&aqs=chrome..69i57&sourceid=chrome&ie=UTF-8 https://www.youtube.com/watch?v=h2d9b_nEzoA Two strategies for Feed systems http://highscalability.com/blog/2013/10/28/design-decisions-for-scaling-your-high-traffic-feeds.html A comparative study of distributed caches http://blog.engineering.aol.com/2015/08/28/a-comparative-study-of-distributed-caches/ Types of pagination - Offset and cursor https://developers.facebook.com/docs/graph-api/using-graph-api/#paging MQueue Apache Mesos RPC protocol - Uber - TChannel - RPC vs REST Memcached or Riak || What is Riac HTTP Long poll Socket Spotify Playlist Management Inter Datacenter usage ? Data stores in particular Understand the various notification systems Persistent and Ephemeral data ? Big O Latency Hiding Working of Certificates and HTTPS Swim - Scalable weakly consistant infection style process group membership Recommendations Systems Other Interesting Things to Read Links Drop Box scalling https://www.youtube.com/watch?v=PE4gwstWhmc API Pagination, Optional, Include parameters, What goes in the query parameter vs the header, Offset and Limit Cracking the coding interview https://www.youtube.com/watch?v=lAKKYfggb_Q Interviewing at Google https://www.youtube.com/watch?v=r8RxkpUvxK0 Netflix launchingin various countries & What it takes http://www.theverge.com/2016/2/17/11030200/netflix-new-recommendation-system-global-regional Behavioral Interview Questions
One important part of Interview Questions For A Technical Program Manager is to prepare well for behavioral interview questions. In my opinion this is the easier part of the interview. All you need to do is have 4 to 5 different stories / project ready which you can use for various questions. Common questions include
Describe a situation where used your leadership skills to help your project team meet a difficult challenge. Describe a situation where you should you technical aptitude and solved an issue. Describe a situation where you negotiated a win win situation. Describe a situation where you changed process to make it better and more productive Describe the most complex project you have managed from start to finish and what were the challenges you encountered during your path. How have you manage risk in a project. You will find a thousand more when you google but if you have real projects that you have executed well you should be able to answer all of these at ease. Always use the STAR methodology – Situation, Task, Action, Result. Be clear and detailed in you answers. Ask the interviewer if he is following along and if your answer was what he was looking for.
Other Random Thoughts
Interview Questions for a Technical Program Manager.
If you are looking towards more product centric roles I would recommend reading-
Decode and Conquer: Answers to Product Management Interviews – Overall a great book !! Value Proposition Design: How to Create Products and Services Customers Want Product Strategy for High Technology Companies Inspired: How To Create Products Customers Love Salary
Every HR recruiter who first screens you will be asking you about your current salary. You may not want to give it away but you should most definitely know what you are expecting and what the company might pay you. For this I suggest using my previous blog which gives a good salary analysis for technical program managers.
If you do get a chance to interview, you are likely to have a lunch interview. Here is a good article on what to order for lunch 🙂 I am all about the food you know !
Humor
Always show off the lighthearted side of yourself. It helps in lightening the mood. Remember some interviewers are as stressed as you are and many people do not really know what to quiz you on or what they are even looking for. So be polite and professional but try to be light hearted and humorous.
Finally one of the most important thing, in every interview either on phone or on-site you will be given a chance to ask questions. This is very important, it shows the interviewer how well you are prepared and also puts forward things that you care about. Here are some of my favorite :
What in your opinion what are the most challenging aspects of this role or team? How big is the team what are their backgrounds and experience ? What are your short term and long term goals for this team / role? What does a typical day look like for the tech program manager at your organization. What are the primary skills you are looking for ? Preparation and experience go hand in hand one without the other may only get you so far. I am going to try to keep this post current from time to time, so when you do decide to start looking stop by. If you are starting the processes of learning reach out to me [email protected] and let me know if I can help. Please feel free to add your thoughts & comments below and add me to your LinkedIn Network !