This Developing Story

TDS 85 - Pro Skater to Programmer

Episode Summary

Learn how Theo pivoted from a career in code to eventually leaving the grind to start his own thing.

Episode Notes

Episode Transcription

Episode 85 of this developing story.


we I'll get back again with another episode of this developing story. And I just want to say if you're not using Twitter spaces, wait. Yeah. But for real now, when I first became an engineer roughly about eight years ago, I would have never imagined Twitter still being the place where you can constantly make connections network to your next job and now sit and find community.


And, uh, with these Twitter spaces, I'm finding more and more a way for me to just be aware of other folks who are doing really cool. Uh, every now and then I followed this person called Danny Thompson infrequently. But every time he hosts this, these spaces, I always learn about someone I wasn't even aware of in the engineering or the tech space.


And one of these spaces I actually sat in was with Theo brown. Uh, he was a speaker fighting some. About skateboarding and the correlation to wearing out of program and that you just have to jump on the board. And I was so moved by that, that actually created a Tik TOK video about it. But also I reached out to the owner just like heads up.


What you said was actually really impactful to me either. Eight years into my career. Ah, I'm actually really excited to share this conversation with you. If you are not following me on Twitter already be Douggie on Twitter. I host these Twitter spaces once a week, uh, and this is the result of this, so that if you want to hear the full conversation, you've got to follow me on Twitter.


You can show up with a space, uh, if not, you can get the, uh, edited diversion right here. So here we go


to this day, it's still a little surreal to me that two of my favorite things, those being skateboards and computers. Both as popular as they are in one specific place. It's just surreal to me that I can come here and enjoy both as actively as I do.


One of my first like interactions with San Francisco was Tony Hawk's pro skater where Embarcadero is actually one of the maps. And I didn't have any context on, you know, the Hills and everything else like that. But I learned a lot about downtown San Francisco from that one. One game.


That's really cool.


Yeah. I still skateboard at the Embarcadero pretty regularly. The ferry building right across the street is my go-to stop ground best flat ground in the world. And it's still weird. Cause I'm so used to seeing it in like old Tony Hawk games. Videos and just being there as strange. I still remember when I first moved to SF and was staying in the mission and I was like skateboarding to the bus stop for the first time.


And I skated by like two famous spots that I'd seen in videos before. And that was just surreal to me. Cause there was like one spot within a 50 mile radius of where I grew up that like, I can name every skater that hit it, but going somewhere where I couldn't even name the like 10 skaters that hit it out of the like 500 plus that have was so crazy.


So I, I wanted to get into. Okay, so you found Minecraft, you had some downtime, you eventually learned how to code. So like what were you building with Minecraft? That skillset? Yeah, of course. So I have to thank my friends for this one. I was very lucky that my friends were all awful people and did a great job of breaking everything I ever cared about in Minecraft.


I could put all this effort into building this beautiful castle or this like huge farm or whatever. And my friends would always find incredibly creative ways to destroy it, which was both incredibly amusing and frustrating for my very invent. 15 or so year old self. So I got into hosting Minecraft servers and desperate hopes of having a place that my friends could hang out with me, but not destroy my stuff.


At the time I was using H monks, it was the standard and I had to learn, get, so I could get the freshest builds. H mod as they were made and also was using get to manage my instance of my server. So I could have like version control of my world and I found it to be an easy way to do that. So I was actually using get before I was using any.


Code related stuff like when I was 12 or so I built a crappy HTML website, but I never really put that time sitting down and solving problems with were with code before, but I was using it actively. I eventually started remote hosting my servers and learning the new screen in order to manage those background processes and things, and was using all of these like Nisha Linux tools before I had learned any code, but eventually due to a combination of each mod dying and being overtaken by.


And the desire to have more fine grain controls over who could or couldn't do certain things. In my Minecraft world, I got more into the plugin creation side for server plug-ins and contributed to various plugins like a world guard.  I just contributed to lots of small, uh, Java plugins for Minecraft servers, mostly to make it easier to manage like lots of Lottie. That's what I was thinking of. But the goal is mostly simplifying the process of managing different plots of land in Minecraft. So people could have an area that was theirs and they could control the permissions for, and.


That got me into like permissions and what I thought would eventually be security. And that kind of ended up being the path I went down. And my first internship was at Amazon doing security work. Okay. Well, so yeah. You first started at Amazon, but prior to Twitch, that is correct. Yes, but it was an internship during my time at university, but yes.


