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!
Christine Spang
Christine Spang

Posted on

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

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 that makes it easy for developers to build integrations with email, calendar and contacts data. To date, we have synced more than 100 terabytes of data from more than 15 billion emails.

My main goal as we scale Nylas's business is to grow a company culture we're proud of - one that is inclusive, diverse and transparent. We re-enforce our values informally every day, and more formally during our regular 6 week all-hands, no-blame retrospectives, during the hiring process, and more.

Latest comments (58)

Collapse
 
bossajie profile image
Boss A

What/who are your inspirations for coding?

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
 
juankortiz profile image
juankOrtiz

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

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
 
mraza007 profile image
Muhammad

How you got started in open source community

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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
ben profile image
Ben Halpern

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

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?