DEV Community

Cover image for Hi, I’m Christine and I started contributing to Debian when I was 15. Now I’m the CTO of Nylas, ask me anything!

Hi, I’m Christine and I started contributing to Debian when I was 15. Now I’m the CTO of Nylas, ask me anything!

Christine Spang on April 18, 2018

I started my coding career early, working on the Debian project when I turned 15. Today, I'm the CTO and co-founder of Nylas, a communications API ...
Collapse
 
mary_grace profile image
Mary Thengvall

I love the fact that you're careful to build a company that's transparent about your culture. How have you done that over the years and what measures have you taken to make sure it stays true to what the company and the employees need?

Collapse
 
sheyd profile image
Sena Heydari • Edited

Linux development land can be welcoming or elitist-shaming, depending on if you're contributing to the kernel, package manager, or other parts of the stack. What lessons did you take away from such a mixed community? What was your personal experience? How do you think the lower-levels of the stack dev communities can be more open, inclusive, and welcoming, especially to traditionally marginalized groups?

Collapse
 
spang profile image
Christine Spang

Since I got involved in Debian Linux through a diversity outreach group, it was pretty obvious to me from the get go that these sorts of groups and programs are important—and that's influenced my commitment to diversity and inclusion to this day. I wouldn't have gone to MIT without Debian Women and that's had a huge impact on my career trajectory.

I was also lucky that because I got involved through Debian Women, the first people I interacted with were self-aware and extremely welcoming and supportive. Mentorship was provided and valued. That gave me a base of security that kept me in the community even when I heard about toxic behaviour elsewhere (or even in other parts of Debian).

Today I want to pay it forward and provide opportunities and support to other underrepresented minorities in tech. I think the exposure to the toxic parts of the open source community also opened my eyes—mostly hearing about it, and also reading terrible things that e.g. Linus would post on the Linux mailing lists. I didn't have much in the way of bad experiences other than a few minor IRC/email creepers. Honestly for the Linux kernel, inclusivity starts from the top and one reason I've never spent much time trying to contribute to upstream Linux is that I don't want to spend my life trying to build relationships with people who aren't worth being friends with.

I've seen great successes in increasing diversity, and they all came from focused hard work and buy-in to the goal. One example is PyCon's efforts to increase speaker diversity, spearheaded by Jessica McKellar. (I can't find the numbers from the past few years, but from what I recall it went from totally dismal to 30-40% or so female speakers, which is an awesome result.)

First you have to buy into the concept as a group, then you have to examine your own biases and implement solutions that address them. It's hard work.

Collapse
 
sheyd profile image
Sena Heydari

Thank you for such a thoughtful and authentic response!!

Thread Thread
 
ben profile image
Ben Halpern

Yes, great answer!

Collapse
 
musingmurmurs profile image
Elizabeth

Hi Christine! That's an amazing stat (100terabytes of data from 15 billion emails) - how do you think about growing Nylas' API? There's so many older API methodologies and I'd imagine its hard to extract that data from old emails.

Collapse
 
spang profile image
Christine Spang

Horizontal scaling, basically. :) Our biggest scaling bottleneck is our data storage. We've scaled that out by using "email account" as our sharding key and each email account lives on a specific database cluster. Then services talking to the database clusters multiplex connections using a MySQL proxy service called ProxySQL: proxysql.com/

It's not rocket science, but there's plenty of fun stuff to figure out when you're dealing with so much data and request volume!

Another fun fact, we don't actually use microservices at all; our application architecture is still fairly monolithic. We have different services which each have their own dedicated capacity and provisioning logic, but all services talk to the same database clusters and share a significant amount of code, like ORM models.

We're hoping to loosen the coupling between our services & our database clusters in the future by putting something like a Kafka data bus in between services that need to do extra processing on mail data, so we can fan out to more services & keep the mail ingestion logic lean. If that kind of project is exciting to you I'd love to talk. :)

There are some more details in this talk if you're curious:
youtube.com/watch?v=IstUaWa8NBE

Collapse
 
fre_d profile image
Frederik Ar. Mikkelsen

Hi Christine. I'm a high school student currently working on an open source project that scaled so large we are in need of horizontal scaling. My collaborators and I have recently opted to use RabbitMQ mainly because of how simple and easy it is to use. Out of curiosity, what are some of the reasons you want to use Kafka over other message brokers?

Collapse
 
tasiapotasinski profile image
Tasia Potasinski

If you could give your 15-year-old self career advice, what would it be and why?

Collapse
 
spang profile image
Christine Spang

quit caffeine and alcohol sooner, if you're happy and take care of yourself this will help you in all your endeavors

