We've started up this new series to shine a spotlight on the different DEV moderators — trusted members and tag mods — who help to make DEV a kind, helpful place. Aside from spreading good vibes and helping fellow community members, these folks also assist us with removing spam and keeping posts well organized by adding and removing tags as necessary amongst other things.
If you want to learn more about what these awesome folks do, I recommend checking out our Trusted Member and Tag Moderation guides. There is information about how to apply in both guides if you're interested in joining up as a moderator.
This month, we'd like to put the focus on Andy Piper, a long-serving tag moderator here on DEV with many tags under his purview (#devrel, #mqtt, #micropython, #circuitpython, #arduino, #esp8266, #esp32, #openapi, #gear, #basic, #raspberrypi, #pihole, #iot, #mastodon, #fediverse & #activitypub). Andy is a super cool developer with a rich history in DevRel (previously at Twitter) and a strong interest in maker projects — think Raspberry Pi and 3d printing. I greatly value his experience as a developer and appreciate his help with moderating the community here at DEV. Not to mention, I feel very lucky to count Andy as a friend. Thank you, Andy!
Let's jump right into my questions and Andy's answers!
Michael Tharrington: Can you tell us about your developer origin story... like how you first got into tech and what was your first real developer job? And then just basically how things went from there?
Andy Piper: Yeah. I've been around quite a while in life and so my origin story goes back to the 1980s, which makes me feel very old, but I'm not that old, really... And so I got into tech in the 80s.
My parents got me an 8-bit computer which was called an Acorn Electron. So Acorn was a company in the UK that was kind of competing or it was around the time of the Sinclair ZX Spectrum, Commodore 64, all of those kinds of computers back then. And Acorn was a company that won a contract to supply computers to schools back in the 80s. So every school had what were then called BBC Micros — it was a program with the BBC (broadcaster in the UK) to encourage kids to learn to code. So, I learned to code using a language called BASIC which is still around. Somebody's just posted about a BASIC interpreter on DEV this week [referencing Announcing MiniBASIC]. BASIC stands for Beginners' All-purpose Symbolic Instruction Code and it’s a good language to learn to code in.
So, I started off back in the 80s before the Internet was around, and when I was at school I had a little company with a friend selling software to some other schools — educational software for chemistry. I didn't get into PCs and Windows until a lot later on when I was in my teens. I had a degree in history, so it was difficult to get a job in tech.
In the late 90s, I managed to get a job at the UK Post Office on a management training scheme in their technology division. But I still wasn't programming properly; I was kind of doing helpdesk-type work. But I was coding for myself, so I am self-taught as a developer completely — I’ve got no sort of formal education in computer science or anything.
After four years at the UK Post Office, I'd learned on-the-job stuff like UNIX and version control systems that came before Git called CVS. And, I was working with some consultants from IBM who introduced me to their manager. I ended up going to work for IBM as an experienced software engineer, basically in their integration practice. I did 10 years at IBM.
Then I was doing a lot of public speaking and our community work with different things like Internet of Things. There's a technology called MQTT which is for sending messages between small devices (which was from IBM), and I ended up working for VMware on a cloud platform called Cloud Foundry as an advocate. Then I was at Twitter for nearly nine years doing API stuff.
So, I've done a ton of stuff, almost all sorts of hobby/in-the-background community stuff which is interwoven with being able to do stuff professionally as well.
Michael: Nice. That's really cool. And I've got a question that wasn’t listed, but jumping off from that, when do you think you realized that you were the computer person in the room or the most technical person? When-abouts would you say you kind of landed on that realization?
Andy: I was always! Yeah, I was always the one at my school. There was kind of a very clear group of nerds around. You know, when I was at school, we had a room that was the computer room — the room that had the computers — and everybody went to a computer lesson in that room. Everybody didn't have a phone in their pocket and, you know, computers weren’t everywhere, so I was always really into that and into that group.
When I was at university, a lot of people were coming to me for technical support and help. They'd often got a laptop and they didn't know how to get on the university e-mail system — things like that. So I ended up writing a help sheet for the other students: this is how you sign up for university e-mail, these are the commands to type to access the system — I wish I still had that actually. But that was very much my first instructional piece. I really wanted to work in tech and when I got to the end of my university course, I started to go around and try to do job interviews. I was really disappointed to discover how hard it was, without having a technical or science degree, to even get my foot in the door for most of those interviews.
But yeah, I decided pretty early on it was either going to be tech or teaching. And, I've been fortunate in the end to sort of combine both just through how I behave and the kind of events and communities I've been involved in. But again, I don't have any formal education in how to educate, I've just learned it along the way.
Michael: Awesome, that makes sense. Okay, moving to another question, if you could go back in time to when you first started as a developer and give yourself one bit of technical advice and one bit of non-technical advice, what would you tell yourself?
Andy: So I thought hard about this because I was going through these questions earlier and I'm going to give you the non-technical advice first, which is I think it's taken me a long time to really learn how to listen. And I still interrupt people quite often! Also, patience. I think patience and listening are the two things that I value the most and I've learned the most about. I think early on I had a real problem with not listening — trying to invent solutions first to problems. I'd get impatient if I couldn't solve something immediately or if people behaved irrationally (or what I thought was irrationally)... I didn't always just absorb the situation. So those are two things that I think I would encourage myself to think about at an earlier age.
Technically, I struggled a little bit with the question because one of the bits of advice I often give to folks who come to me for technical advice... and they sort of say, you know, what programming language should I learn? It doesn't really matter because everything changes all the time. So, I was trying to find a way of telling myself 20 years ago that and then I actually thought technically, I think the thing that’s been most valuable that would be better to start using earlier would be source control. And it's a very boring thing to say, but I'm sure that I lost so much time by not being able to go back to where I started or track the changes I've made in the past.
And systems like Git are not easy to learn. I've tried to teach them to people before and they are not always intuitive. I still have to go back and read the manual to figure out how to do stuff. So, I think technically learning about source control earlier would have been better, though it didn't really exist when I was just setting out anyway. But yeah, just getting comfortable with that concept. Even still, the last few days I've had several computers around me and I've got bits of code on each of them. I'm thinking, why didn't I just put this stuff in one place and go from there? It's just for my own lack of technical knowledge.
Michael: Is source control the same as versioning?
Andy: Yeah, basically, versioning is the ability to go back through history — decide where you're at, share that state between machines and people.
Michael: Cool, so you know when you mentioned CVS earlier as Git version control, that was like the early version?
Andy: Yeah, yeah. Before that, there was another system called RCS, and then there was CVS, and then there were a couple of other things. And then eventually Linus Torvalds decided that he hated them all and he was going to write his own. And that's why we have this thing called Git. He invented Git to manage Linux — the source control of Linux basically — and now it's taken over the world.
Michael: Thanks for that. OK, cool, I'm moving on to question 3. As a developer, what are your specialties or areas of focus?
Andy: So, I guess it tracks with my interests and my background. When I was at IBM, I was doing a lot of stuff to do with messaging. Programs sending messages between one another... sending data between one another. There's this technology called MQTT which is a lightweight messaging protocol for sensors and other things. My 3D printer is sat here right now using that technology, which is something that I worked on 15 years ago at IBM, and it's publishing every single update. Every single time it moves the print head, it's sending a little message into the cloud saying the temperature is 200 degrees, I've got this much filament, and I am moving between here & here. So, MQTT messaging and Internet of Things is one thing that I'm super interested in, for historical reasons, because I know a lot of stuff about it.
APIs! APIs are how programs interact with programs. So you've got how hardware interacts with the world through MQTT and other messaging software. You've got how programs talk to one another. So, like posting something new on DEV, there's something behind that. That is the DEV API that is supporting the ability for a user to post that information into DEV. You don't really see that because it's all done through your browser, but I've got a ton of background with that stuff.
And then programming language... the one I normally reach for now is Python because it's easy and straightforward, and it's on all the platforms. It doesn't require me to think too hard. It's a very expressive language. It lets you kind of write code as you think about it usually.
And those are the kinds of things I have spoken about at conferences and in the last couple of years.
Michael: Cool. OK, moving on. How did you first discover DEV and what encouraged you to become a moderator for the community?
Andy: So, I was following Ben and @ThePracticalDev quite a few years ago and I guess the question is how did I discover them? And I don't remember, but I was following them and then DEV came out from @thepracticaldev as a thing and became a new site. And I really liked the look & feel and ease of use of it. I started sharing some of my stuff and I could write in a Format that was familiar to me — Markdown. And, I found myself going there most days or fairly frequently to see what was new or what stories were bubbling up on the front page.
And then, from the moderation perspective, I love to see things stay on track and I think that it's important that communities can have off-topic conversations, but unless there's a core purpose for the community, then things rapidly disintegrate. So, I always think that keeping on topic, like making sure that if we're talking about web development, we're talking about web development. We're not talking about, I don't know, spaceships or something totally different.
And also, moderation can be tricky with people. People have different opinions. People don't always realize there's another person on the end of the screen, on the other end of the words they're typing. So, there can sometimes be communication breakdowns or misunderstandings... and just trying to keep everything friendly and conversational — it's something that is kind of part of my DNA.
When I started at Twitter and I inherited Twitter’s developer forums, there had been no moderation. They were very negative and everybody really just came there to complain and shout, and that became a self-fulfilling or snowballing behavior and everybody came in just to shout louder than everybody else, rather than sharing solutions to problems. And so, I'm quite keen on keeping conversations healthy as best I can, and that's why I offered to help if I can.
Michael: You certainly do help! Thank you.
I'm interested when you inherited Twitter's developer forums, what did you try to do to kind of move the situation back to a more productive, “let's think of solutions” mindset rather than throwing our hands up or pointing fingers at one another — was there anything that you could kind of point to?
Andy: We started over and were more present, or at least one or two of us were more present. We didn't want to lose the information that had been there previously. So, we — and I didn't feel great about it — but, what I did mostly was to go through and delete, remove, mute the off-topic content. We moved to a different system, a different platform for running the forums — from Drupal to Discourse. When we did that migration we went through and got rid of everything that was openly offensive. You know, any inappropriate conversation and comment because it just drove people away and drove people to just deliver more of that kind of input.
So, we really started over... created new topic categories, created new ground rules, and enforced those ground rules! If people were not going to behave in the way that was expected, then we were going to have to ask them not to be there. When I first started, six months before we did this sort of reboot, I spent a lot of time every morning, again being a geographically distributed team (as we are at DEV overall as a group of moderators), you know, certain time zones other people aren't gonna be online and you're just going to see a wall of spam... and you're just going to be clicking to get rid of it all. And I'm not saying that's a problem with DEV completely, but certainly, back in the day, that was absolutely the problem with the Twitter forums. It was just overrun.
Michael: I'm going to jump on to one last question... What are you working on or learning about now? Are there any projects that you’ve been particularly focused on (personal or professional)? Is there anything that you’re currently learning (new or old tech)?
Andy: So, what I'm learning at the moment... I'm in the middle of a career break (accidental career break) right now. So, I'm spending a ton of time learning! At the moment, it's related to software development, but also not... I'm doing some learning, some 3D printing, and computer-aided design — 3D modeling. So, I'm learning all those things. My wife and I just set up a maker studio called Forge & Craft so that's where I am right now.
I've been writing recently about the Mastodon API and Python, and I'll be writing some more about that soon, so I'm excited about, again, APIs, the Fediverse conversational communities. And I'm doing a lot of fun things with, again, stuff I've written about in the past on DEV, which has tended to be MicroPython. So, small devices hacking on little connected screens that I can like send MQTT messages to that are going to be a dashboard on my pegboard here.
And, I'm also really enjoying going back to my roots with 8-bit computers. So I've got something over here which is about the size of my palm; it's called an AGON Light. You just plug it into a keyboard and a screen. It doesn't go online, you just write BASIC programs on it. It's cool; it's nice. It's really the kind of thing I grew up with. Except now instead of being, you know, this big [gestures widely], it's this big [gestures something hand-sized].
Michael: This is all really interesting stuff! Can you just talk briefly about what you do as far as 3D printing goes... what have you been working on?
Andy: I'd been wanting a 3D printer for a while, mainly to put my electronics project into cases. And so, I borrowed one from a friend just after I finished my last job. And then there's been some new ones that have come out and I got really into how 3D printing works.
I bought a really fancy one that can change the color of filament and things like that. So I'm mainly making things like cases for electronics. But I've been learning... I've bought a really cheap one and I’ve bought a really expensive one. The cheap one was like $80.00 from China and it sits on a little trolley here... the code is open source for it and I can program it with a Raspberry Pi and do cool stuff with it. The high-end one is more like the Apple of 3D printing. It's like, I'm not going to fiddle with this, I just want it to work. I don't want to start, you know, breaking it...
I've been making gifts for people. There's all kinds of stuff I’ve been making. I've mostly been making stuff for my own workshop, but I've got a ton of ideas that I like to play with.
This is the classic thing that they call the Benchy. So this is the benchmarks thing... like any 3D printer, you're expected to print this thing because it tests things like the curves and the circles, how closely you can see the layers, and stuff like that. So this is kind of like a benchmark test for 3d printers, and I've got literally got one on my desk here.
Michael: It really reminds me of a rubber duck. Just has that look to it.
Andy: Yeah, definitely!
Shortly thereafter, the call dropped, but you're not missing anything — we had completed the interview!
Thanks so much for checking out this interview. Stay tuned for future issues in this series!