Linux Format

The good Coder

Jonni Bidwell meets ThoughtWor­ks’ Ann Mwangi to talk open source, education and life in the Antipodes. Interview

-

Ann Mwangi is a software developer at ThoughtWor­ks, a software consultanc­y with offices all over the planet. Her computing journey has taken her from her native Kenya to Uganda, India and finally Australia.

Ann has mentored for Rails Girls and generally is interested in getting young people into technology. She was at the O’Reilly Software Architectu­re conference, held in London in October 2017, where she was good enough to spare some time for a conversati­on with our Technical editor (who otherwise would have spent that time eating too many delicious treats and drinking tea from the generous snack area).

Linux Format: How did you get into coding and software engineerin­g?

Ann Mwangi: I’m not one of those people who started coding at a very young age. I didn’t touch a computer until high school, just learning MicrosoftW­ord and all of that. When I decided I wanted to go to college I didn’t get my first choice, but computing was my second choice. After studying computer science, my friend and I decided that we wanted to learn more about coding. We thought that what we learned in school and college wasn’t enough for industry. So we got together – this was when I was in Uganda – and contribute­d to an open source project (which we’ll talk about later).

There was a Rails Girls mentorship program so I applied to that. But even before that I had been encouragin­g women to do this stuff, especially in Africa. It’s not a place where women get into coding, or even computers in general. I wanted to address this gap. Many of the ladies I talked to were interested. Perhaps they’d been exposed to some software before, but they just needed some encouragem­ent, or someone to look up to. That’s what I hoped to be.

LXF: Tell us about the FOSS project that you were contributi­ng to.

AM: It’s called The Rapid Family Tracing and Reunificat­ion System, or RapidFTR for short. I really love it. It’s a mobile app for reuniting

refugee children with their families. It’s a cause that I really think is something good. It helps aid workers share informatio­n securely and efficientl­y. Before RapidFTR all this was done with paper and lots of forms. Now we have a central database where children’s details are stored securely, and once we have a network connection on the ground, aid workers can show parents photos on a mobile device.

RapidFTR was deployed during Typhoon Yolanda in the Philippine­s, so I feel I’ve contribute­d to something good. Seeing all these children being reunited with their families through an applicatio­n that I have written… it’s a good feeling! The Rails Girls I was mentoring also contribute­d to this, and for a while it was supported by UNICEF. It’s now grown into a new project called Primero, which is open source (and you can read about it at www.primero.org).

LXF: That’s amazing. You work for ThoughtWor­ks. I’ve noticed you’ve bought your crew – there’s a lot of ThoughtWor­ks people here [at the Software Architectu­re conference]. Please tell me something about this company.

AM: ThoughtWor­ks is an internatio­nal company: we have 41 offices in 12 countries. We write software and we’re passionate about software. That’s what I love about it. It’s not just a “day job” – not something that I do just because I get paid. We care about society, too: we encourage people to use open source software to help society. That’s a nice feeling to wake up to. It makes me happy.

LXF: Sometimes I get that warm and fuzzy feeling when I’m writing a tutorial. Not that I’m saving the world or anything magnanimou­s like that, but it’s just the feeling that it might help or inspire someone. Just as well really, because if I only did it for the money I’d be constantly disappoint­ed (paycut for Bidwell–the secre tariat).

AM: Yeah, at the end of the day it’s not about the money, it’s about happiness and satisfacti­on…

LXF: And that feeling of despair when you realise that you don’t actually understand the material you’re trying to write a tutorial about, and that it’s going to be a long old night.

AM: (Laughs). Yes, but you probably will write a better tutorial that way. If you’ve had to take the time to think about it, then you’ll understand more about where other people will get confused, and can make their lives easier. Otherwise you might be just writing on autopilot, or writing like a robot. And there are plenty of man pages for people want to read that kind of stuff.

LXF: Yes, we definitely want our content to have the human touch. (Maybe if someone

ThoughtWor­ks’ philosophy “We encourage people to use open source software to help society”

told management about all the free content available in the man pages I’d be out of a job, please no one do this). Anyway… you’ve moved around lots. Where did you study?

AM: That’s an interestin­g story. I did my undergradu­ate degree in Pune, India. After that I pretty much went straight back home. When I went there I didn’t really know exactly what I wanted to study. I knew what my first choice was, but I wasn’t able to get into it. Then some of my friends were talking about this very hard course with lots of mathematic­s, and lots of people were failing it. “Aha… sounds interestin­g,” I said, “what is it?” “Computer science,” they told me. My Kenyan friends were failing because there was a difference between the Kenyan and Indian education systems. So we were about two years of calculus behind. So I studied computer science for three years, mostly just to prove to myself that I could.

LXF: Do you get the opportunit­y to take part in lots of conference­s?

AM: Yes, I’ve spoken at two conference­s already this year. This is the third and I’ve got one more after this. I do enjoy speaking. It’s about connecting with people and sharing knowledge. I’ve realised that the more I speak, the more I learn. Every time I give a talk, I get to chat with people afterwards and learn something. You hear a lot of opinions, and maybe you don’t agree with them all, but that’s okay – we can’t all agree on everything, and it’s good to hear different sides to things. It means the next time you’re making a decision or planning something, you have a more informed, broader scope.

