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)
What/who are your inspirations for coding?
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
If you could pick a software or technology you wished you had built, wich one would be and why?
Would you prefer contributing to small open source projects or to large and 'famous' ones, if if you could start again?
How you got started in open source community
Cool! I have questions!
Sorry if the questions were quite a lot. I'm genuinely curious.
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?
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?
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.
What advice would you give to someone without a CS background to work towards the position you are in today?
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.
Hi Christine,
How did you get interested in computers and technology?
Basically, the trajectory went like this:
This is great
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?
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?
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.
Hi Christine! What stack is Nylas primarily built on, and why?
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.
What's the MIT undergrad program like?
heaven and hell!
Do you mean the classes, or the whole experience of being an MIT undergrad?
Which are your go-to programming languages for different types of problems?
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.
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
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?