📐 Dexter VP of Engineering David Hu

Opening Thoughts

Dexter is a seed stage startup in SoHo. It’s a platform that creates meaningful automated conversations.

Dexter 🔑 stats:

• 4 engineers • Founded 2015 • RiveScript, Node, React, Redux • Travis CI, CloudWatch, PagerDuty, AWS

David Hu 🔑 stats:

• VP of Engineering and Strategy at Dexter • Past: Platform at Foursquare

Interview (March 2018)

Andrew Lin: Hi David.
David Hu: Hello!
AL: How’d you find your way to Dexter?
DH: I think of my career as a series of positions where I’m helping people build things. Before Dexter, I was on the platform team at Foursquare where I helped developers and businesses build location data into various apps and services. I found out about Dexter through a friend of a friend and liked how the co-founders were thinking about democratizing app development.
AL: How has Dexter become what it is today?
DH: When we first started, Dexter was a general purpose automation platform. Let’s say one of your Dropbox files changed; that action would ping you in Slack and could also send an email to your mom. At some point, we realized that everything people were building and requesting was around messaging. “Taking Dexter out of beta” was launching 1.0 of the chatbot-building platform.
We work with Facebook, Slack, SMS, Twitter, Web, and Alexa where users can write “dialogue scripts”. “Dialogue scripts” power meaningful, automated conversations. The conversation is not quite a tree as most people imagine, but more like a movie script. This allows people with less technical knowledge to create and maintain the “dialogue script”.
“Dialogue scripts” power meaningful, automated conversations
We’ve worked with big brands to promote campaigns through a Facebook Messenger chatbot. There’s also a lot of interest in internal productivity, which helps teams use chatbots in Slack to facilitate communication in distributed teams. Instead of waiting for a person several time zones away to check the status of a request, the chatbot can tighten the conversation loop. You’re really saving time by not chasing people down.

Technical Challenges

AL: It sounds like Dexter has a lot of ambitious goals. What sort of technical challenges does that present?
DH: Because we’re a platform that others rely on, we need to handle spikes in traffic without warning. We also rely on other platforms like Facebook, Slack, and Alexa that are they themselves changing. It’s about being ahead of the curve in implementing features as they come out and being able to respond to the demands of users.
AL: So it sounds like you have to accommodate your own roadmap, existing users, and external platform changes. What does your technical stack look like?
DH: We recently completed a transition away from a legacy PHP system. Now we’re JavaScript all day, every day. NodeJS, React, Redux running on AWS. RiveScript is the language that powers the “dialogue scripts” in Dexter. RiveScript is the best solution we’ve found, but we extend its core. In old Dexter, our users were making giant conversation trees through a UI that became completely unmanageable. Some of the other languages besides RiveScript had too much magic, which led to unpredictability for our users. We wanted an interface that was approachable and friendly.
We wanted an interface that was approachable and friendly
Users who build on the platform will naturally find the limits. We’re an open sandbox with certain limitations for security. One of the features of RiveScript is to shimmy in arbitrary JavaScript; we lock that down real hard to only basic things.

Development Process

AL: How do you decide what to build?
DH: We generally think in quarters. Business needs drive a lot of what we do, but we also have a vision of the platform we want to be. We know where the gaps in our platform are and that produces a natural roadmap.
We work with our users for a 3 phase cycle: education, ideation, execution. We teach them about chatbots and help them develop the ideal experience. Instead of just delivering a message, we think about how the medium can accomplish specific goals like character development.
AL: How do you think about testing, deploying, and monitoring?
DH: Being a platform, testing is incredibly important. We value backward compatibility because people are building stuff on top of us. We have 80% test coverage, something we will maintain going forward. We do most of the QA ourselves and will use beta flags for larger features.
We deploy at least every week. There’s no set schedule otherwise. We check certain metrics like response time, CPU latency, database cache hits and misses. A lot of these metrics came through trial and error. We’re certainly still building up this part of the system.
AL: QA and testing should catch problems early, but when something does go wrong, how does your team handle it?
DH: Middle of a fire, just put caps lock on. We’re pretty vocal on Slack. We don’t really do postmortem meetings, but we write documentation to inform the team and avoid repeats.
Middle of a fire, just put caps lock on


AL: What makes Dexter a special place to work compared to other similarly-sized teams?
DH: I’m supposed to say the people right? Kidding. We’re all pretty open, motivated, and driven by what we do. It’s unique we have strong leadership in a technical CEO which ties the tech side to the business side. We make better long-term decisions as a result.
Personally, I love working on platforms — building something to allow others to build. Whether its a small business making personalized recommendations or a giant brand with a marketing campaign, enabling this new channel of communication is really special.
Personally, I love working on platforms — building something to allow others to build
AL: Where do you see the team regarding size and scope in about six months? It’s very hard to forecast, but that’s probably the farthest you can think as a startup.
DH: We hope to be in a position to grow the engineering team for work on core platform. The other business need is around sales.
AL: Two very core needs for a startup: build and sell. What are two traits (or more) that make a good engineer on the team?
DH: Being a scrappy learner because we’re such a small team. Another one would be empathy for users. There are two degrees of users: we need to empathize with chatbot creators and chatbot users.
Scrappy because we’re small. Empathetic because we’re a platform
Every single person on the team has a weekly customer support rotation. We take pride our response time to an inbound request. Hopefully, we’re building trust with our users that we’re giving the best tools and abilities possible to launch something to their users.
AL: There’s definitely a parallel between how you interface with your customers and how they expect their chatbots to operate. How do you ensure your team avoids groupthink and fosters debate?
DH: It’s a big part of our culture. Every Monday evening we have an all-hands meeting with themes rather than specific agendas. It’s an open forum for communication and feedback where we talk about what we can improve. We’re still at the point where it’s a moderated discussion rather than a presentation.
It’s a big part of our culture. Every Monday evening we have an all-hands meeting with themes rather than specific agendas

Wrapping Up

AL: Is there anything you’re hacking on, exploring as an idea, and/or want to incorporate into Dexter?
DH: There’s something about voice and video games I think is really cool. I remember growing up buying these game guides for video games. Why can’t I just ask my Alexa for help in the game? Then she can not only tell you through voice but also message images to guide you. That’s one thing I’m trying to build on top of Dexter right now. Instead of a second screen, it’s another layer on the game.
AL: My last question is do you have any questions for me?
DH: How did you think of these questions? Were they drawn mostly from your own experiences? Things you want to fill in your knowledge gap about?
AL: These are ideas I’ve always valued; these questions are like barometers. What general direction is the team going? Are systems breaking down or are they too cumbersome? Some indicators are obvious. Others are more subjective. These questions distinguish a good engineering team or a unique engineering team.
This interview has been edited for length and clarity.

Parting Thoughts

Dexter is a lean team that has free-flowing communication. Leadership focuses on making long-term technical decisions that balance technology and business.