LXF: Tell me about your Architecti­ng for the Cloud talk. Everyone’s always talking about the Cloud, DevOps, containers, microservi­ces and whatever other words are fashionabl­e this month. But it’s sometimes hard to see through all this and get to any actual informatio­n.

AM: I’ve worked with teams that have been involved with migrating systems to the cloud. Before that there’s lots of hype, “Cloud this, cloud that”, y’know. So after one project was finished my team looked back on some of the decisions we made in the beginning. Of course, some were good, some were not so good, and some didn’t turn out so well.

We reviewed some of these issues, and we realised that there were some questions that we should’ve asked ourselves before, but we didn’t. By default we think, “Okay, we’re going to the cloud. What provider are we going to use? What vendor? What tools are we going to use?”. It turns out that, instead, we should’ve been asking questions like, “How are we going to manage security? What’s the strategy of the business we are working with?”. All those considerat­ions and questions that we should have asked, that’s what the talk was about. Actually figuring out how you’re going to architect for a solution.

LXF: And I guess in that situation there might be a lot of possibly messy, traditiona­l ground-based architectu­re in place. I can imagine you’d hear from a lot of managerial types who think all of that can be magicked away into the cloud? What goes wrong?

AM: Yes, this is what I call buzzword-oriented architectu­re. So businesses make arrangemen­ts with one particular provider, and you ask them why and they say, “Because everyone is talking about it.” But they haven’t thought about how that provider is going to integrate with their business, and they haven’t thought about who’s going to help with the implementa­tion. We were helping on a project where people were talking about containers. So we implemente­d Docker, but in the beginning we didn’t implement it the way it’s supposed to be done. At the end of the day, instead of it being an enabler, it became a stumbling block. Those are the sort of mistakes people make. If we had thought about it more deeply, then we would’ve realised that this isn’t the way we should’ve implemente­d it, and we should have done this instead.

LXF: Has computing education in Kenya improved in recent years?

AM: I would say so. Years ago it was really hard to get a good computer science education and now it’s much better. But compared to Australia, where I live now, kids are introduced to computers in elementary school, whereas in Africa that introducti­on doesn’t usually come until high school. I feel there’s still a huge gap, but there are policies in place to try and bridge this. They are trying to bring in computers to elementary schools.

The one thing I have a problem with is that we want to teach people what’s in the books. But there’s such a big difference between what’s taught there and what you find in the industry. You end up seeing people who have studied and graduated, but can’t really integrate directly into the industry. Then in industry they’re looking for experience, so there’s a big

ANN ON LI FE AFTER HER DEGR EE “I studied computer science for three years, mostly just to prove to myself that I could”

gap in which newer graduates tend to get lost in. I’d like to see us bridging that gap between what’s taught in school, and what’s wanted or expected by the industry. This is what we should be looking at.

LXF: They’ve recently revamped the computing curriculum in the UK. In some ways this is good because previously they were just teaching MicrosoftO­ffice, which most kids can figure out anyway. But in a lot of ways it’s bad because lots of teachers don’t have the right training to be teaching coding, even at an introducto­ry level. Furthermor­e, in some cases we’re teaching the rudiments of coding to five year olds, so there’s a question of necessity. A more cynical person would say it’s a plan that’s been rushed through by people who don’t know anything about coding and without appropriat­e consultati­on with those that do.

AM: Yes. And even if they’re teaching some coding, is it realistica­lly going to be useful? Do they really need to learn it so early? Do they understand the importance of coding at that age? I don’t know… I think it’s an applicatio­n thing.

I do agree that more needs to be taught in schools, because so much of our lives – especially young people’s lives – revolve around computers and devices. But coding is something different. I think that maybe kids should get to see if they like it first, rather than have it forced upon them.

LXF: This exactly. Coding’s not going to be for everybody, and if you think about the difficulti­es some people have with, say, mathematic­s (the necessity of which is much easier to argue for), then we’re probably going to run into something similar with coding. On the other end of the scale, those people who figure out early on that they love coding will probably learn more about it in their free time than in the classroom. They might even be put off it by slow-moving lessons there.

AM: It’s like teaching everyone art or teaching everyone science. Not everyone is going to go into that field. It’s good to have an introducti­on so that you can make an educated decision about your education, when the time comes. But we need to put more thought into that.

And it’s not just about coding, either. Sometimes you see young people get into coding because “technology’s the future,” but then when they get there they can have a reaction like, “This isn’t what I was expecting.” Because it’s not all rosy and flowery every day.

So it’s not just about coding, it’s about the passion that you have for it. That’s what I think makes a different kind of programmer. Anyone can write code, but do you love what you do? Does it make you happy? That’s what matters. In general, I have a bit of a problem with current approaches to education. They teach you to do this and to do that, how to pass exams. But they don’t teach you how to use your brain. So for the most part schools are just producing educated fools – and that’s a big problem.

LXF: Where in Australia do you live? I spent some time visiting Melbourne, back when I used to live in Dunedin, New Zealand. Lots of people from the latter end up moving to the former, possibly to get away from the cold.

AM: Colder than Melbourne? That’s not very good. I live in Brisbane: it’s much warmer there. ThoughtWor­ks has an office there where about 50-70 people work. It’s a beautiful place to live and work. New Zealand is definitely on my bucket list, though.

On THE FLAWED TEACHI NG OF CODING “For the most part schools are just producing educated fools. That’s a big problem”

 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??

Newspapers in English

Newspapers from Australia