Back

Office Hours: I’m Christine Spang. I’m a software engineer and the co-founder and CTO of Nylas, an API platform trusted by 150K+ devs around the world. AMA!Featured

Hi Elphas!

I’m Christine Spang. I’m the Co-founder and CTO of Nylas, a communications API platform that lets companies and developers unlock the value hidden in communications data to make it incredibly easy for developers to build software that helps the world communicate and connect better.

Before founding Nylas, I worked at Ksplice and Oracle as a principal developer focusing on backend systems.

Ask me anything about building and growing software teams, the always evolving role as a founder, the importance of culture and diversity within tech, separating fact from fiction around key trends such as AI and automation, Open Source, channel fragmentation, or anything else!

Thanks so much for joining us @spang!Elphas – please ask @spang your questions before Friday, February 25th. @spang may not have time to answer every questions, so emoji upvote your favorites 🔥👍🏾➕
Welcome @slang!! You’ve done some amazing things 🙌🏻 I’m the CoS for a start up who is looking for a second Software Engineer to join us as we build out our product. How do we attract great talent who is willing to jump into an evolving company at this early stage? Would love to know how we can appeal to a talented engineer and thought maybe you might have some insight on that. Thank you!
Hi @michellebanham and congrats on the startup! I found that in the earliest stages, personal relationships are essential to recruiting the first team members. Nobody's heard of you, so to establish the trust to do something risky, you need to get connected either to people you know or people in your broader network who are more willing to make the jump. Our first hires were from our broader MIT network, and also this one guy we met while working in a cafe in San Francisco. (He's awesome BTW. Sometimes spontaneity works!) We literally asked every person we knew in the early stages if they wanted to join, until our network was exhausted. If you're looking for someone super senior, you can also use a specialized recruiting firm, but in that case you'll definitely need to be able to pay a salary that isn't too far away from market.
Awesome! We thought that would be the best approach. I appreciate you weighing in on this to help validate that for us!!
@spang - Thanks for the AMA! Would love to know what made you found a company, how did the transition from being an employee to a co-founder happen? Would also be great to understand the top challenges you face as a CTO?One last question 😁, how do you handle tech debt at Nylas, what are some best practices that you'd advocate?
@Sambhavi Well, I quit my job without anything else lined up, and then started building! 😂More seriously though, I wouldn't say I prepared for a long time to start a company. I joined one startup previously and worked there, and that gave me some insight into the startup world and what it meant to build a company from scratch. But nothing will truly ever prepare you for doing it yourself. To this day, my "start date" in our HR system reflects the day I started getting paid, but there was months of work before that, to pitch the idea, raise money, and it all started with showing up and starting to build.One of the top challenges I currently face as a CTO is how to structure my time. In a hypergrowth company, there are infinite things to do: day to day reactive things, planning for the future, internal communication, interviews, customer calls, events, external thought leadership. It's a constant challenge to balance the demands of the present with setting a strong foundation for the future.On the topic of tech debt, one thing to keep in mind is that all code is ultimately temporary. And another rule of thumb is that once you have to 10x the scale on a system, you're probably going to have to rewrite it. So there is some amount of tech debt management that is folded into regular sprint planning, but ultimately tons of refactors and reorganizing of code that may not be super long lived is not a good use of time. For example, we recently rewrote the major provider connectors for our sync system in Go (formerly in Python). This allowed us to resync the architecture of that system with both modern architectural best practices as well as the current data model for our customers and API. A lot of tech debt is incurred because your model of how a system changes as you learn more. Then you're stuck with outdated ideas in the code, and that makes it harder to reason about over time. Many modern systems can be replaced in a piecemeal fashion. So the idea of fearing a rewrite only really applies if you're trying to do it all at once. Rewriting smaller components and swapping them in can be quite beneficial.
Thanks much @spang. Rewriting smaller components, yep, it does make a lot of sense.Yep, striking that balance between present and future is totally challenging, spot on!"But nothing will truly ever prepare you for doing it yourself. " - 200% 😁, been there, done that, burnt my fingers, still it's so very worth it, and I'll never regret!
@spang I'm the Founder of WOKEN (iamwoken.com) a career exploration platform (for 4.5 years). We're bootstrapped so have about $1K/month to spare on software dev (our designs will be ready beforehand) but the last time I tried to hire on upwork at that rate we had someone who seemed decent but then everything broke after he left us, so I'm wondering if its possible on that budget to do sufficient software dev (Python, React, etc) ie to find a contractor for 20-30 hours/week at that price and/or if I need to wait until we have more budget to do anything well? I don't want to do it half assed or pay money that will be for poor software dev, but I also want to be sure we're still reinvesting in our software platform and enhancing it for the sake of retention.....
First off, what are you specifically trying to accomplish? Are there off the shelf tools or platforms that can get you most of the way there? $12k/year is a very lean budget for software development and while you ought to be able to get something simple built, all software requires maintenance over time. So as much as you can use platforms and services to take away the maintenance burden, the better off you'll be. I am not aware of any region of the world where you can hire someone for 20h/week on that budget. But if you can accomplish what you're looking for with e.g. WordPress customizations, you can get a lot further on a small budget.
Hi @spang! Thanks for doing this AMA. I'd love to know what your path was to progressing from software internships to becoming founder and CTO of your company. - What would you say are the most valuable things you learned in your career as a software engineer, and what drew you to a back-end specialization and open-source? - What skillsets did you deliberately focus on expanding as your responsibilities grew, and how was the transition to the business/architecture side of things?- How did you get really, really good at Python, and did you have any preferred resources?- Lastly, quick aside, but did you and Jessica McKellar ever cross paths at Ksplice, by any chance? I took both of her Python courses, so I was curious if there was any overlap there. Excited to hear from you and thanks again for sharing with us!
Hi @soph! Nice to meet you. Not sure what exactly drew me to backend, but it just seemed to come more naturally to me than frontend. I am more of a writing person than a visual person! I got into open source in high school, following a path of curiosity that started out with playing, then helping run, this text based online MUD: https://muds.fandom.com/wiki/Shadows_of_IsildurIts game engine only ran on Linux, so I had to install Linux to work on it, then was reading about how the Linux distro I was using (Debian) got made and discovered the community of open source developers online! One of the developers posted a blog post about a group called Debian Women, and that made me feel like the project wanted people like me to join, so I did.As my responsibilities grew, one of the biggest skillsets I actively worked on was management. I was thrown into the fast lane by virtue of my circumstances of the company taking off, so I didn't get any active mentorship on this skill. I just read some books and talked to some folks I knew who were a bit farther along than me in my career path. Eventually, the company was growing too fast for me to keep up, and I hired someone better than me into the role.Got really good at Python by writing a lot of it, going to PyCon and meeting a lot of folks there, and reading source code! One of the great things about open source software is if you're curious about how it works, you can open up the box and take a look inside.I did in fact cross paths with Jessica - Ksplice was not exactly a large company! She was actually my manager for a couple of years, and I helped out with one of her Python classes in Boston back in the day. Small world!
Hi Christine,I would love to know what were the main challenges you found when building an API platform, things like what was your process and how long it took to choose the technologies and implement the solution and say: yes, we are ready to open it to the public 😀 Thanks!
Hi @Catherin3! What happened was we first needed to vet that there was a market for our idea. Originally, the APIs were limited in scope to just making it easy to connect to the data in email. So we:1. Created a very minimal open source implementation of our APIs for email2. Did some press about how hard it was to develop with email and announcing our API wrappersThis was to gauge interest and response, and took about 9 months. The idea resonated, so we kept building. The next thing we did was launch a hosted API platform that developers could build apps on top of. That took another 6 months. We were very personalized in how we got developers building on top of it, even bringing some folks into our SF office and helping them build.The early challenges were all about getting the product right (API design) and getting traction. Then later, when we started scaling the product, we ran into challenges with data storage and reliability that had to be solved.Choosing the original technology stack was quite simple. Our guiding philosophy was pragmatism, and we chose to use Python both because a lot of major universities teach in it, so developer talent is ample, and because the most important thing early on was to be able to iterate quickly on ideas - and scripting languages are ideal for maximizing developer productivity in taking concepts to a working implementation. Much later on, when we encountered scaling challenges, we started introducing Golang for efficiency and today it is the platform's primary language. The same goes for other parts of the tech stack - originally 100% AWS, using hosted infrastructure when we could, and MySQL because it is a very popular and well-supported database. Today we have moved more towards GCP, Spanner, and other newer technologies to achieve cost efficiency and performance at scale.
Thank you for the detailed response. So much value here. It is great to see the incremental changes in the technology stack in order to adapt to the different growth phases.
@spang : What is one thing that a brand new hire can do on her first week at a company or a new team that would showcase great work ethic and cause a good first impression?
@amandaruzza Great question! Overall, be as self-driven as you can be. Don't wait for people to tell you what to do. If there are onboarding materials, dive into them with gusto and learn everything you can. Talk to your new manager about how you can make an impact quickly, and then work on doing it. Showing an eagerness to get things done and to contribute to the company's progress as fast as you can will leave a positive first impression.
Thank you so much for the suggestion, @spang :)I’ve been spending the last 3 weeks studying as much as I can in regards to some technical skills that I’ll be developing during this apprenticeship, new job, but it feels good to me to hear things from the employer perspective, as it helps me staying on the right path :)
@spang so glad to see this AMA! I would love to know what you think of how new devs can make a breakthrough into a solid position and get trained up these days - it seems like right now everyone is going for a small random startup that is more desperate for any dev than no dev, work for 1 year then hop onto another lily pad. Do you have any advice? I finish my coding bootcamp in April and I am really trying to get any advice I can to approach the job search and hopefully find something more suitable, if it’s possible!Alternatively, what would you say can most help us move forward from where we are today? I imagine being a new dev today is not like being a new dev when you started! Any insights would be helpful - thank you!
Hi @cattxx! Great question. IMO the most important things to look for when launching your career are not exactly which company you start out at, but whether there are great people to learn from at that company and you are able to work on impactful projects. A lot of companies may be hesitant to hire inexperienced people directly into software developer roles, but more open to hiring folks into adjacent roles like support engineering, sales engineering, and customer success. There is a lot of demand for folks with technical talent all over organizations! There is a sweet spot with mid-sized startups where you will not be working alone and yet they still will offer more flexibility with role changes than a larger company might. Either way, make sure you ace your current role and show value to the organization - the right company will want to support high performers on the career path that they want.