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.
Top comments (58)
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?
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?
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.
Thank you for such a thoughtful and authentic response!!
Yes, great answer!
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?
If you could give your 15-year-old self career advice, what would it be and why?
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.)
Are you projecting any trad climbs right now??
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
Ahhhh that's awesome! I'm just trying to get lead certified over here 😅
:-D gotta start somewhere! do you climb outside at all yet?
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!
Hello Christine! Was the Linux community welcoming to a 15 year old? How forthcoming were you about this?
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.
That's really great to hear! Thank you for sharing this.
Hey Christine! Thanks for doing this! How has open source changed since you first began contributing?
"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)
What is the difference between the job of a CTO vs a VP of engineering or other senior technical roles in your opinion?
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.
Thanks!
What are some things you wish every developer would take into account/know when it comes to email?
it is hard, you need Nylas ;)
Hey Christine — what do most devs not understand about emails/contacts?
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