For our first ever 'Five minutes with' we caught up with Kevin Millikin, a software engineer on the DevTools team. He’s in Salt Lake City this week to present at PyCon US, the largest annual gathering for those using and developing the open-source Python programming language.
I build bespoke software tools for our developers. For example, we’re currently developing a web-based editor to support people working remotely who need to code in Python - one of the common languages used by our engineers. Creating tools for how we work and the Google infrastructure we rely on gives us more flexibility to solve problems that matter to our teams.
The London campus - it is fabulous. We’re working a hybrid 3:2 model - Monday through Wednesday in the office, Thursday and Friday from anywhere. I’m really enjoying the face-to-face interaction with my colleagues.
I’ve been working from home on Thursday and Friday. I’m a musician and my home office is also my music room. I play bass guitar, baritone horn, and tenor saxophone. Playing music helped tremendously when we were working remotely during the pandemic. It’s a different kind of creative energy – it gives me space to reflect on the problem I’m trying to solve, and helps me tackle it from a different direction.
I’m giving a talk on ‘Beyond Subtyping', a feature of Python. My session highlights various cases where the tools that implement subtyping disagree. As a Python designer you might think these are settled questions, but they’re not because we don’t yet agree on foundational points about how the language works.
In the typing working group there are dozens of participants from companies like Microsoft, Facebook, and Google – it’s a very cooperative, collegial group. We’re all trying to evolve Python in a direction that supports our own users. We’re finding that we all have similar problems, and similar goals too. We’re trying to develop tools that can be used by everybody, so we have to design in a very collaborative way.
Meeting up face-to-face with people I’ve been working with remotely for a couple of years, who are part of the Python language community. I’m a bit of a newcomer in this area and I’m interested in expanding our network and making it more inclusive to external contributors. In practice, it often works as a closed group, and I think a lot of the work could benefit from being more open.
Though a lot of new features are added to Python to help address a specific issue someone is having, they don’t always fit with other new features in a coherent way. One of the things I'm advocating for is to take a step back and decide what our principles are for evolving this part of the programming language we’re working on. A lot of these are in the heads of the developers, but my question is - can we write them down and use that as a manifesto for how language evolution should go? If we had a roadmap of where we want to go in the next 2-5 years, could we be more thoughtful about the changes we make to the language? That would ensure we're building for the future and the tools we will need to create to accelerate AI research.