Kyle Adams Compares Dev and PM Roles

Microsoft Developer and CS alumnus Kyle AdamsRice University computer science alumnus Kyle Adams (B.S. ’15) is happy to be working as a software developer again. He was also happy with his previous role as a Microsoft program manager (PM) and said, “The roles are satisfying in different ways.”

Adams – like most PMs – felt a sense of pride in shepherding a program through the full cycle of design, test, and implementation. “But the day-to-day accomplishments are less tangible than committing X lines of code as a software developer,” he said.

Neither role is what he had in mind when Adams arrived at Rice as a Math major, but his O-Week advisors included a computer science major, Sal Testa. “Sal suggested everyone try a CS course, and I struggled at the beginning because I had no experience in CS. I still switched from math to CS halfway through the first semester because as much as I love math, it was pretty theoretical. In CS, I was able to apply what I was learning to real world problems. I was doing better in COMP 140 by the end of the semester, and I approached Luay [Nakhleh] about being my adviser.”

Nakhleh became his adviser and offered Adams a spot on his research team for the summer. “I worked on computational biology research with Luay for two summers while I was at Rice, and although the world of academia is very different than industry, those summers allowed me to transfer skills learned in in the classroom to another set of problems. That environment wasn’t created to satisfy a specific learning challenge. It was a series of problems that required applying what I’d learned to other topics without a prescribed methodology. In academic research, it’s more about solving a problem with the toolset you have at hand.”

After his second summer of research, Adams applied for and won a highly competitive Kleiner Perkins Caufield & Byers (KPCB) Fellowship, ironically following once again in the footsteps of Sal Testa, a KPCB Fellow the previous year.

Adams said, “The way the KPCB interview process works, you apply both to the fellowship program, and once you’ve passed the first few rounds of interviews, you apply to the individual startups. The startup where I was placed had about 15 employees and I was the only intern. If I had worked only in the small startup, without the layering of other KBCP programs on top of that, it might have been a bad experience. But meeting up with 50 KPCB Fellows in other activities kept me feeling like part of larger group.”

He credits that startup internship for exposing him to the wide variety of roles in a technology company. Adams said, “I was mentored a lot in that internship and got a look at both soft engineering as well as how to run a company. I remember being surprised at how many people aren’t working on the product itself.

“Everyone worked in the same room, so I got to see what everyone is working on, and that is what introduced me to PMing. In a small company like ours, there was only one PM –although the founder and CEO also acted as a PM. They all had their visions for the product and worked together. Everyone is responsible for the product vision, everyone has a lot of input. That was the sort of thing I really liked.”

The startup environment also helped Adams chart his next career step. Because he felt more drawn to the role of PM over software developer, he recognized his search had to include large companies. He said the smaller companies, like his internship, had fewer PM positions and they usually required several years of experience. Only the large companies offered PM roles to recent graduates.

“I was also not sure what types of products I wanted to work on,” said Adams. “Companies like Microsoft and Google have hundreds of products, so I would be able to move around more freely. Changing teams inside a company doesn’t have the same lifestyle impact as changing employers. That large set of options is what drew me to Microsoft.”

For his first 18 months, Adams worked as a PM in storefront recommendation systems for Microsoft and Xbox products. The programs suggest movies, music, games, or other products using inference based on previous purchases and behaviors.

He said working on the music referral system was a lot of fun. “We created a radio system that worked similar to Pandora. But instead of the manually created meta data used by Pandora, we used machine learning to analyze the actual files, which went a lot faster. One of the recent demos selected music based on your facial expression. We first determined your mood, and then selected music based on whether it was upbeat or used certain instruments, which we determined using machine learning.

“It involved a lot of algorithms, hundreds of thousands of data points, and collaborative filtering to make predictions about the types of games, apps or computer items our customers might like. I did all this as a PM, and it felt good to get everyone in agreement, move forward with the plan, remove road blocks so the developers could program. But I began to want to see more concrete accomplishments at the end of each day, so I talked to my manager and switched over to the dev side of my team.”

Adams said his manager first encouraged him to try coding in the team’s codebase. On a day-to-day basis, he was performing the same work that the developers on their team would do. “And it all came back, even though I made a lot of mistakes in the beginning and was using a language I had not learned at Rice,” he said.

He said although he rapidly refreshed his programming skills, it was more important that he had a strong grasp of algorithms, what he considers the computer science aspect of the technology industry.

“A good software engineer can turn a fully-formed idea into a working program. They will know how to get everything off the ground. But a lot of times, it takes more CS knowledge to come up with the solution that the code implements. I think you need to be able to work from both sides, the programing and the CS aspects,” said Adams.

He said employees have to enjoy their jobs, but even if they are not passionate about coding they can still be successful in the industry. His own success in the PM role had roots in the many different activities he pursued at Rice. From water polo to tabletop theatre, Adams said interacting with many different people helped him see things from different perspectives.

“Get out and explore different areas beyond your CS courses. That was integral to my own experience. When it came to seeking PM roles, I had to do some white boarding but my interviews were more about design. Because of my different interests, I had the ability to put myself in others’ shoes and empathize with them. Getting under their skin helped me design for their needs. A lot of the PM’s job is based on understanding other people.”