Kathryn S. McKinley is a senior staff research scientist on Google’s cloud engineering team who’s “working on performance and system efficiency,” according to her webpage. In June, she made a special appearance at the Association for Computing Machinery‘s Special Interest Group on Programming Languages, offering attendees at their virtual conference a chance to “Ask Me Anything.”
Relaying the questions was Michael Hicks, a computer science professor at the University of Maryland, who described McKinley’s work at Google Cloud as data center capacity planning — “trying to balance availability while being a wise provider of the world’s computing resources” — with a special interest in making the tech world more inclusive. McKinley was also previously a computer science professor at the University of Texas at Austin (followed by a stint as a principal researcher at Microsoft). In addition, her webpage touts her work on academic research that “aspires to make programming easy and the resulting programs correct and efficient.”
So McKinley was fully prepared to address a wide range of other topics and adventures in the world of high-powered development, eventually touching on the Rust programming language, memory management, mentoring, and her experiences at Google.
The Need for Leadership
When a questioner asked how someone entering the industry could get involved with mentoring students, McKinley suggested contacting the Computing Research Association, or organizations like Mentornet. Companies can play a role too by offering internships, which helps everybody, including the participating company, “because it helps you vet new people, and you can hire people who were your interns.”
But she also suggested people interested in mentoring try collaborating with the faculty back at their old college to find students to mentor. “That’s one of the things that I do the most, still…”
A later questioner asks how companies can structure collaborations with academics to navigate concerns around, for example, NDAs and intellectual property. One option: partnering on open source implementations. McKinley pointed out that because of ongoing sheltering in place, all of Google’s intern projects this summer are open source. “We already had some of that, but maybe that’ll be the best model going forward. That encourages even more participation by students, because then they know they can keep working on stuff when they go back to their university — that they don’t lose that opportunity.”
Another question asked about the importance of leadership, and McKinley begins by saying “I’ve always had a very strong sense of social justice, and wanting the world to be a fairer place than it is.” She remembers the support she’d enjoyed as a student from women’s workshops, adding “I wanted to help give back to the community. And so as soon as I had a little credibility, research-wise, I wanted to use it to make the community a better place…
“Even if I didn’t have the research credentials, I would’ve tried. Because I just — I want to feel more welcome than I am. I still have junk happen to me that I don’t enjoy.”
But she’s also looking beyond her own experience. “I want our black friends and colleagues to feel welcome and happy in our community, and choose this as a fabulous career. Computing’s really changing the world, all the time. If we’re leaving all these populations out of how we change the world, we’re going to change the world in a way that doesn’t work for them. And we’re going to miss out on the best ideas. All the diversity research shows that when you have different points of view, different backgrounds, different races, different genders, you come up with better, different solutions than if you’re just all one homogeneous group working on a problem…
“I have felt that that drives me more than anything — just wanting to be in a community that’s more welcoming to people like me and people of color.”
Segueing into the next question, Hicks noted that “On the flip side of encouragement, there’s also protest” — turning to a question about the Google employee walkouts of 2018 seeking changes in the company’s sexual harassment and diversity policies. “How did that affect you, and have you seen any conscious structural changes in response to it?”
McKinley begins with some context. Yes, she participated in the walk-out — and she remembers that inside Google, the accusations of past sexual harassment had created a lot of friction. “Several of the vice presidents, who had a lot of power inside Google, had no idea that this had happened.” When her own group’s vice president asked what reforms they should implement, “I said you should get to see all the reports. You should know what’s happening. Because if you don’t know, how do the rest of us trust the system is working?”
Since then there have been some structural changes at Google, she explains. “They’re still not telling the rank and file how many reports we had this year — but at least somebody’s watching. At least, the hierarchy, the vice presidents, get a report of their whole org, so that there is some accountability.”
“And like any large org, could Google do better?” she asks herself out loud. “I’m sure they could do a lot better.” And then she asks and answers another question out loud: Are they trying? “I saw some stuff that looked like they were trying,” she begins, “and then I saw some stuff that they just don’t want this to be a big external problem…” She says some people lobbying for change were apparently fired, and “I think that’s a tragedy. Do I need to leave my job over it? I need a job, right? So how do you change big institutions?
“You continue to advocate for change. And I’ve done some of that internally. Could I do more? Yes, I could do more.”
Garbage Collection in the Cloud
One questioner asked if the properties of data centers — for example, lots of memory or the types of applications — made it no longer essential to have the automatic memory management capability known as “garbage collection.”
But she seemed to side with the use of garbage collection — calling it a question of economics. “If a customer buys a 32-GB VM instance, and you can leak memory, because you run only a short time, then maybe you don’t need garbage collection… But if you’re a long-running application — you keep your server up for a while — eventually, any memory that leaks is going to be a problem because you’re going to run out of memory. You can make your instance size bigger, but then you pay more — but you still run out of memory. So you need garbage collection to help you operate in your envelope of what you’re paying for, and if you don’t have garbage collection you pay more money.”
And inevitably, someone asked a question about Rust. “Given the memory safety and high efficiency provided by the Rust programming language, do you think that existing system software written in C will eventually be written in Rust? (Or maybe a future version of Rust?)”
“I see a lot of companies making investments in Rust or languages like Rust,” McKinley answered. “So I’m hopeful that a bunch of bad C code can be replaced by a more principled language that gives you performance as well as safety.” While replacing the software is hard, she notes “the complexity and the necessity of not having bugs in software,” adding “We’re still in the early ages. There’s still huge amounts of software that gets huge that are written in C and C++.”
And speaking of languages with safety guarantees, “Rust is an interesting one,” she adds, “because it makes programming harder… Instead of running out of memory, or having a pointer dereference problem, you have to spend more time getting it correct from the get-go. So it’s an interesting trade-off!”
- Rust core developer Steve Klabnik explains WebAssembly and answers questions from an IT company.
- A diverse collection of programmers share both their skills and their career experiences on YouTube.
- Technology sociologist explores the historical role of games in AI research.
- Mozilla research engineer Felix Klock does an “Ask Me Anything” interview.
- New forays into AI-powered code-generating tools.