Transcript#
This transcript was generated automatically and may contain errors.
Welcome to the test set. Here we talk with some of the brightest thinkers and tinkerers in statistical analysis, scientific computing, and machine learning, digging into what makes them tick, plus the insights, experiments, and OMG moments that shape the field.
When I asked Joe Cheng what gets him out of bed in the morning, he told me it alternates between duty, curiosity, and fear. Joe is the CTO of Posit and the creator of Shiny, a dashboarding tool heavily used in the R&P communities. In this episode, Joe unpacks that answer — the quiet routine of duty days, what it means to be a reluctant leader, and why building AI tools today feels like excitement mixed with existential dread. We're joined by his longtime collaborator and my co-host Hadley Wickham. They're opposites in a lot of ways — Hadley all conviction, Joe all caution — but they've spent a decade riffing off one another.
All right, Joe, welcome to the test set. I feel like this is a really stacked interview because obviously you're the CTO at Posit, joined by our fabulous co-host Hadley, who's chief scientist at Posit. I'm really excited about, honestly, having worked a bit with the Shiny team, your work on Shiny, but also so much more stuff. You work as CTO at Posit and obviously everything you're doing with AI. So just super excited to have you on.
Joe and Hadley's working relationship
Maybe even just kick it off, could you tell us a bit about how you and Hadley have interacted over the years? Do you hang out? What's that like?
Yeah, I think Hadley and I, we started working together in 2012, when you joined us at our studio at the time. And it's a little embarrassing how funny this is going to be, but one of our first interactions — and me not really knowing what to expect from you, just being the creator of ggplot, and that was about all I knew, and someone who could help us kind of bring some taste, like our data scientist taste, to what we were doing.
But you asked me a question about parsing CSVs. Do you remember this? And I gave you basically the beginning of an explanation. And I said, you want to use a deterministic finite automata, and you can think of it as moving through a few states, and you were basically like, got it. And I was like, okay, come back when you have questions. And you came back with like, you mean like this, and you had fully sort of mapped it out.
And I think that pattern has been pretty consistent with us working together, is that it feels like when I work with Hadley, I just have to say the beginning part of a sentence, and he's like, I got it. And he actually gets it. Whereas I think most people — Like, stop talking, I'm bored.
Whereas I think especially at the time, a lot of people that I was working with that did not come from a software engineering background, they came from more data. I was just used to, okay, I'm going to have to repeat this a number of times, we're going to have to approach it at multiple levels of abstraction before they kind of fully understand. And with Hadley, it's always been this shorthand.
And that really carried into when Hadley wrote Mastering Shiny, the book that I wanted to write but was not able to. And Hadley, you know, it's easy for him to write books, it's easy for you to write books, but you were missing so much, not just details about Shiny, but the details about why things were a certain way. And I don't think I could have transferred the information to someone else, because there was so much information to transfer. But I felt like with you, Hadley, it was like, in 15 minutes, I could convey months of work of, you know, really intricate details about the way reactivity works, and why there's sort of like this push pull effects to reactivity.
No, I think one of my like, biggest regrets of like, Studio Stage Positive is just that we haven't had like more projects to work on together that we could like really crank on. Because that's, yeah, like I love writing Mastering Shiny too, because I'm like, okay, yeah, I can ask these questions, and I get clear, obvious answers back. And that makes sense. And I can like push you on bits where I'm like, I like, I wouldn't have done it this way.
Joe is one of the many people I've given my advice to, like writing a book is easy. You just have to write for like an hour a day. And then like after a year, like you'll have a book, but I don't believe like anyone has successfully followed that advice to complete the book. So it's clearly not good advice.
What gets Joe out of bed: curiosity, duty, and fear
Joe I know you probably gave me one of the most intriguing answers to a question I asked before this, which was what gets you out of bed in the morning? And you said a mix of curiosity, duty and or fear. I, I was going to ask you and have you repeat that, but I'm actually so intrigued. I thought I'd just lay it out there and, and try to get your take because that I've been just haunted by this statement.
So, um, I think on my best days, it's curiosity on the best days. It's like, I have this burning idea and I can't wait to see if it works. Those days are not often. But when they happen, not only are they so fun and so exciting, but often those are the days where there's like a big breakthrough. And once in a while, if lightning really strikes, you know, the early days of Shiny, it was like that every day. Uh, the early days of working on LLM APIs was like that every day.
I think like 90% of days it's duty that it gets me out of bed. It's just this feeling like the company's counting on me. My team's counting on me. My family's counting on me. Our users are counting on me and, uh, it's just time to get up and make the doughnuts, you know? Um, and there is something that I think is very noble about that. There's something that I think there's something very satisfying about just quietly doing your job when there's no glamor in it.
And then there's the fear days where I'm driven by a sense of anxiety or dread about a got to stay ahead of our competitors, or the fear of like being embarrassed on stage, you know, or the fear that we're, that I'm personally falling behind in adopting some new technology or understanding some new hot concepts. Uh, those are the worst, but fear days, I think they can easily lead to working really hard in unproductive directions. Or sometimes counterproductive directions because like the impulse to do something is so strong as like a way to like cathartically bat away the fear.
And unfortunately I feel like there's been way, a disproportionate amount of fear for the last year just because AI is just moving the playing field so much and so often and so quickly. And I don't think it's just me, it's just us at Posit. It's the whole industry. I think it's yeah, it's just like a time of fear, like excitement, yes, but also like this just existential dread and worry that underlies everything.
It's yeah, it's just like a time of fear, like excitement, yes, but also like this just existential dread and worry that underlies everything.
The origin of Shiny
I find that framing so interesting and there's so much to unpack there, but I, it does also kind of remind me of your like 2022 RStudio Conf keynote, where you talk a little bit about creating Shiny and some of that environment. Like as I understand it, you mentioned like being on the verge of quitting essentially before kind of like hitting that key idea.
So I started working at RStudio with JJ in 2009. So by 2012, it had been about three years and, um, at the time three years felt like a long time to me. But also I just, I felt like I've been working with JJ for a number of years. I think the world of JJ, I really, I mean, it was, the whole point was to work with him. That was the whole reason for joining RStudio was to keep working with JJ, but I had this feeling like, is this all that I get to be?
You know, a lot of my friends were, uh, at that point starting companies or exiting companies, um, like getting successful exits. Others were, um, I had a friend who was like the head of project, uh, or product management for Android. You know what I mean? Like just people who were like my classmates and peers that I was like, if I don't start a company, who am I? Like, like, can I even say that I've been successful? And I was really consumed by that.
Like I think what I would now call FOMO, you know, um, but at the time I just felt like I'm just, am I okay with this? Like I'm just going to be a failure, not a failure, but like my world is so small compared to, um, you know, people I considered peers. So I didn't have an idea, like I didn't know what kind of company I wanted to start. I just knew like, I need to be a founder otherwise, um, I won't consider myself successful.
And um, yeah, like JJ was super supportive about it and he was like, okay, I mean, like I think you should have an idea first, but like whatever you decide, I'll support you in that. And um, yeah, I committed to him, like I will be with you and focus only on our studio until the last day of the USAR conference that year. And I woke up on the last day, um, you know, basically the last day before I was going to start a several week soul searching process that was going to hopefully turn into, I have a killer idea and I leave and, you know, start that company. Um, and that was the day I thought of Shiny.
And I think I described it as like a switch being flipped. Like it really was like a night and day difference before and after that thunderbolt of Shiny struck me. I had thought that this was about me really wanting to start a company really, whatever, but it just, I don't know that a technical idea could so completely erase that feeling, um, of needing to prove myself, needing to go do this, needing to measure up to my peers.
So that, I mean, it really was like a different mode. Like my brain entered like, okay, let's build, you know, um, and who cares what your title is while you're building it? Who cares, uh, you know, whether people are going to credit you for this or whether you get to call yourself a founder. Um, it was just like, let's build, like, this is going to be awesome if it works. Like how could we not just focus all of our energy on doing this?
Um, that was like a huge lesson for me that like the thing that you think is the problem, the thing that you think is causing you unrest, like maybe it's not the thing. But the biggest takeaway is like, I feel like it would have been miserable starting a company to start a company. It would have been miserable trying to be a successful founder so that I could measure up to, um, by the way, people that I will never catch.
I truly believe that who are just born to do, you know, big things. And I think I was born to build little to medium sized things. Um, and that when the right idea strikes, that's more than enough for me, you know.
It's interesting to hear too, like, if I understand you're saying that at the time, like a lot of your framing was like, I need to start a company and be successful or do a big thing. But looking back, it sounds like you're saying like, you really appreciate the level of support that you had at the time to kind of find something and to work on it that actually like you're realizing like the position you're in was pretty good and actually like a good fit for you.
Yes. I think there are a couple of reasons. Like the first was, yes, I didn't have to do all the other work that comes with starting a company. The second is like having JJ there, I have like a built in co-founder and I know, I mean, Hadley knows this about me. Like I, I have very high levels of self-doubt, uh, which is often helpful, you know, like it's often helpful because it stops me from getting too lost in my own blind spots most of the time. But to be a true, especially solo founder, you need conviction, uh, and you need it all the time. Um, that's very difficult for me.
And then the third was like, I didn't want to build this and not have people use it. And we had our studio, like it was working, you know, we had a community that was building and I, it was more important to me that this thing launched to a receptive audience than it was for me to, I don't know, have a hundred percent of the equity or whatever it was. So yeah, I never, I didn't even really give it that much thought. It was like, as soon as it was, oh, this is the idea. It was like, yeah, I'm obviously doing it here.
I mean, Shiny is like vastly more successful than most startups. Like, even if you just like looked at the impact of like Shiny, that's like pretty, pretty incredible. No, it happened like pretty quickly, like it was like that, like people like that was like, when I remember when I first heard about Joe first heard about Shiny, I was like, oh, a web development framework for, ah, wow. That's something I really need. Uh, but then it like, it turns out actually that is what I need.
Like people need a way to like in their ideas and the little interactive apps. And it was like such a killer, like it just made like data scientists look so impressive to people because they're like, oh, I just thought you were this like data scientist and now you're an app developer. Like I remember like people in the early days who were like, you know, Shiny saved me $200,000 because I could prototype this app in a weekend instead of hiring a developer to do it for me.
Posit's move to Python
I guess jumping forward, it seems like 2022 was another really kind of big point where you were really focused on like Shiny for Python and our studio, I think at that same cover, I think you announced in that keynote, uh, our studio changing its name to Posit.
Um, it was, yeah, a really fascinating couple of years there. It's a complicated story because we've done Python stuff for a while, right? Like we did reticulate and there was some Python support in our studio, but I think it was clearly like, this is an interop story, not a, we're not like actually targeting, um, you know, making Python users lives better, until like 2021, 2022.
And, um, we had talked about it many times. I think like at a lot of company work weeks, you know, the leadership team would get together and look at each other and be like, Python, Python, anyone, you know, and, um, and it always felt for years, we kept saying, no, we can't afford to dilute our focus. There's so much to do for R that we can't afford to dilute our focus. Um, and also like, what kind of message is this going to send to the community?
And, um, what I recall, you correct me if I'm wrong, Hadley, is that when we started talking about the idea of Posit being around for the very, very long term, right? This is not just a company we want to be around for 10 years. We want it to potentially be around for a hundred years. Uh, that was when it went from, should we do stuff with Python to when do we do stuff with Python? Because it just became clear if we truly believe that we want to be around for a hundred years, we can't be a one language company. That just like, it doesn't make sense.
It won't even be Python. It was not going to be the terminal node. This is just a journey that we're on and we're going to get through many languages. So, you know, may as well, it's just a question of when do we start, you know, n equals one becoming n equals two. Um, so I think in that sense, it went from a very difficult decision to a very, very easy decision.
And then it was just a question of how do we do this? Like how do we kind of reach Python users where they are? And to be honest, like it is a challenge for us. It continues to be a challenge in a way that is very different than the challenge with R. I think R was difficult because R was not seen as a language that was for a bunch of the things that we thought it should be for. Um, so maybe we had to overcome skepticism that R was even for this.
And we had to demonstrate like, no, R is amazing for this. And over time won those battles, um, you know, one heart and mind at a time, Python is almost the exact opposite problem where like Python is acknowledged to be good at so many different things. And in any corner of the Python universe, there's six things vying to be the solution for that thing.
Reluctant leadership
Joe I know, when I asked you before this, how you'd describe your leadership style, you just said reluctant. Maybe you could unpack that for us a little bit.
Okay. Yeah, I am for sure a reluctant leader. I ironically went to school for management and I thought that I wanted my career to be managing technology projects, managing engineers, maybe someday being a CIO. And it wasn't until I graduated, graduated MIT, only having studied management. And like, right after I graduated, I was like, I actually programming is my main thing. And I had just left the institution that would have been like the best place to study that.
I was able to, like in my first full-time job within a few months, I was managing a team, I had two reports and it didn't take me long to be like, Oh no, like this, this is not for me. Like, I'm not the right shape to do this. This feels hard and bad. And yeah, I had to let someone kind of counsel someone out within the first few months. I was like a 22 year old. I mean, I just, everything about that job, I was like, I would so much rather be coding and it would be better for the company if I was coding.
So ever since then I've really resisted being a lead or a manager of any kind, but circumstances keep compelling me to step into that role. Just because like, to be honest, every time it's sort of been like, well, it's not ideal, but Joe's going to have to do this. You know, like nobody looks at me and thinks like, Oh, let's bring in our top notch management talent, Joe, you know? It's always more like, well, it seems like it can't be anyone else. So it's, we're going to have to settle for like having Joe lead this.
I think in the early days of Shiny, there was just, I had such a clear vision in my head and it probably took like four or five years before just the set of things that I like in my head were already built, but they needed to be like actually built. Like that would have been a hard environment for someone else to step in to a place of leadership when like, I created this project, like I needed to review all the PRs. I hired all the people, like it was like the more I played that role, the more it ingrained me into that role and made it hard for someone else to come in and, and take my place.
And I think the same thing happened with the AI stuff that I'm working on now. I'm leading a team doing sort of focusing on AI within Posit. I mean, every team is working on AI in some way, but there is a team that is specifically like, this is what we eat and breathe in and dream and sleep about AI. And yeah, I think once again, it was like, who else could run this, you know, given the shape of the charter of this team and what needs to be done.
So I'm always like looking for ways to, especially the CTO title, I'd really prefer not to be CTO. I've made that pretty clear to leadership and it's just like, this is kind of how it has to be for the foreseeable future. So like in my fantasies, I imagine, you know, someday having my title go back to engineer and having like someone that I really, you know, trust and enjoy working with be the manager that I report to, and just, you know, being able to focus on the part of the job that I most enjoy.
But I will say I have, once again, I think like Hadley and I have talked about this a lot. And one thing that has made it much easier is like learning from Hadley, like Hadley manages teams in a way that works for him. I was going to say, if you wanted to characterize my leadership style, it would be benign neglect.
I think being willing to be clear eyed about what do I need as the manager, like, what do I need this team to be in order for this to work for me? And how can I select people for this team that that's going to work for them as well, instead of I think what I thought before, which is, if I can imagine this person being a big contributor on my team, then I will become whatever shape I need to, like, I will be the universal adapter for all of the spiky shaped individuals on my team.
And it is my job to fill in all the gaps to do whatever emotional work with them needs to be done for them to be effective, to fill in whatever technical gaps they might be deficient at for them to be effective. And I, you know, I did that for like a number of years. And that was, you know, a recipe for burnout kind of predictably. And also, I think didn't work great for the people that I was doing this feeling like I was doing this in service of.
I think like 90% of days it's duty that it gets me out of bed. It just, it feels a lot like parenting, maybe. I'm doing a lot of work to really understand someone, like, and not just what they're saying is the problem, but what is the problem behind the problem? And that is really exhausting. It's really exhausting work when you're doing it for five, six, seven people. And if you finish that work and you don't see a big change, or you finish that work, and people don't recognize you as doing that work.
Yeah, I think like, I don't know, like took me, I also had like, I don't know, it took me a long time to get to the point where I can like give people like direct feedback where they're like, you're like disappointing me, like you're not like this is not working the way it should do or it needs to work. That like that is like, that is really tough to deliver, but it's also better than the alternative because typically people who are not doing well, like they know it, they can get that sense. You might not be saying it directly, but they know you're unhappy. And if they don't know like what is wrong, like they can't respond.
Leading AI work at Posit
Yeah. I'm curious your thoughts on today now where you mentioned you're leading an AI team. What, yeah. How do you think of things today?
The first thing that struck me actually, it was one of your questions you asked me earlier, Michael, before this recording, it really made me think about the fact that a lot of the earlier moments in my career, the exciting moments were just exciting. And this particular moment is exciting mixed with existential dread.
And like that, that combination is so weird. Like it is such a strange sensation to build something that you're both incredibly excited about. And also should we even be, should we even be doing this? Like, is this the right thing long-term for the industry, for people who are going to use this for the planet? And yeah, I have felt more conflicted about this work over the last couple of years than like at any point in my career where the sort of push and pull of AI has like literally kept me awake at night wondering, you know, should I be doing this? Should I abstain from being involved in this technology at all?
So that's the first thing I think that is really striking about this moment is how much sort of ethical soul-searching I feel like a lot of us have had to do. And for me, I've gotten to a place where I don't lose sleep about this. I'm quite convicted that the work that we are doing is not positive and it is important that we continue to do it.
This, like the technology, like LLMs as a sort of core technology, the fact that they're both so incredibly capable and until like very, very recently, I'd say so, so unintuitive, like it's so unintuitive what they're going to succeed at, what they're going to fail at, that it's almost impossible to come to any conclusion about whether something's going to be useful until after you've built it. Like it's hard to reason from first principles, whether you should harness them this way or that way.
And then at the same time, because the tools that you build so fast, that's actually a viable strategy. Like we don't ponder on paper, we ponder with prototypes now, you know. And it's created this whole new motion of just, you know, my team and the teams that I'm in close contact with are just throwing off massive numbers of ideas every week. And it's no longer a generation problem, like generating features, generating code. It's like a curation problem. It's a conviction problem, like developing conviction about what you think is right for the user.
That is now the big struggle and ideally the key differentiator for us, because collectively we have so much experience in data science and we have like really strong opinions about the right and wrong ways to get answers. If correctness is important to you and reproducibility is important to you, you know, we have a lot of opinions about that. And I think a lot of people, a lot of competitors or ostensibly competitors have different priorities, which gives us sort of a unique viewpoint to build around.
Wrestling with the ethics of AI
Is the thing that was keeping you up at night asking like, what would be useful for people? Or was it something? No, it was, is it ethical to work on these things? Societally. Is it ethical?
Is it like considering the negative side effects of this technology existing, not to mention the negative potential side effects that especially two years ago were quite extreme, like people were, well, I guess some people still do, but like, it was much more in the discourse that these things could kill us all or some approximation of dooming the human race. And it certainly like, what effect is this going to have on knowledge work? What effect is like this amount of change this fast going to have on our economy and society and the copyright infringement, I guess that these models were mostly built on being an ethical problem.
And then also, I think on top of that, in the particular domain of data science, the ability of these things to so quickly and easily give you answers that you don't know if they're correct. And feeling like, I don't know, we could build tools that are like handing out loaded guns to the general populace. And then just like having a warning sticker on it, like warning, this is a loaded gun. So we're cool, right? Like we did our job, we warned people. So it's really on them.
But like, if you know that people are going to, you know, shoot their feet off or whatever with these guns, is it really ethical for you to release that like into the marketplace? So those were the kinds of questions I think that like, I really legitimately struggled with.
Should I go to, you know, to Reef, our CEO and tell him like, I want to keep working here, but I don't want to work on AI anymore. I'm a conscientious objector, or maybe even like, if this company is going to continue to develop AI, then, or develop solutions around AI, then I need to work somewhere else. Which is ironic, because I was literally the one leading the charge at the time, you know. So it was not a statement about whether I should continue to be neutral. It's like, I'm literally evangelizing this technology within the company and to our customers while feeling intensely conflicted about whether it was ethical to even have an open AI account or whatever.
It's like, I'm literally evangelizing this technology within the company and to our customers while feeling intensely conflicted about whether it was ethical to even have an open AI account or whatever.
And I don't mean to say like, I knew that it was unethical. It was that I was really like riding that line of, I can't decide if this is like net very positive, net very negative, like catch me on a different day and I'll have a different answer.
And like, I think our, at least your mindset now is like, they net out to something that's like, you know, mild to moderately positive. Like that doesn't mean there's still not like lots of really bad things, but maybe mostly kind of balanced out by the good things. And like we have the opportunity to kind of at least try and accentuate the positives and make the negatives less worse for some group of people.
And I think for me, it's not so much like today's trade-offs, like the harms and benefits that have been realized today, I do agree are mild to moderately positive. It's the potential harms and the potential positives that really, like, it's like the error bars are very wide, I guess, going forward.
But the one that really kind of, I couldn't shake and ultimately won out over the others was that us abstaining or me abstaining, even if I could get the whole company to abstain, that would not slow down the development or adoption of AI one bit. Maybe if everybody in like in a coordinated way, every company in the world decided to abstain, then yes, but but us taking this action would have no effect.
But the good that we can do is in the specific area of data science and not just data science, but like reproducible data science. And we actually have a differentiated viewpoint there and we have outsized influence there. And that, because of that, because we have like, we have no agency to slow down AI. We do have agency to help people avoid some of the harms in getting incorrect answers. That sort of extra agency there makes it to me, like we have also a special moral and ethical obligation then to, you know, to serve that role for our community.
But the good that we can do is in the specific area of data science and not just data science, but like reproducible data science. And we actually have a differentiated viewpoint there and we have outsized influence there. That sort of extra agency there makes it to me, like we have also a special moral and ethical obligation then to, you know, to serve that role for our community.
The origin of the name Shiny
Maybe like a weird fact, but what one I figured I dig back is as I understand it, Shiny is named after a particular sci-fi series. Is that right? Yeah. It was a slang word in Firefly by Joss Whedon. And they would just, they would just use the word shiny to mean like good.
I'm not sure the way they, they dropped their made up jargon. They just did it in such a casual way that like, it felt like this is actually like how they speak. They're like, oh, that's shiny. I can't even do it. Like I still like even trying to do it, I overemphasize a little, but they, they would just say it in such a casual way that when I was watching it, I thought to myself, oh, that'd be like a shiny would be a fun name for some kind of open source project.
And then not long after I came up with the idea of Shiny and had to create a repo for it. And it suggested the GitHub forum said like having trouble thinking of a name, consider it was shiny something Octocat. And I was like, oh man, it's gotta be shiny then. And that it stuck.
Do you watch a lot of sci-fi or what? No. And actually, I mean, I tried multiple times to watch Firefly just because I felt like I don't know, it had such high nerd cred and it didn't land for me. The first couple of times I tried to watch it. And then it was this particular time I was sick in bed with like a stomach flu or something. And that time I got hooked and I was like, okay, like I watched this thing end to end.
And the more I re you know, I've rewatched over the years, the more I've appreciated it. But it's funny because like, I think in the beginning, the early days of Shiny, when people heard this, they're like, oh, you are also like a diehard Joss Whedon, you know, like super fan of Firefly. And I was kind of like, sure, okay. But really, it was just I that name, I thought was catchy. But yeah, now, of course, the name has taken on such rich meaning for me.
Closing thoughts: find your Hadley
And I mean, I feel like it's turning into like the Hadley and Joe buddy show. But it just occurs to me as we're talking about this, that it is interesting, like Hadley and I, we don't, neither of us reports to the other. We're, we're, it's like we're in each other's orbits enough to know pretty well what's going on with the other person. But there is no, like, I feel like there's no competition at all between us. There's no like worrying about if I say the wrong thing in front of Hadley, what are there going to be like consequences. And that is incredibly valuable.
Like that's a very helpful person to have, especially when you have the right amount of complimentary and similar like commonalities. I like, I do highly recommend trying to find that, you know, like, you know, wherever you are and whatever you do, like to find someone who is not in your reporting chain who, you know, if you can really trust and, and whose opinion you respect and go out of your way to, to exchange ideas and, and support each other.
Yeah. No, Joe, thanks. Thanks so much for coming on. It's honestly so interesting to hear like you too, having interacted for so long and like, built really interesting things at Posit and I think to have these, but especially like Shiny, yeah, being like so load bearing in industries like the pharmaceutical industry and research there. It's been so interesting to hear about your journey there.
Thanks. Thanks. Appreciate you having me. And I love the podcast and I've learned so much from listening to other guests. So thank you. Yeah. All right. See ya.