(Additional context: I am a small person and substances affect me a lot. I'm better off not partaking for the most part.)

Collapse
 
jess profile image
Jess Lee

Are you projecting any trad climbs right now??

Collapse
 
spang profile image
Christine Spang

yes!!! my favourite piece of rock in the whole universe is the Incredible Hulk in the High Sierra! mountainproject.com/area/105852180...

Last year I climbed Positive Vibrations (5.11A) with falls in just three places, and I'd like to return this year to keep working on sending the cruxes. And one of my main climbing partners and I made a pact to go start working on the next step up as well, the Sunspot Dihedral (5.11B).

Long alpine crack climbing is what I dream about at night; it's hard for me to consider single pitch climbs "projects". :-P

Collapse
 
jess profile image
Jess Lee

Ahhhh that's awesome! I'm just trying to get lead certified over here 😅

Thread Thread
 
spang profile image
Christine Spang

:-D gotta start somewhere! do you climb outside at all yet?

Thread Thread
 
jess profile image
Jess Lee

I did one guide-led ice climbing trip a couple years ago. Other than that, no. It's my one big personal goal this year to get outside!

Collapse
 
maestromac profile image
Mac Siri

Hello Christine! Was the Linux community welcoming to a 15 year old? How forthcoming were you about this?

Collapse
 
spang profile image
Christine Spang

Hi Mac! Great question. When I got involved it was through this super cool group called Debian Women (debian.org/women/). It was new at the time and a lot of really great Debian contributors were involved! They were super welcoming and actually found it super exciting that I was so young—as an example, one of the women in the group, Erinn Clark, found it exciting to have a "teenage ch1x0r" involved. I even wrote a blog post about this at the time! blog.spang.cc/posts/__35__debian-w...

The community also asked me what they could do to make Linux more appealing to teenagers, and I wrote a post for that as well: blog.spang.cc/posts/Linux__44___Op...

Pretty fun to look back at the stuff I posted in 2005. :) I can't speak to other communities, but I felt in general that open source was above average in terms of ignoring age in favour of demonstrated abilities.

Collapse
 
maestromac profile image
Mac Siri

That's really great to hear! Thank you for sharing this.

Collapse
 
liana profile image
Liana Felt (she/her)

Hey Christine! Thanks for doing this! How has open source changed since you first began contributing?

Collapse
 
spang profile image
Christine Spang

"Open source" has pretty much won, in that developers these days expect their tools to be open source and therefore serious tech companies expect to be involved in open source communities in some way in order to be competitive at hiring and retaining engineers. It's just a given. Even Microsoft has turned around. I didn't have a job yet when I got into software, but my impression was that wasn't so clearly the case at the time.

("free software" on the other hand, hasn't won at all, but that's a different story)

Collapse
 
ben profile image
Ben Halpern

What is the difference between the job of a CTO vs a VP of engineering or other senior technical roles in your opinion?

Collapse
 
spang profile image
Christine Spang

Hi Ben! Thanks for asking!

The answer to your question depends a lot on the company in question. At Nylas, the breakdown we use is that the VP of Engineering is responsible for people and process, and the CTO is responsible for architecture & technical direction. It's a little messy in practice; I actually have a few engineers who report directly to me, but I don't create the process around 360 reviews, retrospectives, eng career ladder etc. The CTO and VPE roles are meant to be complementary, and whatever split they take on depends on the strengths and weaknesses of the people involved.

In some companies, the CTO is more of a business-y role rather than architectural, and it's possible my role may grow in that direction somewhat over time.

Collapse
 
ben profile image
Ben Halpern

Thanks!

Collapse
 
jess profile image
Jess Lee

What are some things you wish every developer would take into account/know when it comes to email?

Collapse
 
spang profile image
Christine Spang

it is hard, you need Nylas ;)

Collapse
 
peter profile image
Peter Kim Frank

Hey Christine — what do most devs not understand about emails/contacts?

Collapse
 
spang profile image
Christine Spang

Sync is a very difficult problem, and layered complexity + many client & server implementations means a ton of edge case surface area.

Nylas is one of those companies where some folks' initial reaction is "I could build that in a weekend" and then they go off and try to build it themselves and regret it.

if you want to hear about more specific horribleness, the first 15 minutes of this talk I gave last year gives an overview: youtube.com/watch?v=IstUaWa8NBE

Collapse
 
kellymase profile image
Kelly Mason

Hi Christine! What stack is Nylas primarily built on, and why?

Collapse
 
spang profile image
Christine Spang

We're a Python shop! Honestly, we chose Python in the early days because (1) every MIT undergrad learns Python, so both myself and my cofounder knew it, (2) Python is a very productive language for developers so it's great for building MVPs and (3) Python is "batteries included", meaning it's got a super useful standard library and also a ton of high quality third party libraries for doing just about everything, so we were able to focus on building the logic that was specific to our product.