Okay. Excellent. Excellent. So w where did, um, you've got, you got the skillsets eventually. Um, so w where did Twitch came in? After I had finished up at school, my Amazon internship personally for me, was pretty rough. Didn't I know the right way to put it like super friendly, but I didn't get the mentorship that I should have as an intern and was kind of like left to figure things out on a team that hadn't figured things out for themselves yet.


So my internship experience was really rough and I'd actually sworn, I would never go back to the Amazon. But one of my friends I had made during that internship, I guess there was two details that the first thing that happened was during the internship, I made an open source Chrome extension called Chrome Tonya for windows 10, because this was around a woman.


Does 10. There was a really annoying behavior and windows 10, where you would search using Cortana. And it would always search thing, no matter what. So I wrote a Chrome extension that would redirect it to your default search engine or Google, duct, echo, whatever you chose. And then I ended up going viral and it was my first time like writing viral software outside of the Minecraft world that really like caught on.


I ended up getting. Interviews with random groups. Like I remember specifically when wall street journal hit me up for my opinions on, uh, Microsoft change and how exciting that was. Wow. Yeah, that all happened while I was at Amazon and I was trying my hardest to stay even like remotely focused on the job at hand while I had this open source thing blowing out and my team wasn't helping me at all, which is the point at which.


Decided I want to be more in the full, open source world and less in this like thing, corporate world. Yeah. And I had made a close friend through that, uh, Claire Pittman, who was working with me a lot on Quora or Chrome Tana and other various projects. She ended up getting the job at Twitch and convinced me that the specifically the creative team at Twitch, which was the first non gaming team focused on music, uh, painting and other interactive media and art.


That I would be a good fit there because I come from the gaming world, but my heart is truly in art and music and the possibility of being on a team where I could have this best of both where I'm at the gaming company, working on fun tech, helping artists directly. Was too enticing an opportunity. So I took her up on it and yeah, I wasn't qualified at all.


I bombed the white boarding. I'm pretty sure the engineers that I interviewed with were incredibly skeptical of my ability to deliver, but the. There are two people in particular. One was, I ended up being my manager and mentor. The other ended up being the exec for the ORC. Both really liked my energy.


And even though I didn't demonstrate the white boarding ability or the technical chops, they might've expected. They saw my drive and desired. Solve problems. However I could. And they chose to bet on that with a free month contract to see if I could prove myself. And they ended up extending that another three months because they still weren't sure.


But yeah, it took six months for me to prove I was worthy of the full-time role, but they ended up being awesome mentors and helps throughout. I specifically that first mentor and manager I owe dearly. He really got me in the mindset of ignore the bull crap and just solve the problem in front of you.


Like, if you have a thing that's causing issues and you can break it down into pieces that you can fix, then why are we still talking? Go fix it. Yeah. That's actually really good advice too, like, right, right there at the end too, uh, were a lot of folks approach problems or ideas. And like, if you learn how to code.


When I first started learning how to code like eight, nine years ago. Um, I'd meet a lot of folks who are like, I want to learn the, to how you build an next Facebook. Um, and even at that time, I knew scoping problems into approachable. Things was always going to be like it was going to go further than, than I want to build the next social network, which shout out to Facebook right now and the hug ups, um, in what's going on over there.


But hopefully they, they figured those things out. But I guess my point is like building a small thing, like from Tanah, uh, one, it got a lot of attention. Uh, people were kind of able to understand the story, which is like you, you solve the pain point that everybody was having, uh, with defaults, um, when windows 10 and, uh, because it, it solved that pain point.


You saw lots of attention. I kind of blows me away too, as well. Like at your time at Amazon, uh, no one on the team or anybody who sorta was within the reporting structure, like took note of this extension and the attention you were getting. No, particularly, uh, near the end. I know that like my, at the time manager, his manager was somewhat interested in curious.


Honestly, I think what happened there more than anything was I got an internship on a team that was about to get reorged and the person who was supposed to be my mentor took a one month vacation, two weeks in and then had a paternity leave right after that. So I just didn't have a mentor for over half my intern.


Got it, it was kind of left to figure that out. I'm also very familiar with like the non-coding content on Twitch as well. Um, sorry, non gaming content. Cause I, I do, as you know, and most people here as well, who are listening, know that I stream on Twitch, uh, technical content. Uh, so it sounds like. When you joined Twitch, that was like, was that when the Bob Ross era, when they were, yeah, I actually joined on the team that was formed because Bob Ross went better than expected.


