Developer at Buffer, South African in Canada, Katie Womersley

Alfred Lua
Buffer Community
Published in
9 min readAug 25, 2016

Hey here!

It’s time for our weekly Live Chat! 😊 Today, we have Katie Womersley, Developer at Buffer, as our guest!

Here’s more from Katie:

“Hi, I’m Katie! A few of you might know me from hanging out in Slack 😊 I’ve been a developer at Buffer since January this year. I live Vancouver, BC with my husband Justin and I’m born and raised in beautiful Cape Town, South Africa (you should go there, it’s awesome!) Right now I’m joining you from Paris, where I’m working remotely, eating too many pastries and hanging out with my sisters 😊

I’m a self-taught developer who got into coding when faced with an interesting challenge of not being able to work for visa reasons. It was amazing to have a chance to take a totally different direction — my education was in Economics and Philosophy, so this was quite the u-turn!

I love learning new things and blogging/tweeting about it, growing edibles on my tiny balcony, urban cycling really slowly, and DIY (especially with power tools!). I’m happiest when I’m talking with Justin, or sitting alone somewhere thinking about things 😊”

Hey Katie! Thanks for joining us today! 😊

“😊 It’s so great to be here, thanks Nicole!”

Learning to code

I’m curious, Katie — what drew you to coding?Nicole M. Miller

“Great one, Nicole! I was attracted by it being something interesting and empowering (it’s amazing to be able to make my ideas real on the interweb!) and also pretty flexible career I could pick up on my own that had great job prospects!

I really love the challenge of translating thoughts into code into things people can use 😊 and I love being able to work flexibly, whether as a freelancer or remote worker. It feels like a pretty great fit for me!”

Awesome! Last year, I attended a Ladies Learning Code event and was pleasantly surprised by how interesting coding really was. As a copywriter, I found so many interesting similarities between coding and language itself. What’s your take on that?Samantha Bilodeau

“That’s fascinating, Samantha 😊 I also see a lot of parallels — in a way, code is a language — just one that computers (and developers) speak. I think there’s a lot of overlap between how to learn the grammar and vocabulary of a language, and learning a coding language. 😊”

Do you find that there has to be a certain personality type or a certain skillset in order to succeed as a developer? Maybe better said, can just anyone with ideas be a successful developer? — Laura García

“Laura, yes I do, but not what you might expect 😉 My take is that it requires a strong “growth mindset” to dig in to being constantly challenged and confused — I believe anyone who is determined and curious to learn would make an excellent developer.

So, I do think it takes more than ideas, it does take a certain amount of willpower to stick it out to the end as the learning process can definitely feel frustrating and painful at times, just like with learning any other skill 😊

But I don’t think it takes any kind of natural gift or talent, especially not mathematical giftedness as stereotypes might sometimes suggest 😊”

Cool! I’ve always thought a more detail-oriented person, someone who is better “micro” than “macro” would be more successful in this role. Is that just my assumption?Laura García

“😊 I think it depends Laura, personally, I am not detail orientated by nature and am hugely a big-picture person, so I have to work hard at getting the details right, but to me architecting the app is easier. For a naturally detailed-orientated person, they might have it the other way around. I think you need both, and that the best developers that I look up to are able to balance being both detail-orientated and big-picture thinkers (probably, they’re worked hard on overcoming whichever one was their natural weakness!)

Things need to fit together right, and of course, code with misspellings and wrong syntax won’t run, so it forces me to work on both 😊”

Coding Tools

Could you elaborate the tools you use for your day-to-day use? Would like to know if there’s some tool I missed and I should really check out, Katie 😊 — Daniel Baron

“I use Docker for my local environment setup, and for our front-end build process we are using both grunt and gulp (and moving to gulp). Then for js, we have React (woohoo!) and also quite a bit of legacy backbone, but new code being written in React as we transition over.

Our php coding style is based on PSR-2 and we use phpunit for tests 😊

We use mocha.js for frontend testing and might start using Enzyme as our React starts getting to the complexity where it needs tests as well!

And today I wrote 1 node test. But that is the only node 😊 The backend is all PHP 😄”

Sounds familiar! Thanks for giving these insights! What IDE/editor do you use? Daniel Baron

“Sublime Text 3. My trusty steed 😄 Although atom is popular too and Sunil Sadasivan is a wizard in Vim. I’d say, Sublime is probably the most popular on the team right now though 😊 With varying amounts of packages!”

That’s a pretty solid base! What feature is the one you implemented and you’re most proud of? I know that no one attaches ideas to themselves, but if you could name a thing you did, what would it be? — Daniel Baron