We've been lucky that Python has scaled with our growth, and that new features like mypy-lang.org/ make it possible to make large codebases manageable in a dynamic language.

We also use MySQL and redis pretty heavily, and we're built on top of AWS just like every other startup out there.

Collapse
 
johnnyt profile image
John

What's the MIT undergrad program like?

Thread Thread
 
spang profile image
Christine Spang

heaven and hell!

Do you mean the classes, or the whole experience of being an MIT undergrad?

Collapse
 
sheyd profile image
Sena Heydari

Every few years there seems to be a technology, either touting itself or touted by other people, as an email/IM/text-message/website killer. Yet these core technologies are still around and being developed and bettered. Do you feel there is a "next-big-thing" around the corner to truly shake things up (e.g. the impact cloud computing or containerization has had in the systems world) for the end-users of technology?

Collapse
 
spang profile image
Christine Spang

I vouch more for evolution than revolution. I think ML/AI have promise to help us create tools to cope with the huge volumes of digital information we're generating, and that VR and voice control are pretty cool. I am super bearish about the whole blockchain fiasco.

For communication technologies, network effects are huge. That's why tons of email killers have failed—there are millions of servers comprising the global email infrastructure, and most suggested replacements offer some better features in exchange for losing the existing network and the open protocols that allow many different service providers to interoperate. Email needs to move forward in a way that doesn't leave that network behind.

Collapse
 
andy profile image
Andy Zhao (he/him)

Hi Christine!

Are there any funny, unintuitive gotchas/things to consider when working with email technology?

Collapse
 
nestedsoftware profile image
Nested Software

Hi Christine,

How did you get interested in computers and technology?

Collapse
 
spang profile image
Christine Spang

Basically, the trajectory went like this:

  1. My uncles, dad, and grandfather were all different flavours of engineers (electrical, chemical, software) and I was good at science and math in school so I figured I'd be "an engineer" when I grew up. (Yep, very broad.)
  2. In middle and high school I got addicted to fantasy novels and then RPG games including this text-based roleplaying MUD: middle-earth.us/
  3. I started helping run that MUD and had to install Linux and learn to program to make the changes I wanted.
  4. I loved programming and also the fact that this Linux thing was built by volunteers all over the world and totally worked blew my mind and I got really excited about free software and decided that software was my future.
Collapse
 
ben profile image
Ben Halpern

This is great

Collapse
 
dev_in_the_house profile image
Devin

What are your two favorite Linux distros and why?

Collapse
 
spang profile image
Christine Spang

Debian and Ubuntu, Debian because I've been using it for coming up on 15 years and have a key in the keyring, meaning I can even upload new packages and make changes (I'm an official developer), and also because I've made a bunch of friends in the community and being involved there changed my life and resulted in me going to MIT and becoming a software engineer. I still run Debian on my laptop today, despite several bets from coworkers that I am going to get tired of it and switch to a Mac.

Ubuntu is the runner up because it's based on Debian and very popular. :) Debian is considered so technically rock solid that there are literally hundreds of other Linux distros that are based on it, of which Ubuntu is one: wiki.debian.org/Derivatives

Collapse
 
ben profile image
Ben Halpern

Which are your go-to programming languages for different types of problems?

Collapse
 
dhruv profile image
Dhruv

How much do you think contributing to open source has changed over all these years?
And as a CTO what do you look in a developer when hiring?

Collapse
 
spang profile image
Christine Spang

When I started working on open source software, there was no GitHub. There was no git, either. Now there is GitHub, and everybody uses it. Git won the version control wars. GitHub made git and version control much easier to use, and it easier to contribute to projects. It may have centralized a decentralized system more, and it has its fair share of problems as a company and a platform, but overall it's had a huge impact on how people share code and collaborate on software.

As for what I look at in a developer when hiring, in no particular order: great communication skills, empathy, humbleness, self-awareness, a growth mindset, enthusiasm, buy-in to the idea that diversity & inclusion are worthy things for a company to invest resources in, and of course, ability to write good code in at least one modern programming language.

Collapse
 
answrguy profile image
Jim Dennis

Christine,

what can you and your colleagues, at Nylas and throughout the industry, do to reassure customers and the public at large regarding their privacy and the confidentiality of the data which is entrusted to your applications and your server infrastructure ... including the threats posed by state-level actors? How do you address encryption in-flight and at-rest and what can be done about improved key management? What would you see as the ideal progress in these issues for the industry and the whole Internet?

Collapse
 
spang profile image
Christine Spang

Are there specific angles you are interested in? This is a really broad topic and it's tough to answer comprehensively.