The first head count they got for that team went to me and I ended up rewriting all the code that Bob Ross and the other marathons ran. That is amazing. And it's, it's great that I could to say, Bob Ross and you exactly what I'm talking about for the listeners. When the Twitch ma tried to make the, um, the switch, not the switch, but add a new category, uh, stream categories.


They streamed art like marathons and Bob Ross was one of them. I think there were some other experiments. Cause I remember watching like Pokemon there's like a Pokemon marathon. It's a big one. After Bob Ross was power Rangers. And that was also my first production outage. We were using elixir to do the video infra, which was.


Uh, phenomenal language that really gave me my first like quote 10 X engineer moment where I, I went from feeling like somebody pretending to be a programmer because they had nothing else to do to, to really feeling like I could solve problems in that language, on those projects. And yeah, the power Rangers marathon crashed when it was transitioning episodes because I used the lowercase P instead of an uppercase P in the powder room.


Definition a rookie mistake. Yeah. And I blessed TypeScript as amazing. And elixir is like, uh, I know it's still got a very strong following, but like the underlying technology Erling, uh, was used for like, I, I believe correct me if I'm wrong, like stockbroker phones systems, it was used for most connection systems even way back in.


My understanding, which like to be clear, I'm not anywhere near enough of a programming language nerd to fully get this. But the way it was described to me was back in the assembly days, there was different like caps of mind forming around how we should structure code and a human language that we can better understand.


And the act like the academic side went the C route with MIT. And the communication side, like in the bell world with went the Erling route more focused on distribution and shared knowledge between nodes when there was still no such thing as a network yet, which meant C was the one that everyone bet on.


Cause it made more sense of what they understood, but the strengths of Erling have shown over time. In particular like WhatsApp, for example, was acquired with 900 million users. And less than nine engineers working on backend, their entire system was through early. Wow. That's uh, that's. I mean, that's still some pretty good insight to hopefully folks, uh, understand the, uh, the level of what you can do and accomplish, do Earline, but, um, yeah, also really good insight too, as well.


Cause I wasn't, I wasn't aware that Twitch had any sort of technologies. You use an airline or maybe they're not using it still. They are no longer, as far as I know, most of the Alexa stuff was sunset. The reason that we were doing it was the speed at which those TV deals were being picked up. And we had like an internal team that was me and two other engineers that were managing and writing the code for the majority of those integrations and deals.


The problem we ran into was, as it turns out, broadcast television networks have lots of different ways of doing things. Increasingly widely inconsistent, sadly enough. And the, what we discovered is what we were doing. Wasn't a thing, a small team does this actually, an industry category category called broadcast network solutions that is focused on integrating all of these obtuse technologies and using standards to try and turn that into a consumable feed and three engineers and Alexa was not enough to replace that industry category.


So. Having what was honestly a fun job of outsourcing my own team to another company that better understood it. But the end result of that was the one team that was agile enough and responsive enough to need something as fast and dynamic as Alexa. We no longer existed. So I got thrown onto a team that was a video on demand team at Twitch, which was going team like the vast majority of backend is.


I couldn't go in to this day. Like I can write it. I can be productive in it, but I cannot enjoy myself personally while I'm doing it. And I also had a new manager at the time who was a bit of a front end nerd, and I was very anti front end. I had come from like the new screen and Linux hosting servers front-end was a problem I had to solve it.


Wasn't a thing I went to, to enjoy myself. And at the time Twitch was beginning to start up rewrite from. It was Ember JS over to react and TypeScript. And my manager sat me down. I was like, yeah, I can clearly see you do not enjoy this Golang thing. Like you're a functional programming nerd. This isn't for you.


But you need to do something. I know this is going to sound crazy, but I honestly think you'll enjoy this new react TypeScript thing. It's different, but give it a shot. I also think that it's going to get more functional in the future. Wink, wink, nudge, nudge. So now's a good time to get it. Three months later, hooks got announced and I haven't looked back.


Oh, that's awesome. So that was like what? 2018? Yep. Yeah. Yeah. Excellent. Yeah. It's um, it's funny. Cause I've been using Twitch as a consumer for like the entire time you've been, you've been, I guess, associated with it. Um, I'm curious though, the. I know you don't work at Twitch anymore, but I'm curious to get your opinion on this sort of non-gaming content and whether it has like, would you consider it being successful or do you think it's it's um, like an area that folks should continue to pay attention to?


