DEV Community

Sam Jarman 👨🏼‍💻
Sam Jarman 👨🏼‍💻

Posted on • Originally published at samjarman.co.nz

Machine Learning and Developer Experience with Carolyn Saund

This is a article from my "Dev Chats" series where I speak to an awesome developer or techie every week or so. You can read more here. Let me know in the comments if you find these useful to you!

  Carolyn Saund, life-long guac enthusiast.

Carolyn Saund, life-long guac enthusiast.

 

Introduce yourself! Who are you? Where do you work?

Hi! I’m Carolyn. I graduated from Tufts university in beautiful Somerville, Massachusetts, USA with degrees in Cognitive Science and Computer Science.

For the past two years I worked at a social robotics startup called Jibo, where I started out building the robot’s SDK and transitioned into writing more far-reaching backend systems that focus on infusing character and personality into Jibo’s emotions, speech, and interactions.

I recently moved to Cogito (founded by a Kiwi from Wellington!), which does conversational analysis. Although I’m technically on the web team here, my role involves full-stack development and lots of thinking about data architecture.

When I’m not typing furiously on overly-clicky mechanical keyboards, you can find me on the field playing ultimate frisbee or stumbling through mountains with friends.

Who or what got you into programming?

It was actually a stroke of luck that my university’s Cognitive Science program required two CS classes. I signed up for the intro course my very first semester “to get it out of the way.” By the second project I knew I loved it, and by the third I was ready to major in it. When I went to tell my professor, he laughed and pulled out a piece of paper; he had already registered me as his advisee! I guess sometimes you Just Know 😍

You seem very interested artificial intelligence and machine learning! What is it about this field that interests you?

My background in Cognitive Science really informs my computational interests. I approach programming as a tool to be used to better understand the brain and our own thinking systems. It wasn’t until I worked on, developed, and shaped a huge software stack that I learned to appreciate the beauty and complexity of large software architectures. And even still, the architectural parallels between software and human thinking systems are amazing.

AI and ML are still nascent fields, and although formal cognitive study has been around since the before the 50s (Minsky’s Society of Mind is considered a [thoroughly unimplementable] classic), the computational tools scientists now have are unmatched, and unlock whole new ways of thinking about thinking.

It seems to me that once humans know how we ourselves think, there’s basically limitless potential for social impact. You know how your brain just sometimes does really cool shit? Imagine if we knew how to invoke that all the time. Imagine if we knew how to balance and exploit every pathway in our thinking systems. Every single evolutionary fluke or “life hack” would become available to us.

What did working on an SDK (at Jibo) teach you about Developer Experience? What differences are there between developers and regular consumers?

With consumers, you get the luxury of more-or-less telling them what they want. Developers know what they want, though I’ve always found them incredibly friendly and forgiving. Generally, responsiveness earns more points that being correct right off the bat, and I think that’s because of the community feeling. Devs like helping devs because, hey, we’re all devs! And at the end of the day, owning up to bugs and showing you’re listening and responding to community needs is enough to win over friends.

The biggest similarity I see between groups is that everybody wants their interactions to be simple. More and more nowadays, if the consumer (dev or casual) needs to think about how to use your product, you’ve already lost. A simple interface, sensible defaults, and a foolproof safety net (think: you CANNOT fuck this up even if you try really hard) go a long way. Basically, “pretend the user is drunk” holds true for devs as well as regular consumers. 🍻

You’ve experienced a computer science education in both the USA and New Zealand. What were the differences and which do you prefer?

The biggest difference is definitely the amount of work I was expected to do outside of class. In the US, at least two of my undergrad classes were 40+ hours/week. For one class. There’s this huge expectation of spending a ton of time working on problem sets and projects, and I truly believe that 100% of the work I did made me a better engineer. “Better,” in this case, means more thoughtful and aware of the deeper problems which underlie and inform implementation. So in New Zealand I felt, at least time-wise, underextended.

