Terminal Velocity
Jonni Bidwell once again provokes readers by fraternising with a Microsoft employee, the ever-knowledgeable James Turnbull.
James Turnbull is CTO of Microsoft’s Startup Advocacy team and a veteran of the open source world. He’s also a co-chair of the Velocity conference where, in October 2018, he was good enough to take the time to talk to us.
This is his second time in Linux Format, having graced the pages of LXF194 while he was VP of Services at Docker. This time around he talked about his days as a Bash ninja, his work with educational start-up Empatico and, of course, the new, opensource-friendly Microsoft.
linux Format: How long have you been involved with the Velocity conference? James Turnbull: I’ve been coming to Velocity for seven years, I think. And I’ve been a Chair of the conference for about three and half years.
LXF: So I get to spend my day at Velocity chatting to people a lot smarter than me, and probably more interesting than me too, so what am I missing, what’s going out there?
JT: Well, we try and have a vague theme every year, Velocity Europe this year focuses a bit strongly on ethics, particularly in technology. A lot of stuff’s happened in the industry in the last 12-18 months and a lot of technology firms are evaluating how they do business and who they do business with. We decided that was an interesting topic worth focusing on. We’re traditionally an engineering-centric sort of conference, and in our view it’d be good to get the engineers who build these products exposed to some ideas and information about how to apply some of the ethical frameworks and principles, what they should be thinking about.
LXF: You’ve just started a new job at Microsoft. Congratulations.
JT: Thanks. Yup, I’ve been there all of a month now.
LXF: We’ve talked before – my accomplice Matt Hanson interviewed you in 2014 when you were at Docker. You’re also only the second Microsoft employee to feature in Linux Format.
JT: Only the second time… I’m honoured.
LXF: Yep, I met Martin Woodward at this conference in 2017. We had a good chat and we tried to convince our more cynical readers that Microsoft had indeed changed. I’m not one to hold a grudge and I’ve been very impressed with these changes.
JT: Honestly, I get the concern of your readers and I probably know a lot of them too, particularly in Europe. But I think that fundamentally the organisation has changed. You only need to look as far as how much Microsoft employees contribute to open source – the idea that they’re pretty close, if not actually, the largest contributor to open source globally. A lot of companies say things, market things, but Microsoft actually puts its efforts where its mouth is.
LXF: Would you say this change has been pretty gradual, or is it like 1995 when Bill Gates suddenly turned the whole company around to focus on the internet, having previously been focused on its MSN service?
JT: As a relative newcomer to the company I can only really talk about what I see from the outside. A big part of the change has been the result of Satya Nadella becoming CEO [in 2014]. Also I think the organisation has recognised that there is a platform of technologies that has proven to be highly successful.
We’ve seen a lot of workloads run on open source tools, we’ve seen a lot of workloads move into the cloud. Lots of Microsoft’s traditional customers are large enterprises who have adopted those tools and those technologies, they’ve taken that step to a new platform. And any sensible organisation responds to what the market and their customers are doing. That’s overlaid with the fact that the organisation as a whole has embraced a much more open, inclusive and collaborative culture, which I think is a reflection of the markets that we have moved into.
LXF: You’ve written lots of books, so maybe you can help our readers with one of their most common gripes: that documentation for open source projects, at least for beginners, is abstruse,
microsoft’s open source u-turn “You only need to look as far as how much Microsoft employees contribute to open source – the idea that they’re pretty close to the largest contributor to open source globally.”
incomplete or otherwise unsatisfactory. For some reason the man pages just don’t cut it. Should more effort be made to humanise documentation?
JT: This is actually one of my pet projects that I dive into every so often. There’s definitely people that are better equipped to answer this, but I think that one of the biggest challenges in open source communities is valuing documentation.
Engineers as a whole are not awesome with documentation. There was a line someone made at an event a while ago saying that even if you paid engineers to write documentation, they probably still wouldn’t. But I think in open source communities it’s particularly problematic
because code is still king. I think that if those communities reflect on “How do we drive adoption?”, well, we drive adoption by the fact that people can use the tool.
If the only people that can use the tool are engineers with a sufficient level of understanding of how things work already, then we get no newcomers to the community – we only really scale in a peer kind of way. If we want lots of people to use our library or to use our tool, the way to do that is to be approachable, to have good entry-level documentation, both in terms of usage and contribution.
We should find some people new to the project and say, “Look, here’s a couple of easy tickets you can write some code for” or “No one’s looked at the wiki or the readme for three years”. That latter option is an equally valuable contribution to our community than you fixing this bug. There are some good communities – Django’s a good example, it has an amazing documentation team because they’ve basically said documentation is as important for our adoption as having a good solid codebase.
LXF: You’ve moved around a bit since your OSCON interview. Where were you working before Microsoft?
JT: The last couple of years I was one of the founders of an educational technology company called Empatico (https:// empatico.engineering). We make a product to help elementary and primary school teachers connect with other teachers and connect their classrooms to help their students develop empathy skills. That’s a not-for-profit venture that I became involved with; we spent the last couple of years building our product and going to market. We launched our MVP product in November 2016.
This came out of conversations we’d had about… well, there’ve been a few big political events both here in the UK with Brexit and in the US with the 2016 election. A big part of the discussions around that space was that it was pretty clear that people on different sides of politics have a lot of trouble communicating with one another. And certainly have a lot of trouble having empathy for each other’s viewpoints.
So we started thinking about how to solve this problem, we looked around and research indicates it’s very hard for adults to change their perspectives. If an adult has a long-seeded view about a particular cultural group or a particular political or social issue, it’s very hard for them to move that position.
Children, on the other hand, particularly those aged 5-11, really haven’t formed a very strong view of the other. So we wanted to introduce those children to others from different backgrounds, different countries, different socioeconomic groups, different religions. That way, instead of them constructing their view of the other based on popular culture or their family or their community – which especially if they live in quite a monolithic community might be a somewhat stereotypical view – what if instead they met somebody who became the figure they saw in their mind, rather than the stereotype?
An example would be if you grew up somewhere in rural Tennessee or Arkansas. Some of those communities are very monolithic – there are not many people from different backgrounds, and the life experience of, say, a kid growing up in urban Chicago is a very different one. Likewise those kids have never seen farm machinery or farm animals, and have never really had any idea of what life outside a big city is. So instead of having a stereotype perpetuated, we created a product that allows a teacher in that rural area and a teacher in Chicago to meet and match with one another.
We provide curriculum for classrooms to do activities together (which change all the time), we provide a video conferencing
facility and allow the teachers to introduce the classes, and at the end of it they’ve hopefully met someone new and learned something. One of the first ones we did during the early prototyping phase saw this group of students cluster round a laptop – they’d obviously discarded the activity they were given and were talking to the students at the other side. So I leaned over someone’s shoulder and had a look at what they were up to.
These were students in a school in Arkansas talking to students in New York. They were complaining about food in the cafeteria. They both had ‘Pizza Tuesday’ and they both hated the pizza. So they were comparing notes on that, and this launched into a long discussion about food in their respective cafeterias. It was really interesting to see – they were quite shocked to discover that they shared that same experience, and that was what we wanted to build on.
LXF: You’re originally from Australia. How did you first get into computing?
JT: I guess I’m what you might call middleaged. I had a computer as a kid and guess I played around with it a lot, but I never really thought about it as a career, or something I’d like to do. I guess it’s hard to judge at that age whether you’re actually good at something, because you don’t have a comparison point. I ended up going off to university to do a liberal arts degree. One of the jobs I had to pay my way through university was reshelving returned books in the library.
One day the system that ran the library broke down, and someone said “Oh, James knows about computers”, which roughly translated to “James has a PC”. So I wandered into the data centre and there was a bunch of flashing lights, a message on the screen and a bunch of manuals. I found the message on the screen in the manuals and followed the instructions and everyone said “Oh wow”, and I was offered a job as an IT technician. Being a librarian back then was nowhere near as technology-centric as it is now. I did the IT thing for a couple of years, and 20-something years later, here I am. LXF: What does your Cto-in-residence role at Microsoft involve?
JT: I work with a group of folks, largely CTOS and former CTOS of start-ups, and our objective is to take advantage of some of the technology and resources that Microsoft has to help start-ups grow – particularly those at the Series A funding stage. We teach them “This is how to build a product”, “This is how you put together a team”, “This is how you solve these sort of architectural problems”. It could best be described as providing advocacy functions for start-ups within Microsoft.
We also collect a lot of feedback from start-ups that use Microsoft products, in order to improve those. It’s an audience I think is deeply fascinating. They’re fairly agile, they look at product and they look at tooling in a very different way, and I think it’s valuable input. LXF: I was looking at your blog, and was pleased to find some nice Bash scripts and such there. I dabbled with lots of that sort of grep and sed voodoo back when I was young, but I’m a little rusty these days. But also, in a world of containers and microservices – things I don’t really understand – I can’t help but feel this kind of hands-on approach doesn’t really apply.
JT: I think that’s probably true, my skills have probably atrophied a little too. 15 years ago I was probably a pretty good Bash programmer, it was a tool I used extensively. But I think other tools have supplanted that, configuration management tools like Puppet and Chef. Then containers came around and we have other tools like Terraform and stuff. Some of the things I did with those tools I stopped doing, but I think for every engineer, certainly every back-end engineer, there are always little tasks that you still do.
Grep is a good example, I’m always looking at things, and years of force of habit means if I need to search and replace I’ll use sed – because I can just knock that out on the command line, rather than write some code, or open up an editor and run a regex. So that’s still useful if you’re a working engineer. I’m not convinced that people writing extensive
Bash programs should be writing extensive Bash programs any more, but little productivity tricks are still useful. And they’re fun too.
LXF: My feeling is that the new generation of engineers missed out on all these fun and games. It’s quite a strange way of thinking to come back around to.
JT: I think it is. Certainly I know a lot of younger engineers whose first editor was something like Visual Studio Code.
I can’t remember who it was, but I was watching this young engineer type the other day and I realised she was using
Emacs shortcuts in VS Code. She had no idea they were Emacs shortcuts, it was just that the person who taught her to navigate around had obviously been an
Emacs user. So I showed her Emacs and she said “It’s not as pretty as VS Code”, but she immediately knew how to navigate around it.
I pretty much use vim keybindings for everything I do, despite not spending a huge amount of time in command-line
vim. But it’s not necessarily a bad thing that we’ve evolved better versions of some things. I definitely find it significantly easier coding in a fully fledged editor. I have a very customised vim setup which took quite a long time to build. It probably took me about an hour and a half to replicate that in VS Code, which suggests to me I may have wasted quite a lot of my life [messing] with vim configurations.
James on getting his first Job “I found the error message on the screen in the manuals and followed the instructions and everyone said ‘Oh wow’, and I was offered a job as an IT technician.”
LXF: But it also suggests the VS Code is pretty cool and eminently customisable. JT: Absolutely. Even before I worked for the company I used it and I thought it was a great tool. The list of plug-ins is amazing. I like the fact that it’s intuitive in a way that perhaps not all command line tools are.