Very good question. I. I have a weird perspective in that I was hired at Twitch specifically to be on the team that made that happen. And that team went from creative content quickly to content development and like PR or like broadcast television deals, content. So I've seen Twitch's focus shift wildly from, yes, we need artists to be doing all of these things and we need to invest in that to wait.


We can do TV deals. Let's do that instead. So I. I don't know where their mind is at any given time, but generally speaking, I know that there's a lot of good people there that care a lot about non-gaming. And if anything, the company's hiring towards an innovating tour away from like gaming and towards non gaming stuff.


In particular, I know that been tripling down on music, like extra hard lately as for what, where their end goal is. The only thing I can say with confidence is they don't know, they're trying to grow wherever there are promising metrics. And if non-gaming content continues to look promising, they'll keep going in that direction.


And if it doesn't, then they won't, but the company is not done. They know that their money's in gaming still and they definitely prioritize accordingly. Yeah. Yeah. It definitely feels that definitely prioritizing, still getting. It feels like I can get latest and greatest and whatever games could going to get shipped, or even betas that are happening.


It's a great place to discover that stuff. Um, but also what the new shift to software and game development, uh, it feels better like when I stream, uh, as far as like the engagement and, uh, it's funny cause organic growth or organic eyeballs, isn't really a thing I feel like on Twitch. But I feel like in the software and gaming space, I do get the folks that do hang around on that one channel.


Uh, and we'll watch anybody who's, who's streaming just software development. Um, so that that's been helpful. But I think the benefit there is because it's such a, such a small category that you do get organic growth. And I knew community members from that. Uh, but I couldn't imagine like if I was streaming.


Um, and I'll find out a fantasy 13 and a half or whatever. After a couple years it's more of like a niche. And I don't, I wouldn't see that continuing to grow, which not a great example because that's a game. But, um, maybe if I was doing watercolors, maybe that's a better example. Yeah, absolutely. The key on Twitch will always be discovery, which.


My opinion, which has never been particularly strong in competitive platforms like tech talk or YouTube, that shove related content in your face in a way that's really compelling. Usually when somebody goes to Twitch it's because they have something in mind already that they want to watch. And as such the key is to get them there in a reasonable fashion.


So like in coding, if somebody goes to Twitch and they're watching a code streamer, not streamers done, these want to keep watching code. There's a decent chance. They'll find their way to you. For that to happen. And something like painting is less likely due to like the more attached to nature with an artist.


Like they're showing up for a specific artist, but that's where something like, I'm sure you've noticed with Twitter comes in by building the dedicated audience here. It's very, it's. I shouldn't say it's easy, but it's relatively strong to engage them on your platform of choice externally. So if you get them deeply engaged on one.


Which is a great place to maintain and deepen those relationships further. So I admit, I alluded to it that, um, you don't want to go work at Twitch. You're working in a whole different thing. Uh, can we get into that? Like what, uh, the name of it is round is that the actual name of the product is the name of the main product I'm shipping.


Yes, but the company is T3 tools. Okay. Yeah. So talk about, um, I guess now what you're focusing on with three, two T3 tools and what that is, and then we can. So what I was at Twitch, I had the really lucky experience of hopping around from team to team quite a bit. I was never, uh, I was on one team for about a year and a half, but for the most part, I was never in one place longer than a year.


And I got to work on a lot of different surfaces and touch a lot of different products. I ended my time at Twitch on the creator team. To be Frank, a little disappointed cause I was hoping to make more impact there. I firmly believe that creator tools have been overlooked. As innovation continues occurring in the live space.


It feels like the way that we consume live content, the way we interact, the way that we do things like everything. Channel points to video and beds have improved drastically over the last decade. But the software we actually use to stream feels relatively stagnant and the tools that we use a log with it haven't grown much either.


I see fun hardware developments, like there's the Opal camera or like the stream deck and things like that that make it easier to interface with the software that as it exists, but I don't see very much innovation going on and the software itself and the results spend on. A lackluster feeling as a live creator compared to that of other creators.


I like to look at the audio space, for example. And if you take any audio producer, that's been doing it for a while and ask them about their favorite software. They're going to give you a loving rant about Ableton or FL studio or logic pro or whatever, their software preferences. They're going to tell you everything they love about.


If you take some, uh, video creator that does YouTube videos or does like media for Hollywood and ask them what their favorite software is. They're going to give you a loving rant about premier pro or final cut or DaVinci resolve or whatever their software of choices. If you ask us a live stream or what their favorite software is, they're going to complain for two days straight because everything sucks.