We follow industry best practices for managing our infrastructure, including relevant compliance certifications and regular pen-testing, and have in-house security expertise. We support and are compliant with EU-GDPR. Of course, there are lots of unsolved problems in security and best practices alone won't guarantee that you will never face a data breach, but it's the place to start. All data is encrypted to and from our servers unless your email server doesn't support TLS, and we disallow the use of deprecated, insecure TLS versions for all connections to our API. All of the messages that we sync are stored encrypted at rest.

I am not a key management expert and would have to check with my team on their thoughts about the future there.

With regard to state-level actors, we comply with the relevant data request laws the same way the providers of the email accounts we integrate with do, though if we thought a request we received was unethical we would consider refusing.

Email is fundamentally insecure in its current form, and if you're seriously concerned about state-level actors, I recommend you use Signal for your private messaging needs. It doesn't support all of the features of email, but it's very secure.

That said, I'm also cognizant of the part Nylas is playing in the evolving ecosystem of apps that integrate with email, and the issues surrounding platforms enabling access to sensitive data. Right now, most email systems have all-or-nothing controls for apps that need access to your email, and in some cases do not even support revokable access tokens for apps. I see finer-grained access controls as essential to being able to scale a platform surrounding email. That means being able to grant limited access---read-only, for example, or to be able to access only emails in a specific folder. We're not there yet, but we want to push email forward in this way, because people want tools to be able to connect to their email and they're here to stay.

I think that trust is a fundamental part of human society and I don't believe in the techno-utopian viewpoint that we can create institutions that don't require trusting anyone. Whatever solutions we come up with will be part technology, part laws and regulations with consequences.

Collapse
 
aymanone profile image
aymanone

can you give advice about the path should take to learn cs
i took courses in html5,css3,js
but in the same time i took courses like python for everybody in coursera
and solve most of hackerrank about python except math and re but i understand
re to good level
cs50 edx,programming languages coursera which use 3 languages in it sml,racket,ruby
and other courses on java i start learn in 2016 my plane is to learn
scala to learn functional programming and learn
course in java or c++ to learn oop and i start to study algebra currently
is there any advice you can give it to me

Collapse
 
johnnyt profile image
John

What advice would you give to someone without a CS background to work towards the position you are in today?

Collapse
 
spang profile image
Christine Spang

Lots of my favourite engineers have no CS background and you don't need one to be a great engineer or a great leader!

It helps (OK, at least for the engineer bit), and some people may judge you for lacking it. But the people you want to work with won't.

First and foremost, you need to become skilled technically before pursuing a leadership position in software engineering—find a place where you can learn from more experienced engineers and hone your programming skills. Once you've reached an adequate skillset, start a company or join a very small one that needs your skills. Trust others a lot and listen to them.

Collapse
 
seanballais profile image
Sean Francis N. Ballais • Edited

Cool! I have questions!

  • What's your tech stack over at Nylas? Being able to sync more than 100 TBs of data is an extraordinary feat!
  • How do you guys manage to scale with this amount of data?
  • I'm planning to build my own tech startup in the future. Any tips and building an MVP?
  • Why did Nylas Mail need to go? :(
  • Does Nylas have any internships? Even remote internships? I'm looking for one as part of our academic requirement in college (shamelessly plugs my CV here).

Sorry if the questions were quite a lot. I'm genuinely curious.

Collapse
 
liana profile image
Liana Felt (she/her)

Who is the most impressive programmer/computer scientist you have ever worked with?

Collapse
 
spang profile image
Christine Spang

Nelson Elhage blog.nelhage.com/

We worked together at Ksplice and I email him whenever my team needs advice on a hairy technical problem. Super smart, super pragmatic, and a kind and humble human being.

Collapse
 
sadarshannaiynar profile image
Adarsh

Not all the employees in the company are satisfied with the work they do. What do you do when one of your employees are not feeling challenged or satisfied enough about the work they do?

Collapse
 
andy profile image
Andy Zhao (he/him)

It'd be great if you could talk about your thoughts and experiences on developing your company culture! What advice would you give to people/companies trying to foster a similar culture?

Collapse
 
juankortiz profile image
juankOrtiz

If you could pick a software or technology you wished you had built, wich one would be and why?

Collapse
 
mraza007 profile image
Muhammad

How you got started in open source community

Collapse
 
bossajie profile image
Boss A

What/who are your inspirations for coding?

Collapse
 
perigk profile image
Periklis Gkolias

Would you prefer contributing to small open source projects or to large and 'famous' ones, if if you could start again?

Collapse
 
dev_in_the_house profile image
Devin

What was your very first program?

Collapse
 
spang profile image
Christine Spang

hmmmm, that's a tough one! probably the exercises in the K&R C book. :) (amazon.com/Programming-Language-2n...)

I have a habit of diving into the deep end.