I also felt really silly raising my hand to ask questions in class. In the US, my classes were generally fueled and entirely driven by students taking the lecture in whatever direction and at the pace we felt ready, whereas in NZ although the professor told me he liked when I asked questions, it was clear from my peers that that’s just not how it’s done. To be honest I never really adjusted, and asked anyway. My philosophy is “I’m a generally intelligent human, if I can’t follow this then somebody else is probably also lost, and if not I’m in way over my head anyway, so fuck it.”

Another huge difference was the gender ratio. At Tufts the intro CS classes are 50/50 M/F, and we generally graduate at a ratio of about 65/35. In New Zealand, while there were other women in the department, I was the only woman in two of my CS classes, and one of three in the other. And these were big, lecture-style, 30-50 person classes! I found my group of friends eventually (holla atcha SAM) but it was much more intimidating than I thought it would be, and left me with a lot of empathy for less-outspoken demographic minorities.

What has been your toughest lesson to learn in your software career so far?

All the business lessons have been the hardest. You can work on something awesome that you love, but at the end of the day, it has to make money. You have to sacrifice doing it right for getting it done by a deadline, and you have to sacrifice implementing cool new features for hardening your code. Basically, the software equivalent of eating your veggies. That being said, now I so so so greatly appreciate good test coverage!

But a much harder lesson I have to say, and I hate to say it, is that gender discrimination is definitely a thing. It hasn’t affected me on a personal level too much, but I do see it -- regularly, and pervasively. I was extremely lucky to be shielded from it for as long as I was, but in The Real World™ it’s tough to swallow the fact that I’m just going to have to work harder to get some people to take me seriously.

What would be your number one piece of advice for a successful software career (so far)?

Work as a team, and own your decisions. If you made a decision that turned out to be technically foolish, acknowledge it and, with your team, fix it. Don’t make excuses, just learn and move on. On the flip side, if a team member makes a mistake, that’s ok! Allow everybody the space to mess up and find solutions together. Programming is, when done right, one of the most social jobs around, because you have to constantly be fitting moving pieces together. It’s so satisfying when you can step back with a close-knit team and see this goliath thing you’ve build that you never could have accomplished yourself.

Also, don’t be afraid to self promote. Remember, if you hit every “requirement” in the job description, you’re overqualified. Take risks, learn fast, be passionate about not knowing the answer and discovering new ways of thinking.

When you mime programming to somebody, do you use T-rex arms, or wiggly fingers?

T-rex arms, hands down.

What books/resources would you recommend?

I love being subscribed to javascript weekly. It’s a great, succinct way to see what’s coming up in the ecosystem, and it’s made me a better dev to have some foresight. I also subscribe to CB Insights, which is a little more involved but I love his sarcastic tone and the firm’s quick updates on VC trends.

I strongly recommend Godel, Escher, Bach to all computationally-minded, intellectually curious conscious beings!

Finally, make your shoutout! What would you like the readers to go have a look at?

I mean, if you’re interested in robotics definitely check out the Jibo SDK. It a dope toolset for a neat little robot.

My top 3 favorite tweeters are:

Lauren Duca, cool AF journalist and personal fashion icon;

Fei-Fei Li, ML genius, stanford research director, good-hearted entrepreneur;

and, honestly, my great friend Graham Starr, comedian, journalist, and thoughtful dude. Sometimes he sleeps on my couch.

And I’m not particularly interesting, but you can follow me on twitter -
@CarolynBot.

Top comments (2)

Collapse
 
rhymes profile image
rhymes

Fantastic interview Carolyn and Sam!

if the consumer (dev or casual) needs to think about how to use your product, you’ve already lost. A simple interface, sensible defaults, and a foolproof safety net (think: you CANNOT fuck this up even if you try really hard) go a long way. Basically, “pretend the user is drunk” holds true for devs as well as regular consumers.

I wish more people understood this :-D

Good luck at Cogito and your endeavours!

Collapse
 
samjarman profile image
Sam Jarman 👨🏼‍💻

Haha yeah, I love the advice Carolyn gave there!

I've passed on your best wishes to Carolyn.