This is, this is true, and this is the. At the current, I guess the current state of the live streaming software, like it based, am I correct to say it kind of centralizes around OBS and then people build their skins on top of that? That is correct. Yeah. For those that don't know, OBS is the open broadcast suite.


It is an open source. Piece of software, mostly created by one dude that is used to capture video and audio from various things, usually on windows and or encode those into an H 2 64 RTMP stream that can be sent out to a platform like Twitter, YouTube to be consumed and distributed live to. However many users OBS has become the.


Necessary piece. I don't know how public I can be with numbers, but I can say without question that the vast majority of streamers on a platform like Twitch are using OBS and as such it's it's, it's no longer like an arguable dependency. It's a necessity. And I have nothing against OBS. I think it's incredible what it's done.


If anything, my problem with OBS is that. Other software and the space, does it like to acknowledge it and likes to pretend that they can just outright replace it? Something like stream yard, for example, went out of their way to be an in-browser streaming solution where rather than using OBS you output from stream yard directly to your platform of choice, which is cool for the use case of someone who.


Does who has never done this before, wants to get started quick. But if I want to do something more specific, like let's say a or B where I'm hosting a stream and I want you to be a guest and have your HD video feed inside of my OBS instance, that is incredibly difficult to do right now. The way most streamers do it is they'll open up something like discord or zoom.


They'll join a phone call there. They'll actually have a separate webcam setup because windows doesn't like you to use one camera on more than one device. So they'll have two webcams, one for their stream, one crappier, one for their video calls. They'll do a call on discord and then they'll use OBS to scream.


The piece of that call, they want to embed in their video. And then if like discord does something, they get a notification. The window moves slightly. The capture gets all screwed up in the video feed. As a result gets screwed up too. There's no easy way for me to embed another person's video feed into my.


This is just one example of the nearly infinite set of problems that live creators run into due to weaknesses of the tools. But this is one I care a lot about and actually have worked solutions into that. I'm proud of where my video call surface round works a lot like zoom or even more so like Google meet where you send somebody a link, they joined, you approve them there.


But this will also generate a unique URL that you can embed in OBS directly to have their HD video feed as an object in OBS that you're able to move at filters layers and do as you please with, so this opens up a ton of possibilities. I mean, this is the, the exact system that I was a year and a half ago, starting COVID we started doing some streams from the GitHub stream.


Uh, we ended up figuring out how to do this with zoom, uh, by what you just explained, uh, cropping the window to only have the guest, uh, video, and then getting that into ops. And then it's sort of almost works. Um, and then we have like the now, before it used to be like a plugin, you had to do some like sideloading stuff going on.


Uh, but now you have virtual camp. Which my limit for virtual cams to get into zoom, to share my, my OBS is that it takes up way more resources, especially when you're doing the virtual cam and streaming to Twitch. So your solution sounds great. Uh, I guess I got, let's summarize with that and, uh, I am looking forward to alpha beta, whatever, whatever release you're on right now, because at the moment we've, we've migrated to OBF ninja.


But that still has a little bit of limitations and folks are a little confused when we throw them a ninja link. Yeah. OBS ninja is a really awesome piece of software, but I, I think it's solving the problem from the opposite side where it's saying OBS is great, but it's hard to run locally. What if we put that in the server?


Whereas my solution is more each of these specific, how do I put it each of these different. Pieces is an untimely loss of thought. Sorry. Hey. Yeah. Well, it's the, um, the, the fact that she could join a call and have separate video output that you could add that yes. You make your route into OBS. That's exactly what I need.


The input side. Not the output side. That's yes. Yes. Cause this word discord is great. Um, but there is some limitations, like if you do, we. The channel we'll go chat. Like for example, uh, I do discord video and we'll have a chat channel to go along with the video. So that way people in the discord room can talk.


So if I click off the video, chat, it minimizes the video, but I can go chat with other folks. Now I have to do like this sort of dual pull up my phone to do the chat on discord, but then on my windows that have cropped perfectly don't touch. Yeah, I've seen this way too often. And usually you end up with three monitors, all doing different things.


One that's fully locked, just so you can capture from it. And yeah, I've seen some crazy stuff to solve these problems. And even then, if one person you don't expect to joins the call, now you have to redo your overlay, move all the name plates around and pray that something doesn't break it before. Yeah.


Very, very, very true. So, uh, your approach, are you able to talk a little more about the, I guess there's that approach, um, round, is that what we're talking about right now is something different. Okay. Nope. This is round. Uh, I am more than happy to go fully into detail on the tech. It is beautifully simple, and I'm really proud of it.