“Hmmm, good one. I haven’t shipped a whole feature by myself 😊 But if I have to choose something, the thing I am most proud of is perhaps having smashed 33 Github issues for our users and making our scheduling logic more reliable 😊”

That’s a pretty important step as well! If you could change/improve a feature in the Buffer ecosystem, what would it be? Anything that itches in your fingers to get started with? 😊 Daniel Baron

“From a pure coder perspective, I think I would make our calendar more performant for users with large numbers of updates or who require a very fine-grained control when dragging, say from 9:04 to 9:07 😊

But my big-picture side is also wanting to help optimize our users getting value out of Buffer through doing growth experiments (what I am doing now!)”

Developing at Buffer

What kind of growth experiments are you currently trying? (If you don’t mind my asking 😉) Samantha Bilodeau

“Sure! hehe, you’ve probably seen some already! It is mostly things like in-app modals and banners for specific features like to add a contributor, allowing Awesome users to have a paid team member (we can do this for users now on request! 😄) or working on optimizing our Buffer trials 😄”

Cool! Sounds interesting! 😊 So far, what have your experiments taught you about the users? Samantha Bilodeau

“That we have so many different kinds of users and I definitely can’t make assumptions! 😛”

Yeah, do you do the analytics as well? Do you keep track of those changes and the growth related to it? — Daniel Baron

“No, I’ve not done any work on Analytics — hats off to Tigran and Alex for that! 😄 (*yet! I should say — things change quickly to adapt to needs!)”

I’m just curious… What’s Buffer’s take on the predominant AI culture surrounding programming? (You know, since Buffer thrives off its “human” approach.)

How does Buffer approach the AI question altogether? Are you guys trying to implement AI-based algorithms to your coding strategies? Or, is this something that you’re trying to avoid? How are you guys going about it?Samantha Bilodeau

“We haven’t implemented any algorithms based on AI or machine learning, mostly because there hasn’t been a use case for us where that has been required. We don’t tend to find ourselves in a situation to mine a lot of data say, where that would be useful, but it’s interesting to consider whether we would use AI. My hunch is that if we did use machine learning, we would not be against having it as a tool or assistant, but this would be fully disclosed and transparently shared 😊”

How many code commits do you do per day? How many lines do you commit then?— Daniel Baron

“It varies a lot Daniel, if I am working on a tough bug it might be 0 lines (except for debugging lines!) and if it’s an easy feature, like today, well let me check Github for you 😂

😄 a few hundred lines over 4 commits — ready to ship experiment! But, it was quite a straightforward task 😄”

Whoa, that feels like a lot! 😄Daniel Baron

“It did! But that’s at the unusually higher end 😄 At least I hope they are good lines 😄”

I’m not sure how many lines I commit per day, but it might be the same range 😅Daniel Baron

“Someone once told me, the real test of a good developer is how many lines of code they delete 😂”

What about separating code across repositories? Do you have a backend repo and a frontend repo to keep things clean and the repos per-language? — Daniel Baron

“Right! We have repos separated based on product, so we have one repo for the web app, one for extensions, one for iOS, and so on. I am mostly working in the web app repo, which has both backend and front end, and the api endpoints that the extension or mobile apps would hit 😊”

That sounds a bit mixed up then… Having the web frontend ​*and*​ the backend in the same repo… Your thoughts? Daniel Baron

“Personally, I find it helpful to have pull requests functionally complete — if someone made a change to both (like new awesome team members). It’s nice being able to see all the code related to that change in one PR — otherwise we might miss something, or get out of sync deploying the front-end and backend in two separate repos — e.g. if one deploy is faster and then we have a front-end with no logic 😄 Also, another dev can then grab one branch and say add api endpoint so I can push a feature to dev server. That’s really handy 😄”

Sounds reasonable. How about tagging the releases and using git submodules? 😊 — Daniel Baron

“Hang on, you mean git repos right, Daniel.”

Yup — Daniel Baron

“We do that for the extension, but web app is based on continuous integration — there isn’t a release train with versions, we are deploying many times a day 😊 Sometimes up to 20 deploys!

It is working well for now, but I also would not be surprised if we changed to a more formal deployment structure as the team grows. Things do change quite quickly 😄

😄 This has been super fun! My sisters are wanting me to get off my computer and get dinner with them 😂 so I will have to say goodbye for now!”

Want to get (even) better on social media with a like-minded, positive and supportive community? Join us here!

--

--