If I was to see three people here, try and clone exactly what I've built. I'd be pumped into. So, oh, ox. Awesome. Uh, yeah, for folks who are interested in asking questions that we definitely crossed the halfway point. So if you want to request, raise your hand, uh, third emoji, uh, w you know, I could bump you up to ask questions, but I guess I will ask all the questions for now, uh, which is, um, yeah.


Explain how the approach, uh, with round and how you sort of made this. Yeah, of course. So something I've learned over the years is the simpler. You can boil your problem down to an issue of data between or of a pipe between your data and your users, the simpler your solution space can be. I generally try to make the smallest surface area possible.


That is inclusive of the problem and the solutions as they're needed so that the general technical stack. Is as close to zero and front as I could get. I am personally hosting no boxes for this service whatsoever. The flow of data is a database instance. That's being hosted at this point by planet scale.


I've swapped it a few times, but I'm pretty happy with planet scale. Right now, I have a bunch of Lambdas that get stubbed out through versus. And the next JS app that does that stubbing and that creates a client that connects, or that gets data and makes changes to the database directly through the API APIs as defined through next DAS.


So the result is I have a database, a Lambda that serves a bunch of HTML, as well as JavaScript and API. And that creates a client that users consume directly as for the video feed itself. I'm currently using a as the video service provider with a couple of niceties I've added on top. And the result there is they're hosting the turn servers and all the web RTC and for necessary to maintain good connection there.


And all I have to do is authenticate the user, what they join again through that Lambda. So my surface area is the connection URL to my database. My very minimal, next JS TypeScript code base. And then my. And in order for me to make a change, like, let's say, I want to change the name of a field on one of my database models.


I can update that in Prisma that updates the type definition and TypeScript for that. For my Prisma client, I consume that in my next JS app, using a law or a library called TRBC to define an API and consume it without any middleware that is also type safe. So if I'm rendering against this field in my front end and I changed the name.


I'll get a type error on my front end that I changed the name of a field in my database model, because it's inherited all the way up to. Nice. So for, as for the user experience, like, eh, am I expected to corner repo or am I signing up around the you're providing me some sort of, yeah. So if you're a user right now, it is incredibly simple experience.


It feels just like a Google meet. If you are right now, I would assume that your experience is you're a guest on somebody else's. Already in the group. So I let's say I'm hosting a show at you want to join. I send you a link to Roundup, It asks you to sign in with your Twitch, your Twitter, or your YouTube account.


You sign in with whichever you prefer. You have your little video camera, preview feed, come up. It has a little request to join button. And then when you request, I, as the host will see in my. That be Douggie requested to join. It shows your Twitter account. If that's what you signed in with, I could click and see, oh, this is actually be Douggie from Twitter.


I know who this is confidently. And then I approve. And now you're in the call, just like a Google meet at that point. Every member of the call has a unique URL that's generated for their dedicated embed. At which point I can copy that feed URL and drop that in OBS as a new browser. And I have a dedicated window.


That's just a, your video feed in there directly. I also have a stream mode view in the browser. So if you just want to do the old school capture from the browser, you can do that as well. It'll even embed nameplates underneath each person's video feed using their like, handle from whatever platform they signed in with.


So you'd see that I'm at on Twitter would see your Twitter handle. And we know who's who all without having to create. So you have those two options. You can do it the manual way, where you embed everything in OBS via browser sources and have that full, granular control. Or you can still just capture the window and have a better experience than you would have otherwise.


Yeah. Yeah. Uh, what about, uh, if folks want to, screen-share like a window as part of this, uh, Roundup. I just added screen-sharing it's in super early access. Only enabled it in a few rooms. I need to do some UI tidy up. Cause it just, it looks a little ugly, but the video sharing quality is phenomenal. And the few people who have been using it have been really liking the use case in particular, because screen shares are also embeddable, so I could embed your screen-share in my stream.


Excellent. Yeah. And that's actually pretty powerful for folks who, uh, this does not happen very often for myself, but, uh, I know it's common for two streamers to get on their own channels and hit live. Um, so it sounds like each person can have separate video of their guest on stream as they chat. Correct.


Yeah. The other really compelling use case that I've been told a lot about I'll admit, I don't know much, cause it's not my area, but apparently Dungeons and dragons is very much in need of something like this in order to have a high quality screen-share and multiple assignable video feeds to specific places very much fits within that.


Or use case. So I've been finding more random things like that. Also V tubing, for example, they have very strong like requirements around chroma keying, and the ability to key out a background color so they could have pseudo transparency and make it look like two V tubers are in the same space. So by giving them the ability to embed a high-quality screenshare or other feed directly, they're able to have a high enough quality feed.


Yeah. Do transparency and have a, an HD pseudo transparent result. Like if you see the tweet that, uh, , uh, uh, embedded here, the video that's at the beginning of that preview is two streamers. One of which is remote being captured through a round and having their background color keyed out. You can't even tell which one of them is native and which one of them is remote due to the quality.


Wow. That's amazing. I am actually really, I originally had you come into the conversation, just like re reiterate folks, um, Theo coming from a background of doing some extreme sports, uh, got injured. I learned how to code through Minecraft eventually made it to Amazon and then eventually. And now working on your own project in the span of is this, um, from zero to 60, this is my guess a decade about a decade.


Okay. So within 10 years now working on thing, but I guess the one thing that really pointed out is the fact that you were able to gain a lot of knowledge from working at Twitch and working on some of these problems. And I think you're in a very interesting position to solve this too as well. Cause like I say right now, what you were explaining is it's a use case that I would be using literally this Friday.


On-stream uh, I don't know if I can get, um, prepared to test that out by Friday. Um, but I would totally use that on the, on the get hub stream. As we have a guest to talk about their open source projects every Friday, open-source Friday folks plug. By the amount of hoops we have to jump through. We've got it down to the streamline with the zoom embedding inside of my OBS, but it's not perfect.


And, uh, this sounds closer to perfect. I would love to get your testing as soon as possible. I can go a little more in depth. I definitely want to keep on topic of the, like, how did I get here and be as useful to other developers as possible. There, I do have some thoughts. I know you really liked my quote before, and I definitely want to emphasize that the way you get better at programming isn't by like sitting in front of your screen.


Like staring at books and read these all day it's by making mistakes. And this is the thing I got from skateboarding that was super beneficial. Like you don't learn a skateboard trick by watching YouTube videos. I'll let you learn a skateboard trick by going outside and hitting the ground over and over again until you eventually right away.


The thing I love about software is how much cheaper in like less risky it is to make those types of mistakes. Like I can screw up my entire code base a thousand times in a row. And all I got out of it. And like the only thing that came from it is a bunch of new stuff I learned I don't get injured or like there's obviously the ego hit, but generally speaking, I really dig it.


Like, I love the feeling of screwing up as a software engineer because it means I got better. And if you learn to take that mindset of, oh, I don't know. But I can figure it out now or when you make a mistake it's oh, that's one less thing I have to worry about in the future. And you really push that to its limit.


You could do some. Yeah, that is, that is 100% right, right. On the money as well. Because I think a lot of times we will, we can get like a space where like, like you, when you made the switch to react and TypeScript, like a lot of folks make that switch with like years or even months of, of, uh, research and trying to figure out is this the right decision?


Or should I learn Java script first? Did I run Python first? Or did I learned? And I think the answer is really. Building something. And having, having an idea like Chrome, Tanya is a good like playground. Even if you built the thing and it never worked, you still learned how to not build something in the future are basically where to make the wrong turns.


Because if you were to attempt to build Crotona, like the second time, I bet you, if you, if you went to build that the second time today, uh, I bet it'd be quite different in the approach even code wise. Uh, but you have so much like under your belt of knowledge from that. Fun fact though. And actually I got really close to finishing a rewrite of Chrome, Tonya and TypeScript in Preact.


It had two bugs. When I did a beta test, it I've been too lazy to fix them. It's been sitting for a year. If anybody wants their hack Tober Fest contribution, they wants it to ship to over a million people. The OBR slash Chrome Tauna on GitHub is currently desperate for someone to fix those two or three remaining bugs.


And I'm way too lazy. So, well, I'm, uh, I'm going to, I'm going to find that and I'm gonna, I'm gonna tweet that out. Um, cause I know some folks sitting here right now who are trying to get some backend experience and like also transitioning from other places to end, the tech could definitely use that sort of like.


And get, yeah, it's a super front end thing for what it's worth it is. It is not only front end. It is Google Chrome extension front end, which makes it very special and annoying. But, uh, it is very close to ready. I just have to fix a rejects or two, I think, and it should be good to ship. So it would be a fun first contribution, even if your contribution is just like making sure it works, maybe fixing a typo or two and shipping, I would love the help and the additional confidence from another developer of pretty much any level.


So yeah, it feels. Give that a look. Yeah. And I got one other question for you too, as well. Cause we kind of skipped directly to T3 tools, but, um, at what point did you have the confidence to, to go and work on something like. I that's a good question. That came in a few parts for me. So throughout my time at Twitch, I got a lot of feedback along the lines of your energy.


Makes me happy to still be here from a lot of like the original, like founding team type people at Twitch that I noticed were leaving like one out of time. And. Slowly feedback transitioned from you're reminding me why I'm here too. I don't know if you still fit here anymore. And I had to really think it through, because I had never done the startup.


Like I've never been at a smaller company. I kind of went straight from college to Twitch and. It took a lot of convincing. Eventually I found, or I, uh, I, it was what I was on the creator team at Twitch. I was getting disappointed at how much work it was to get started is the best I could phrase it. Like when there were things that were obvious wins for our users, the amount of energy it took to get them considered was so great.


And the amount of energy it would take to get them done was so little that I was getting increasingly frustrated and eventually just. Said, screw it. I can do this myself. I worked at a startup, uh, TTFM labs for a bit. And through there learned quickly that just, just from the way the CEO and the company that clearly this isn't that hard.


If they could get this far with this little understanding of the space. And at the same time I was working on round as a side project, just to. I was a big consumer of multi-person content on Twitch and was just curious if I could make something better for it. So I was exploring that space casually showed it to a couple of friends who ended up immediately loving it and wanting to use it for all of their streams.


At which point I realized, wow, this side project has more users than the company I'm working for. My tech bills are nothing, and I'm really confident in this. I think I can do this. I also started interviewing at other startups to see what my next gig would be. And I was really lucky actually, to meet


They're a new, like modern Heroku type thing. And he really wanted me at the company, but also saw what I was building and his confidence that I could actually do this as well as the confidence I got seeing someone. On it to be Frank who looked like me, talked like me thought like me and was the backend equivalent of what I want to be for like front end and consumer stuff and realizing he could succeed running a company with the same mindset as me was just so enticing that I had.


Give it a go myself. So I just brought on my first two contractors. I am hopefully going to bring on my first full timer by the end of next week. I am very close to securing some significant investments. We have a number of paying customers already and yeah, the things are going well. I'm actually a CEO running a company now.


It's been less than a year since I quit my job at Twitch. It's crazy how quick that happens. I, I quit on a whim thinking that I could maybe be part of the startup world and less than nine months later, I'm running a company in my own. Yeah, that is awesome. Cause like everything, everything you're saying and your background with Twitch and what you're working on today, like I know folks, it sounds like you're already, you're you're already good on that front, but yeah, I know folks that would love to chat with you about a future investment in conversations.


You definitely scratching an itch right now as more and more folks as we continue to have remote events, remote streams, uh, like, well, livestream is, it's definitely a thing that's not going away. Um, and it's definitely a space that's, that's going to be booming in the next couple of years, uh, with COVID or without COVID, like, I think people have got the taste of what's possible in live streaming.


Um, so I can only see this, this space exploding even further.


Before we wind down, I do have my one last pro tip that this'll probably help you guys out a bit too. Over on the GitHub side, I credit my early success in the speed at which I got good to a lot of things, but one in particular, I think this is the luckiest thing I stumbled into as a develop.


I learned to get before I wrote my first line of code. And I think that gave me the confidence to learn the way I did early on. Where, what, when I wrote my first line of code, I knew how to undo it. I knew how to like store it, stash it, make it go away and make it come back confidently. And that confidence gave me.


The freedom to learn the way I want it to and to screw up the ways I needed to, and my like core philosophy that I've developed from this as the idea of building safety nets. I consider it my responsibility now as like a more principal engineer to build the safety nets that junior devs need to learn and fail with confidence and know they can get back up and learn from that mistake.


So if you take anything from this and you don't know. Go learn enough, get to feel confident that you won't lose your code ever again, that confidence will make it so much easier to learn. Uh, what a powerful conversation. And I live in a powerful point to actually end on, um, what I find more and more is that information is free and folks are freely willing to give it out.


Now, if you put yourself in the right place by intent joining these Twitter spaces, asking questions, following, following folks, um, there's a lot of trajectory, a lot of space for you to grow in your career. And I hope that this podcast will be that for you. And if you have the time, please check out Theo's, uh, project, which is T3 tools round.


If you're a Twitch streamer, uh, definitely worth giving it a try, sign up for the waiting list. And with that, I'll say the next one. .