episode 8 | February 10 2026
More Code, More Problems: Keeping Mobile Apps Fast, Small, and Reliable with Phil Rabin

More Code, More Problems: Keeping Mobile Apps Fast, Small, and Reliable with Phil Rabin
Beyond the Noise
About the episode
Phil Rabin, Engineering Director at SoFi, joins Matt Klein to trace a career that starts in the wild west of early web dev - ActionScript, Flash, IE6 hacks, and DIY 'learn it from books' grit - and lands at the sharp edge of modern mobile platform engineering. Phil shares how a government broadcaster in Canada nearly built 'Spotify before Spotify,' what it felt like to watch the world pivot from web-first to mobile-first, and why the frontend/mobile craft is still wildly underestimated in complexity.
Phil discusses what it was like in the early days at Uber: building 'Muber' (a mobile web stopgap), shipping the first Android experiences, and eventually confronting the brutal math of scale: massive binaries, toolchains buckling, and the moment you realize you can't 'code your way out' of an architecture that no longer fits. Phil digs into what changes when your app becomes mission-critical infrastructure, and brings the story to SoFi, discussing how they achieve reliability & consistent incident management, and what it's like to run one of the world's largest Flutter apps. Phil and Matt close out the conversation with a forward-looking discussion on AI's growing role in developer workflows and the next frontier: agents that don't just help you write code, but help you determine whether it's actually working.
[00:00:00]
Matt Klein: All right. Welcome to another episode of Beyond the Noise: Signals, Stories, and Spicy Takes the show where we dig into the stories of the people shaping the future of app-based computing with a special focus on mobile. I'm your host, Matt Klein, co-founder and CTO of bitdrift, as well as the founder of Envoy.
And in each episode we'll talk with engineers, founders, and technical leaders who've transformed the way their companies build and understand what's happening inside their systems. We'll dig into the challenges, the breakthroughs, the lessons learned, and we'll wrap it all up with their hottest takes. So let's dive in.
Today, I'm thrilled to have with us Phil Rabin, uh, who's the engineering director at SoFi Technologies, a FinTech company in San Francisco. He leads the foundations org, which focuses on [00:01:00] mobile and frontend web platforms. He has made a career of working on scaling client technologies and building platform engineering teams for large consumer apps.
He spent 10 years at Uber where he built the first mobile web app and native Android mobile applications, and he also founded mobile platform teams for both rides and Uber Eats. Fantastic. Thank you, Phil, for joining us.
Phil Rabin: Yeah, my pleasure. Thanks for having me.
Matt Klein: Yeah. Um, you have a fantastic background and how I typically start the episode is... would love to just learn a little bit more about you, you know, how you got into engineering...
would love to learn a little more about what got you into mobile and frontend development and what excites you about it.
Phil Rabin: Sure. Yeah. I can start right from the beginning. I mean, I, I've been, into computers since the nineties when I was in high school. And I built my first website, I think in probably like '96 or '97, back when the web was just, you know, pretty...
Matt Klein: so did I,
yes, I remember that time.
Phil Rabin: You know, I like ran [00:02:00] my own little
like web server on my, you know, like home computer, you know, built, kinda websites for my friends and I really got into flash development. And I was really into like kinda the more creative aspects of... of what kind of frontend development. I mean, flash really blew my mind.
It wasn't until like HTML but then when Flash came out, I was like, that's all I did pretty much was flash development.
Matt Klein: There was that, there was that time period, I feel like, in the late nineties, early two thousands when everyone started building every website with flash. I, I think I also did that.
Phil Rabin: It was light years ahead.
Matt Klein: Yeah.
Phil Rabin: The, the, the, just the difference of what you could do. You know, it, it was pretty advanced for its day, you know? Like full vector, you know, full animations, interactive. You had music, um, embedding. You could, you could do all the scripting.
Matt Klein: Yeah.
Phil Rabin: It was...
Matt Klein: well, I was gonna say,
we're like totally dating ourselves now, but what, what is, what is the language that you wrote in, in flash?
I can't actually remember the name...
Phil Rabin: ActionScript
Matt Klein: ActionScript!
Yeah. And I, I remember it's, it was, was pretty good language actually for [00:03:00] the time. Could
Phil Rabin: it's JavaScript.
Matt Klein: You could do, you could do, yeah. You could do all kinds of stuff,
right? Yeah. Anyway, sorry.
Phil Rabin: It interoped with, with JavaScript as well. I mean, you could,
Matt Klein: yeah,
Phil Rabin: you could bridge the code to your browser and you could do asynchronous stuff and you could do RTMP and live streaming, you know, gaming...
It was really a powerful platform, you know, and, and
Matt Klein: yeah,
Phil Rabin: for anyone who was like into more creative stuff, it was just like a...
Matt Klein: right.
Phil Rabin: A huge unlock that you just couldn't do on the web. And really you just had like, you know, I, I remember having animated GIFs and I thought that was the coolest thing ever.
And that was pretty much, you know... and maybe like, you know, uh, some of the marques effects that you could have that was pretty much... some rotation. But otherwise there wasn't much you could do back then on, on, you know...
Matt Klein: cool. All right. Sorry. Keep, keep, keep going.
Phil Rabin: Yeah. Yeah, I guess I, I went into computer science back in, I, I guess year 2000.
I, I had kind of a really kind of like, windy way. I was- I did a few years in my computer science degree and like a lot of people in tech kind of like dropped out of the computer science program. [00:04:00] And, and you know, mostly 'cause I- it wasn't interactive enough for me. I was really like into my... frontend development.
And back in the nineties it was really like, it was working on like Sun Microsystems machines and I thought the, the program was pretty dry. So actually like, like... you know, I finished with an arts degree and did a, a hard pivot. But the thing that never stopped was actually me doing web development and, and building my own websites and doing like,
Matt Klein: oh, okay.
Phil Rabin: Work
Matt Klein: yeah. Fantastic.
Phil Rabin: So actually by- when I dropped out of computer science, I actually started doing more of my own stuff. But then I actually went back and did a postgraduate. So like the through line is that, you know, it was a windy path to get where I was going. And I think after the .com crash, there were so many people kinda like leaving the industry and it felt like the, the bubble had burst and there wasn't really gonna be much employment.
So there was a weird moment there when like, you know, 2004, 5, 6 where it seemed like things were kind of like dried up employment wise. But, you know, I kinda like found my way back into the industry, kind of on my own terms. You know, it's just not like it is today where [00:05:00] you have, you know...
the, the computer science programs and master's programs and everything kind of funnels into these, you know, into these internship programs. You know, I grew up in Canada and there, there wasn't really any of that going on. It was, it was kind of fend for yourself, figure it out yourself. You know, there wasn't even like websites really to learn this stuff.
You had to like, you know, poke around with books and trial and error. And, and kind of experiment yourself. I mean, it was really like the, you know, the new frontier... yeah. Totally different scene than that today.
Matt Klein: I, I know, I, I think, many people who are listening, which is weird to me because it makes us feel old,
we're, we're probably about the same age, and, you know, it's hard to- hard to imagine, I think for people that there wasn't an internet that you just could learn whatever you want. It's like you had to go to the bookstore and get a... book on computer programming or,
Phil Rabin: yeah, I had a couple...
Matt Klein: that was the only way that there, there was basically.
Phil Rabin: Yeah.
And you know, in high school I had a couple neighbors. One guy was, uh, was just a computer guy and then the other dude was more of a hardware [00:06:00] guy. And I would go over to their house and just like, I, you know, bang on the door and be like, 'Hey, teach me stuff. What do you know?' And I think they're... what they know, like what, what they knew,
compared to what most people know today was still probably pretty limited, you know? They had probably... they were just scratching the surface of this stuff.
Um, you know, like working with the command line or like working with like old, you know, basic windows, you know, early windows machines. And we had like an old Mac, um, that we poked around on.
So it, it was...
Matt Klein: yeah.
Phil Rabin: Yeah. Yeah. It was, it was less formal than it is today. Yeah.
Matt Klein: Yeah.
For sure. Anyway, all right. So you were dabbling in frontend development and then what?
Phil Rabin: Yeah,
and then my, my first job I got was actually really, really cool. It was for the, for the CBC, which is the Canadian Broadcasting Corporation, which is like the, the BBC of Canada or like NPR here.
Had an opportunity to join the team and we built, um, kind of one of Canada's first digital music streaming services. It was probably, I mean, it was like what SoundCloud or, Spotify was. You know what, what they are, today [00:07:00] we were actually ahead of them. We had like, you know, real live streaming, you know, actually hosted radio with streaming shows.
And then we had a basically self-serve database where artists could upload their own music and then we would source that music for the live streams. And you could create playlists. And...
Matt Klein: so you're saying that
the, that the government of Canada could have been Spotify? Is that, is that what you're saying?
Phil Rabin: Yeah. I mean, I remember even when SoundCloud came out, you know, we were like, oh, cool. Like they did a really good job on this. You know, like we were already off to the races and, you know, Spotify came like much later.
Matt Klein: Yeah.
Phil Rabin: Um, and, uh. Yeah, we were just like kind of ahead of the game, but again, we were like really kind of an experimental group of people.
Like I was doing mostly frontend development there. And I remember when like XHR came out and, you know, I could do like async programming and then I was kinda like doing a lot of stuff with like flash, for the streaming part and connecting that into... basically this was a, you know, a - a Ajax pages before there was really any frameworks around this [00:08:00] stuff, like...
Matt Klein: right.
Phil Rabin: I'm forgetting the name of the, of the framework. But it was before jQuery... Prototype! Yeah. And Prototype js came out and that kinda smoothed stuff out. And that was like, that, that was really exciting when Prototype came out. But this was like back in like 2005 and 6.
Matt Klein: Right.
Phil Rabin: I remember we were doing kinda like hacks on IE6 and IE5 trying to get it to like... behave.
'cause like, you know, it, it couldn't handle... redraws very well. And so there's all these tricks to try to like nudge the browser and, and then doing a lot of stuff with like, kinda like bridging to flash and, trying to get that like, single page web app before it, you know, the, the, the technologies really existed.
So super fun. I mean, we, I think we built a pretty cool like service there. You know, lots of Canadian bands were on it. I mean, like, you know, Arcade Fire, whatever, like, you know, they would come into the office. It was kinda like, you know, a tiny desk, uh, feel where we had live shows in the office and it was kinda my first taste of building something that was, you know, cool with technology like that...
like, you know, people outside of my own friend circle, like, like really liked when you build something [00:09:00] meaningful.
Yeah. And then, and then after that I, I kind of went to a, a, another tech company in, in Vancouver. It was a kind of a marketing tech company. Not that interesting, but at least I got my exposure into management.
You know, they kind of like promoted me very quickly so that by the time I was like 28 years old, I was like, you know, already managing. And we- we're building kind of like, you know, I, I, I think just more enterprise-y stuff. But kinda got me exposure into like working with like a larger group of people, larger teams.
And then in, in 2011, ended up getting, recruited for a, a company in San Francisco. And, yeah, I was kinda like, kind of manifested that I was kind of really hoping to get down to SF and, kind of spent, you know, sent the vibes to the, through the airwaves and somehow, you know, I got, I got tapped by a company called Prism Skylabs, which was doing like computer vision....
software for computer, for camera systems. It was actually a pretty cool product.
Matt Klein: Okay.
Phil Rabin: Um, of course, like most startups, it kind of, you know, imploded.
Matt Klein: Um, and, and sorry for that company you were still doing frontend dev at that point?
Phil Rabin: Yeah, totally.
Matt Klein: Yeah.
Phil Rabin: That's been, my entire career has been, frontend web development.
I've, I've always done like full stack, [00:10:00] you know, ba- backend development.
Matt Klein: Yeah.
Phil Rabin: Um, it really just like whatever I gotta do in the backend to like get to the frontend. But my passions were always, in frontend development, you know, anything that was client facing. I mean, I, I did like, you know, silver light development as well.
That was, that was the Vancouver shop. We were a big, like silver light product. So that's kind of cool, you know, I got some exposure there. Which kind...
Matt Klein: yeah, I,
Phil Rabin: the stack, you know...
Matt Klein: I was gonna ask, like you definitely came up during the time where there obviously there, there, there was no iPhone right? Or there was no Android, you know?
Phil Rabin: Right.
Matt Klein: So I mean you saw, you saw the migration firsthand. You know, from where everything is is web first to over time, obviously we'll get to your current company soon. But now obviously the world is moving to a mobile first world. And actually I just love, love to learn from you a bit around what, I don't know, like what was it like seeing that...
transition, right?
Phil Rabin: Yeah. That's super
interesting from the frontend perspective. 'cause like, you know, you, you got so used to building, you know, for big displays, you know, [00:11:00] having headers and, and, and, and navigation and like, you know, it is pretty like one dimensional. What support, maybe you had like a, a variable width.
But overall, you know, you mostly just dealt with like browser fragmentation, so that was like, you know, Firefox and Opera and, IE and, all the different versions of IE that you're trying to wrangle. And then Safari came out and, you know, Chrome came out. So just kind of dealing with all those and trying to smooth over the nuances between the different browsers.
But then like, you know, safari... well, Android and, and iOS came out and their browsers were really limited, right? They, I, I mean that's where like, you know, like you, you had to do like media queries, try to figure out like, what can I use here? Um,
Matt Klein: right.
Phil Rabin: And that totally like, flipped things over
'cause now you're, you're, you're, you know, the thing, you spent like three or four years building now no longer works or looks very good at all. And so you have to like, you know, get into like, you know, trying to figure out snap points. That was before even, you know, there was really good like grid systems out there.
So we were trying to like, kind of invent that stuff and sometimes just like hosting brand new website altogether 'cause like, it was, it was too far gone. You like, you [00:12:00] almost couldn't even support... your, your existing website 'cause you had built like so much infrastructure around like the current layout.
And that kind of pushed us towards, you know, trying to like, you know, move towards more rest. 'cause I mean, back in the day, especially like .net development and some like the Django development, you know, the, the, the, the marriage of, of your, your templates and your... and your controllers for, and, you know, MPC controllers, at least for the backend, were so tightly coupled.
Even though it's supposed to like be decoupled... let's be honest, we really like did couple stuff anyway. But once you started moving to like, like more rest concepts and sort of like, you know, actually decouple your single page apps from your, your client side, it kinda like that kind of discipline helped, you know, create, you know, you could have like two different versions of your website.
And, and then, you know, as you start to move down the path, you start moving to more and more, you know, elegant frontend frameworks and start, you know, moving towards like, react or, you know, angular and these types of things that make, make things a lot easier. Yeah.
Matt Klein: Yeah. I was just gonna ask, I mean, I, I am not a frontend developer.
Um,
Phil Rabin: yeah.
Matt Klein: But you know, it seems like even to this [00:13:00] day, a considerable amount of work has to happen for the different form factors, right?
Phil Rabin: For sure. Yeah.
Matt Klein: Like with the, with the mobile factor versus all of those things. And again, as a, as a not frontend engineer, I mean, obviously there's a design component, you know, people have to do the designs differently for the different size screens.
But I am surprised, I guess, and maybe it's just the reality. You, you know, that it doesn't, it still seems like it's hard. It's like people put a lot of effort, you know, into making sure that things look right and work right on the small screens, and they work right on the big browser. And obviously then you have all of the native apps and the web views.
I- you know it's just, there's a, there's a... proliferation now of like different form factors, I feel like that just have to be supported and have to work out.
Phil Rabin: Yeah. I think especially if you get into like more,
Matt Klein: it's a, it's a lot of work.
Phil Rabin: Yeah. Especially if you get into like more interactive stuff. Like let's say you're just doing like content heavy
applications, then, I think it's pretty straightforward. I, we're usually dealing with like, you know, I call it like, like crud applications, like lists and, and [00:14:00] forms. I think that converts pretty easily. But like some of the stuff we were doing, kinda like I was like working on, was trying to get like multi-touch, to work well or to get like swipes and pans.
You know you had to code that stuff yourself. Like, if I wanna like, like, you know, have, have like an image gallery, I wanna be able to like zoom in on it and like, you know, swipe and swipe quickly or have like a timeline. Like, this thing at Prism I built was a, was a, a, a kinda like swipeable timeline that had like infinite scroll and, but like...
Matt Klein: mm-hmm.
Phil Rabin: Much more content as you scrolled, like you had to figure all that out yourself, right? You've gotta think about like a decay function to have the animation slow down and what happens when you tap here and tap there. Two button tap or, or two finger taps. And so now your form factor is, like the amount of coding you have to do to like handle, like the wheel versus the...
Matt Klein: yeah, that makes sense.
Phil Rabin: Yeah. Mobile side gets like infinitely more complex and you're dealing with like, you know, different, different orientations and, trying to make it all work together. So yeah, it, it, it can get like crazy complicated. I actually think some of the web [00:15:00] development can actually get more complicated than some of the mobile, because the mobile, at least, you know, it's, it's gonna just be served on like a touch display and, and it's pretty much like, you know, set in stone.
Matt Klein: Yeah.
Phil Rabin: But for web, you've got all these different, you know, possibilities. Yeah.
Matt Klein: I, I, I've spent most of my career working on pretty low level systems and, you know, I, I've interacted with some of the product development here and there, but, um, doing bitdrift is the first time that I've really been exposed on a really active
basis to everything that that goes in. And again, like obviously we don't have a mobile app. We're a, we're a frontend app. But it is a very visual app and I will admit. I, I was one of those people that just didn't, and part part of it was being young and stupid and I didn't really understand all the complexity, you know, that would go into the frontend and the mobile development.
And I was definitely one of those people, you know, that thought, how, how hard could it really be? And it is really, really, really hard. I mean, there is, there is a lot of complexity there. And making those things work well, is a... [00:16:00] is a huge challenge, and I'm saying that as a non frontend mobile developer.
So anyway, totally agree. Um, sorry. Let's, let's keep going.
Phil Rabin: Yeah.
Matt Klein: So you, so you made it to San Francisco and...
Phil Rabin: yeah, it was good. You know, it got me down here. It, you know, it was kind of an important step to like join that startup and then, but I, was actually living with a, a good friend of mine was the first engineer at Uber.
When I moved to San Francisco, we moved in together. And, kind of in the early days, I was getting a kind of a, a, a feel of what was going on at Uber. You know, this seemed like it was like kind of the next big thing and, and I was hanging out with like, with the crowd and I was getting some kind of insider intel, like, 'Hey, this thing's gonna be big.'
And so after about like a year and a bit af- at this startup, I, I kind of made the jump, uh, to Uber. So I was there pretty early, you know, kind of first 75 engineers or so.
Matt Klein: Yeah.
Phil Rabin: Within the first 300, at the company. And I thought, I thought when I joined like, 'oh, this, this thing's already, maybe I'm joining a little late.'
You know, like little did I know that like it would turn into a 30,000 person company would be, you [00:17:00] know, a, I dunno what the market cap is today, a couple hundred billion or something.
Matt Klein: Yeah.
Phil Rabin: So it was pretty cool to kind of get in early on that. And when I first joined, I actually joined as a web developer, kind of frontend web and and two of us built the first kind of mobile...
web version. We called it "Muber", of Uber. And that really was like supposed to kind of open up Android, and kinda like get- because there was an iOS app, but there weren't really any Android engineers at the time. And, we're just trying to like... get something out the door so folks that weren't on iOS could access.
And then kind of the first things we did was like, create a wrapper. It was like an Android wrapper. So when you lo- installed the Android app, you just got a mobile web, web view, and that was the entire experience. It was like a login screen. I don't even think it was a login screen. I think it was like a log- a loading screen, and then a web view.
And that was...
Matt Klein: is that...
Phil Rabin: yeah.
Matt Klein: Yeah. And I, I actually, it's interesting. Is the reason that they didn't go straight to doing an Android app, was it just really resourcing or they couldn't find someone that would do it?
I mean, it's like, why, why didn't they have someone do a [00:18:00] native app?
Phil Rabin: I think the audience, right? I mean, like Uber was for mostly like US based, and a fairly wealthy clientele, you know,
Matt Klein: who tend to tend to have iPhones,
Phil Rabin: techy type of people and they're like mostly all on iOS,
Matt Klein: right, yeah.
Phil Rabin: Um, you know, but then, you know, right when we joined, we started thinking about like international and we had ambitions to kind of like, you know, open...
Matt Klein: yes.
Right.
Phil Rabin: in Paris and Italy and, you know, there's all, all these kinda like international launches happening and internationally Android was just much bigger. So it, there was kinda like a sense of urgency to get an Android app.
Matt Klein: Got it.
Phil Rabin: There was, yeah, two other folks that were just starting to chip away at the Android app and I kind of joined that team and, you know, we started building the first like big like production version of, of the app.
Matt Klein: I, I would imagine you have some fun stories from that time of,
Phil Rabin: oh man, it was wild.
Matt Klein: Was trying to make that work
Phil Rabin: it was the coolest time. Yeah, it was, it was really, I... the analogy is like, it's being in a band and the band like, like, makes it big, you know, like you, you're kinda like at this thing in an office, I feel like a startup.
Then suddenly it's like the, you [00:19:00] know, all the attention is on you. So yeah, it's like high pressure, high stakes, kind of like living at the office. Um, you know, you, you just eat, breathe, sleep code. Uber all the time. You know, and I kinda like, I, you know, I was already like, you know, I think it was what, my fourth company, so I kind of got... I had a good sense of like, this is it.
Like this is, if there's ever like one time in my life I'm gonna like, give it everything I've got. It's like right now. 'cause this is like the, the biggest opportunity I've got. You know, and, and so like, I, I was just like throwing myself at it, you know? I, I, you know, it, it was really exciting. Yeah.
Matt Klein: And then you were, you were there for a long time, so you must have done quite a few things at
Phil Rabin: Yeah,
Matt Klein: at Uber, right?
Phil Rabin: So yeah, I was there for 10 years. And like to say, I kind of grew with the company, you know, up until that point, I, I'd worked at smaller companies. It was more of a startup kind of guy. And, you know, just... growing with the company 'cause the company is growing so quick, was a serious challenge. Like j- just upleveling yourself constantly.
At at, at a [00:20:00] company that scale, usually what happens is that the, the startup people are there, they kind of kick it off like great. They get, they get fantastic equity, they're happy, but there's a point where... kind of, they, they don't fit anymore and they start bringing in the next rung of talent that they can bring in.
So that'd be like, you know, people who have worked at big companies, the real pros, and you know, it's not to like throw shade on anyone in the startup crowd, but the startup crowd tends to be maybe a little more like, like, um... a multidisciplinary, they're, they're jack of all trades. They, they problem solve really well, but they're not like the hardcore specialists, right?
They're not like machine learning specialists or whatever. Um, you know, tend to be maybe more risk takers. You start as a company grows, you have the people that are like more risk averse or people that are gonna build you that like super detailed platform. They're gonna spend two years building this thing.
It's gonna scale perfectly. Yeah.
Matt Klein: Yeah. I was gonna say it's not, it's not shade. I mean, I've, I, I've been through some of the same type of transitions and I think it really just is different people that thrive in these different [00:21:00] environments...
Phil Rabin: Yeah. And it gets more bureaucratic
Matt Klein: it's not good or bad.
Phil Rabin: Yeah,
Matt Klein: it's just, it's just different.
Anyway, sorry. Keep going.
Phil Rabin: Yeah. I think, I think as, as a company gets bigger, you also get a little more process heavy. You start having to do more coordinating across groups of people. You can't just like, you know, crack your knuckles and start coding. You have to like, make documents and start planning things.
And that can also be such of a, like a, such a heavy like phase shift for people that like we're just used to just... coding all day, not really asking for, for permission to do anything and just pushing code out, you know, moving as fast as it could go to suddenly now you got like, 'actually you can't just do that anymore.'
'Cause like you know, it's like a billion dollars a day is flowing through this, this, this platform and you just can't... push code and you, it's got, you know, you gotta focus on reliability and you gotta focus on quality. And, and you need, you know, communicate really well across different teams
'cause now we've got, you know, thousands of microservices and, and you know, hundreds of mobile engineers that all need to like, coordinate together, you know, layers and layers of management is, it gets, yeah, the matrix is, gets so much more complex. You know, but I've, I was determined kind of like... [00:22:00] grow with the company and learn how to become a big company guy.
You know, as I grew with the company, so you know, I was kind of stoked at the opportunity, even though like, you know, it seemed like every six months, like everything I knew was no longer applicable and I had to like retool completely. And that was kind of an ongoing thing...
I kind of, kind of didn't slow down, you know, for like, at least for eight, eight years.
Matt Klein: Yeah,
Phil Rabin: I was constantly trying to reinvent myself
just to stay afloat.
Matt Klein: Did, did you work on the frontend side the entire time? Or, or did you do multiple different things there?
Phil Rabin: Totally, yeah. I was, oh yeah. After I kinda like made the switch from mobile web to just straight mobile engineering to the Android development.
I really just like found a home there. Um, for me it was just kind of the perfect mix of, of like, you know, technical work. It, it was the tip of the spear for the company as well, right? We're mobile first, you know, like logistics platform. And it was the core product. So I felt like I was really like in the hot seat.
I was... got, got to be like, you know, at the helm of a lot of decision [00:23:00] making and and kind product development. And I was just like right on the edge. And, and there's the stuff that everyone used. I was on the rider apps. That means like every single person in the world using Uber is gonna be like touching my code and I'm gonna be building those features.
And I thought that was just the coolest thing ever, you know? Think of like hundreds of millions of people using the thing I built. That was, that was so fun
Matt Klein: when you, when you moved over to doing native Android app, um, you know, I would imagine that there's some things that you missed from doing web... I don't know.
I, I mean, could you talk a little more
Phil Rabin: For sure.
Matt Klein: Just about,
Phil Rabin: I think
Matt Klein: just, just about those days in terms of... um, be, be- because I mean, like, the one that comes to mind, of course, is that, you know, when you're doing a mobile webpage or, you know, you're doing a web view, if you have a mistake, you'd change it in five minutes and push it out and it's fixed, right?
I mean, obviously that, that does not apply in the
app at all. Yeah.
Phil Rabin: Yeah, I think the velocity just completely changed. 'cause on web, you know, you... [00:24:00] one person could just get so much work done, especially like, you know, redeploying the code locally. It's just so fast. And then you can just get in there, like in your Chrome tools and start like tweaking your CSS values.
Matt Klein: Mm-hmm.
Phil Rabin: And like play with the, the alignment. Okay. That's cool. That's perfect. And just copy those values out and dump 'em back in your css. 'cause you, you know, it's kind of, you have this live thing and also just like, um, all of that started to really slow down in mobile, especially at Uber. As the code base started to grow and we started to hit some of like the like... almost like limits of what the tooling would, would allow, and we were at this really kinda like kind of like scary inflection point where we're adding like I think a megabyte of compiled code a week into our code base of compiled code.
And it was just like...
Matt Klein: a megabyte
Phil Rabin: buckling under compression
Matt Klein: of compiled code a week. Wow.
Phil Rabin: Yeah. And so like, even like the, the over the air limits for the rider app, you know, that's 'cause app, like the app store...
Matt Klein: Yeah.
Phil Rabin: At some point said you can only, you know, a hundred megabytes is all you can... ship before we're gonna like make you plug into [00:25:00] wifi and download this binary 'cause it's too large and you know, AT&T or whatever it doesn't want you to-
to download like large files or, I dunno what the reason- real rationale is, but you know, trying to like preserve the network. And, and, you know, they kinda like started incrementing that a little bit, but we- but the pace was completely out- like we were gonna blow through that limit and it was almost like an existential crisis for the team because, you know, we were writing a... like you, you can just count like we're adding a megabyte of compiled code a week.
We have like... 15 weeks until we're, we're out of headroom and we can't ship this app over the air anymore, you know? Which is like, for a consumer company, it's like kind of a death nail. You have, you have to make sure that like, people can download your app, especially when they're feeling like maybe they're in the rain and they just are tired of taxis and they wanna get your, you know, download the rider app.
Matt Klein: But that, but that's like a megabyte of compile code and the backing assets and those kinds of things, right? Like, it's not like a megabyte of instructions, is it? I mean, is that...
Phil Rabin: yeah, yeah, yeah. No, no. The binary is growing by,
Matt Klein: yeah. Okay. Okay.
Phil Rabin: a megabyte a week. Yeah. [00:26:00]
Matt Klein: Yeah. Wow. Yeah. Okay. That's, I mean, that's still huge.
I was just
Phil Rabin: huge.
Matt Klein: It's like, wow, that's amazing. If you were producing one megabyte of actual compiled machine instructions
per week
Phil Rabin: Yeah, yeah. Everything was going in there.
Matt Klein: Right.
Phil Rabin: Um, and so, but also the whole tool chain was starting to really like buckle. 'cause you know, things like local build times indexing, and so there, you know, there... we were
kind of having to make a lot of like, tough decisions about like how we're gonna be built, writing the code, like
Matt Klein: mm-hmm.
Phil Rabin: You know, limiting what, what, what functions you're allowed to use like in Swift, for example. Because it compiles, you know, Swift will actually like, compile the bytecode that's, is quite bloated.
So we're trying to like, you know, trying to trim down, you know, some of the, the kind of the fancier functions that were available in Swift. I mean, there kind of a company wide effort, to try to scale the code base.
So we, we learned a lot about, you know, scaling technologies, you know, new build systems, how to like, you know, modularize the code. How...
Matt Klein: yeah.
Phil Rabin: Do you,
Matt Klein: did you
um. Did, did you stay, while you were there, did you stay [00:27:00] more product focused, like building features or did you end up actually working on some of these infrastructure type things?
Of like trying
Phil Rabin: Yeah, so
Matt Klein: whatever fix the build speed or the, the CI or your IDE performance or those kind of things?
Phil Rabin: Yeah, so we, we ended up... I, I was kinda one of the founding engineers. It was called the Ride Experience, which is kind of the, the, the rides product team. And then I was one of the tech leads on the team.
Kinda the, the, the main tech lead for mobile and then, um, I was doing a lot of the kind of, I guess, architectural work for the app and I, I kind of made a pitch that like, we should start a platform team that's like really focused on the rider app. We had like a, a kind of central platform team that would work on things just like, like generally like providing like CI and some frameworks.
Matt Klein: Yeah.
Phil Rabin: We'd work really, really closely with them, but the Rider app itself, was getting so big and there was, I dunno if you know about the, the, the kind of programs and platforms model, you know, I guess, you know, feature teams and platform teams.
Matt Klein: Mm-hmm. Yep.
Phil Rabin: Um, when you have an, an entire organization of [00:28:00] almost entirely like, like feature teams, what happens is you don't have any one of them that are really focused on how the whole thing is gonna come together.
And, so that was kind of the, the team that I started kinda moved back into management and we started working on a lot of the foundational aspects of the app so we could start scaling it. And then we also were, were part- there, there was a point where we pretty much declared bankruptcy on the code base 'cause it just wasn't scaling and the architecture was a little bit antiquated and was, was our kind of first rev at the architecture.
And when you add like a hundred engineers that are just like flowing into one code base. You just really outgrow your assumptions very fast and like there's no amount of kind of trying to code your way out of it that you that'll solve the problem. At some point, you gotta be like, we gotta just stop development here and we're gonna like completely rethink the architecture and rebuild the whole thing from the ground up.
Matt Klein: Yeah.
Phil Rabin: And that was a cool moment where, you know, our, our team and... the, uh, kinda like central platform team got together and we had a lot of working groups and this is where we came up with, with what's called ribs. It's an open source framework, and we started [00:29:00] moving away from things like activities and view controllers.
And moving more towards our own homegrown architecture to start subdividing a lot of this code and make it possible to like, you know, isolate teams, and have like really strict contrast between how all these modules come together.
Matt Klein: Yeah.
Phil Rabin: It's basically like Viper is the design pattern. But it's loosely based off of Viper.
Matt Klein: Yeah.
I, I was gonna say it, it's, it's really interesting to me because in the backend world, obviously the solution that people use for better or worse, is they split into microservices. And you, you know, I mean, you can, you can segment things that way, but in the mobile world, and really to some extent, the frontend development world, it's like it is one app.
You know? That, that goes out there. I, I think, um, I mean these, not to my knowledge, I think companies, especially big ones, are still trying to figure out what is the right way of building that almost hub and spoke model where the teams can work independently, but it gets linked together at the end of the day and it, [00:30:00] and it actually works.
But yeah, I, I just think it's interesting because it's almost like the, the best analogy that I can come up with is I remember when I started my career. Actually working on Windows. And I remember back in the day, I mean, I'm not joking, you know, every night they would compile Windows and it would take like 30 hours or something like that, right?
I mean, to compile the whole thing and they would produce... Windows.
Phil Rabin: Yeah.
Matt Klein: And that's... and that seems crazy to people today, you know, that like people would wait 24 hours for a build, for something that they can test. But in a lot of these large mobile applications, I mean, it's like if you actually sat down and compiled everything from scratch, even with huge machines, I mean, it can take a very, very, very long time,
Phil Rabin: hours.
For sure.
Matt Klein: Yeah.
Phil Rabin: Yeah. Especially a release build. Yeah. Tho- those, those can take a long time. And then you have all your, your tests that you're running, you know, and you have tens of thousands of tests that run,
all the integration tests. Yeah. You can, you for sure can take hours and hours. Yeah.
Matt Klein: Yeah. Yeah. [00:31:00] So, um, so what ultimately led you to leave Uber?
Phil Rabin: Um, I mean, I'd just been there for 10 years, you know? I think I was ready for a change. And, you know, I kind of just felt like I should take some time off and, and recharge. I mean, I feel like, you know, it, it been there, done that at, at some point...
I, I mean, I loved my time there. It was really, you know, an awesome experience. I was looking for something new and then, you know, I was, I spent about six months, you know, just hanging out like here, here in Tahoe and kinda retooling, figuring out what I wanted, for the next position. And I got a call from SoFi actually.
You know, seemed like a really compelling offer, like a great company. You know, pretty consistently hearing people say We wanna be a top 10 financial institution, you know, very ambitious. Great CEO. And, and you know, generally we want to be like a, a FinTech super app. We're a mobile first bank.
It was an opportunity to become like the Director of Engineering for Mobile of a mobile first bank. I thought that was a pretty cool opportunity. So it was like all, all of my [00:32:00] prior experience was just gonna like, stack perfectly for this role. And I feel like it was just a perfect fit for sure.
Matt Klein: Yeah. I, I mean, I, I would be interested to learn more because, you know, I have worked at lots of different companies and I obviously came from Lyft. And, you know, like you can work on all these systems and you can feel, oh, you know, if someone doesn't get a ride, it's like they, you know, we're gonna ruin their lives or something like that.
And like, yeah, it's bad, right? But it's probably not gonna be the end of the day. You know, if you lose someone's money, it's probably a much bigger deal. Um, not, not to mention all of the federal regulations and all of those things.
I- I'd, I'd love to ask actually, like, what it was like moving, you know, from, obviously you were at Uber during very crazy times, so a lot more, a lot more regulated times, but I would imagine that working on a financial product is a very different type of experience.
Um, I don't know. So yeah, like how do you feel about that
Phil Rabin: ...except that, you know, we'd, we'd gone like full [00:33:00] circle at Uber to like the full like... tech lifecycle, you know, from startup to large, late stage like multinational... you know, handling billions and billions and billions of dollars
Matt Klein: Yeah.
Phil Rabin: ...in the system. And like every minute of downtime being like, you know, million dollars a minute or- I forget what it was like, the actual cost for every incident was just absolutely enormous. So, you know, one of the things I learned at Uber, we had a really, really strong posture and reliability.
I mean, that was, that was Travis's whole thing, right? Like transportation as reliable as running water. And you know, we went through all the growing pains of learning.
Matt Klein: Yep. For sure.
Phil Rabin: You know, scale a lot. You know, how to go from a startup to a humongous consumer tech company. With global, you know, like global footprint.
...we're like in all these different countries and dealing with all, all the possible outages like, you know, dealing with like, you know, cellular network issues in India, for example, or China, like you, you know, so you, you, you definitely cut your teeth. So I feel like, when it came to SoFi, like I'm bringing a lot of that muscle [00:34:00] of, of, you know, really ensuring that we have high reliability.
You know, and SoFi is a much younger company, and as far as the, the tech team... even though we're a publicly traded company, the IPO was, was... I'd say like it was an early IPO compared to a lot of like, like a stripe or something, right? They're not even public yet. They're already a humongous company.
So I think our IPO is kinda like, you know, more to the left and... So we're kinda like coming out of the startup- we're in a, we're in a growth phase right now, and so they've been bringing in people who have, you know, gone through that scaling.
Matt Klein: Yeah,
Phil Rabin: we have lots of people coming from Amazon and Meta right now and LinkedIn and other like big tech companies so that we can build that.
So a lot of those like kind of best practices... I'm trying to bring those best practices, like, 'hey, you know, trust me, I've seen this before. We should probably invest in these areas. We should invest in, in automated testing. We should be investing in more observability. We need like better on-call practices.'
You know, and trying to like formalize that knowledge and trying to train [00:35:00] people. And also like bring in... also some folks from Uber as well, the engineers who kind of understand that stuff. So it's just kinda the natural progression of a company when you go from startup to, you know, big company with higher stakes.
And, you know, outages become, you know, regulatory problems.
Matt Klein: Absolutely, absolutely.
Phil Rabin: You know, big... reputational problems. But one thing I'd say that, that, that SoFi has, which is was there before I got there, was like a, a really, really thorough incident management process. I think that's something that's, that I think was, is best in class that we have.
Like if there's an incident we, we have a, a, a very well-defined procedure, and, you know, a kind of a very well-defined way of getting out of it and documenting.
Matt Klein: Yeah.
Phil Rabin: And then doing, you know, follow ups and postmortems and learning from our, from our issues and making sure they don't repeat.
So I think overall, like we're maturing as a company, I think we're doing a pretty good job so far.
Matt Klein: Yeah. I, I mean, one thing that I'm wondering about is, you know, you obviously... did Android development super early. You know, you were, you were [00:36:00] starting out when, the industry itself had not evolved very much.
It's like pe- everyone was learning together around how to do mobile development and obviously Uber is one of the biggest mobile applications and, you know, was kind of ahead of the curve in terms of all the problems that you were talking about, observability problems and build problems, and all of those things.
And what's interesting to me, and I, I, I love to get your perspective on this, is that we're in 2026 and I actually still think most of these problems for smaller companies that haven't solved them and are growing... they still exist. Like people still have build speed problems and then they argue about whether to move to Bazel and people still have observability problems and people still have IDE problems and like release problems and all of those things.
So I, I guess I'd love to ask you... what's the same that you already looked at 10 years ago? You know, and like, what is better now? What, what has improved in the last 10 years?
Phil Rabin: Yeah,
Matt Klein: I guess,
Phil Rabin: well, what's the same is that... what's, what's more interesting about where we're at is that we're actually a Flutter [00:37:00] shop and...
Matt Klein: Okay. Interesting.
Phil Rabin: When I would join, the Flutter rewrite was happening. It was kind of a midway done.
Matt Klein: Yes.
Phil Rabin: And I kinda came in and like finished it and got it over, over the finish line. And so it was a bit of a scramble to get it done. But it means that like some of the kind of decisions that were made early on weren't necessarily the decisions I would've made.
You know, I probably would've come in and said, 'Hey, let's take a little more time and, and, and think through the architecture.' 'Cause I've, like, I've, I've been to battle. I can see, I can see where this is going. But what's interesting is that like... w- we're kind of in a similar position to what Uber, where Uber was, back in like 2015, 16, when we were doing like, through the hyper scaling of the code bases... but now we're doing it with Flutter.
The thing is, like at Uber we didn't have much prior art for what happens when codebases in mobile get that big
Matt Klein: yeah,
Phil Rabin: right? There might have been Meta, LinkedIn, Google Maps. I mean, there's only a few like big, big, big applications out there. And they kind of like, solved it their own way.
You know, that's where React came out of, right?
Matt Klein: Yes.
Phil Rabin: And so every company was trying to figure out their own, like front- I mean, Lyft had had their own like Scoop, right? They were trying [00:38:00] to like scale with their own frontend scaffolding. And we're kind of hitting that point now with Flutter, where we're one of the largest Flutter apps in the world.
And, most Flutter applications out there are pretty small. Or they're wrapping, like a game engine or something, and they're just using it for like navigation and maybe your account settings, but like, otherwise it's just Unity that's like, you know, embedded in the... like a Flutter frame.
That's how like Google Earth is built, right?
Matt Klein: Yeah.
Phil Rabin: It's a Flutter app with like a C++ kind of like rendering engine for the earth. But as far as like large applications, like, like hundreds of features, hundreds of engineers, you know, hammering on this one big codebase, like, we're gonna have to figure this stuff out.
We're, we're actually figuring it out as we go, especially around like CI and, and some of our own builds and code gen. We're starting to kind of like hit some of those limits. Where, where throwing hardware at the problem is not working anymore.
Matt Klein: Mm-hmm.
Phil Rabin: Like we're all on the latest M4s and, we're kind of getting like, you know, the best infrastructure we can buy, you know, all the, all the M4 Max machines in, in CI. But there's a point where like, the hardware's not gonna get you outta this problem. You have to [00:39:00] start like using a lot more cores and you know, sharding your builds and start like being maybe more selective about what you build,
and...
Matt Klein: so what you're saying is that you're gonna have to unfortunately adopt Bazel, is that, is that it? Is that what you're, is that what you're actually
saying?
Phil Rabin: A Bazel or Buck or, you know, we might get there. I mean, I think Gradle, as they've made a lot of improvements in Gradle in the past few years, you know, we're, so, we are standing on the shoulders of a lot of the tech companies that have like, you know, developed some of the technologies and practices for large, like native apps.
But then now we're gonna, we might be one of the first companies to apply it
Matt Klein: right
Phil Rabin: to, to... Flutter
Matt Klein: flu- Flutter on top.
Yeah, so, so I, I, I guess then I, my, my takeaway from that is that in the last 10 years, we have React native, we have Flutter. What else do you... I mean, like, what else is the same and, and what's different for a scaling company?
Phil Rabin: What's different than the early days of Uber, was that like most... third party, like products and platforms for doing things like [00:40:00] observability, you know, like releases, you know, experimentation.
Matt Klein: Yeah.
Phil Rabin: Like there, there weren't platforms available, so we had to build all that stuff ourselves and then build like the, the SDKs ourselves.
Matt Klein: Yeah.
Phil Rabin: Now though a lot of those engineers from those companies kinda went off and started like Datadog and Optimizely, LaunchDarkly.
Matt Klein: Sure, yeah.
Phil Rabin: You know, these types of tooling companies out there, like we use like Runway, which is phenomenal.
And at Uber we supported all that code too, right? We mostly we're building versus buying. And now, you know, why would you build those kinds of like kind of generic tools when you can buy them because they're so good. I mean, like, Datadog is great.
Matt Klein: Yep.
Phil Rabin: Runway is great. You know, even like GitLab and the whole CI, like the, the CI they provide is just like so much better than some... like, you know, we were, I think we're on like Buildkite or something. We were trying to like manage our own clusters and you know, we, we'd have like scaling woes with that and it was kind of constant.
All the infra was always brittle and, and falling over, and now you just call someone and be like, 'Hey, like, we're paying for you. Please, you know, please get your system back online.'
Matt Klein: Yeah. [00:41:00] Yeah.
No, I mean that, that, that makes sense. I mean, I, I think things have certainly evolved.
It's just interesting to me because, and this tends to come up surprisingly, or not surprisingly, in every one of these podcasts that I do, is that Apple and, Google, you know, I, I mean probably for not surprising reasons, they're busy. They seem to optimize for getting as many apps in the app store as possible, right?
Phil Rabin: Yeah.
Matt Klein: And not that many companies make it to where they have the problems that that, that you're talking about, but it still seems like, you know, every company has to solve a lot of these same problems, like over and over and over again.
Phil Rabin: Mm-hmm.
Matt Klein: Um, so it, it is nice to hear, and obviously I'm biased on the observability side, you know that there are vendors trying to fill the holes.
I just think it's interesting actually that in some ways, Apple a- and Google have ceded a lot of these problems, like either to companies to solve for themselves or to vendors and like, maybe that makes sense. But it just sometimes it seems like the [00:42:00] platform could help some of these things work better.
Phil Rabin: Well, I think some of...
Matt Klein: I guess
Phil Rabin: You know, these, the big companies have their own home world stuff too, right? I mean, Google probably has, I think their own platform.
Matt Klein: Oh, I'm sure.
Phil Rabin: Amazon and stuff.
Matt Klein: Sure.
Phil Rabin: You know, they could look at, at, you know, basically creating enterprise versions of those that you could use.
I mean, Amazon's pretty good at doing that on the, on the backend side. Like, you know, AWS like,
Matt Klein: yeah,
Phil Rabin: it's all the stuff they use they built and then they kind of, you know, turn into a paid product. There's a huge opportunity there and you know, but sometimes you think that, like even the big companies though...
it seems like they don't always build big apps. Like, like Google for example... I mean, just Google and Apple. I mean the two big, you know, the big Play Store and App Store like, like Apple... I don't know if they've got like huge apps, like
Matt Klein: I guess that's true. You're right. Yeah.
Phil Rabin: You know, they have a lot of small apps and you know, it's not like their entire business runs on that one app.
Matt Klein: Right.
Phil Rabin: They have like 20 different apps, you know, like a health app and all that stuff, you know? If they tried to put 'em all into one app, I think, I think they would probably end up having more empathy for [00:43:00] some of the engineering... you know, some of, some of their, you know, clients that have to build these and support the apps and get 'em up in the app store.
I mean even just like getting app store reviews for example, you know, like that's just such a pain point for us.
Matt Klein: Yeah.
Phil Rabin: And we'd love to be able to just fast track stuff. Like, come on, like we're, we're, you know, a, a big publicly traded company. Like, do we need to like, have like one individual review our app constantly and at least Google, like streamlined that kind of stuff.
Or like, can you build automation or can we tap some automation and just like, you know, have you just run some scripts against, against our binary and then you can just tell us that like, we're not in compliance. But the fact that it's actually like a human being that sits there and like, you don't know when your app's gonna get reviewed is kind of...
it's still crazy to me.
Matt Klein: Yeah... I - I just, just because it's a personal focus of mine for obvious reasons. I'd love to learn a little more, you know, of, of how you all view your observability practice on mobile and mostly because I think it's interesting, right? Again, as you know, I mean, in the server world it's very well established.
It's like people have invested a ton in this, you know exactly [00:44:00] what's going on everywhere and on mobile. I mean, at least until recent times, it's like we had good crash reporting and that's about it, you know? And I, I just like, as apps and frameworks have matured, it's like crashes are less and less of a problem and there's a lot of other usability issues.
So would love to just understand like, as you all ship features and you say that you do it at high reliability, I don't know, it's like, what, what are some of the practices, what are the recommendations that you would have for people listening? You know, in terms of how to, how to actually ship high quality code, I guess, or how to know
Phil Rabin: Yeah.
Matt Klein: If you're shipping high quality code
Phil Rabin: when you
step back just through that question about reliability. Obviously observability is a big factor. And you, you have to invest in it. You, know, or else you're flying blind. You know, one of the practices I've, I've been trying to bring to, to the company as far as like the mobile side, is some of the stuff we learned about observability at Uber is like, you know, you can have system metrics, you can have, you know, things like crash free rates, but they don't really tell you about
what's happening in your [00:45:00] application. And even just like impressions alone don't really tell you that much. What you have to do is really have like, almost like, like mini funnel or a flow or a span.
Matt Klein: Mm-hmm. Yeah.
Phil Rabin: Where you're connecting, something happened and I expect an outcome and, you know, for the longest time, like at Uber, for example, like we... like Datadog and some of these other tools, allow you to like, kind of link those two metrics because that, that produces like potentially two different events.
And then you have to be able to connect those either client side or server side to say, okay, what's my rate? What percentage am I,
Matt Klein: yeah.
Phil Rabin: What, what's, what's the throughput of this feature? Like if I'm expecting a, a, a user to register and then I see a success screen afterwards, that should be pretty constant through- through the application.
And, and it should be resilient for when 8:00 AM in, you know, east coast starts to wake up and people start using your application and starts to wind down. Like that rate should be constant.
Matt Klein: Yeah.
Phil Rabin: So that's kind of some of those practices I've been trying to bring like, trying to think about user metrics, how are users experiencing the application instead of just [00:46:00] logging, you know, blindly and then just trying to count numbers.
Yeah,
Matt Klein: I mean, it's a, it's a... I think we're saying the same thing, but it, it's always been a personal pet peeve of mine as an industry we focus so much on like success rate or, you know, like little micro metrics or something, but they don't really... they're not matching what the users are actually doing.
Like are they rage quitting your application? Are they having slow loading? Are they converting at a slower rate? Like what are they actually doing? Like what are, are the flows? And again, I, I admit I am extremely biased given that we make a product that's in this area. But, um I, I, I just think that we as an industry can do so much better when to this day, I still get frustrated a lot at how the apps themselves actually work.
It's like, you know, the amount of times in my day that they're hanging or just like doing something wrong is very frustrating.
Phil Rabin: And with big [00:47:00] apps, right? Like, you know, teams work on their individual features and then like, not that often do they really like, test what happens when multiple features interact.
You know, like,
Matt Klein: or it's impossible.
I mean, there's just too many permutations. It's like you don't know until it's out in the field,
you know,
Phil Rabin: and adding feature flags, you know, you can do experimentation and you know, do like slower rollouts and try to look at, you know, different like, like health signals.
Matt Klein: Yeah.
Phil Rabin: They can even be looking like to the market and seeing okay, what, what, what's out there? Like, what are people saying about my product? But the amount of permutations you can have you know, if you're using a lot of feature flags could be in the, like, millions, right?
If, if you have like a thousand feature flags and, and it could all be in different states. I mean, you've already got a million states potentially in your application.
Matt Klein: Well, and we know that people don't ever actually... delete those flags so they're there forever. And then, you know,
Phil Rabin: right.
Matt Klein: Yeah,
Phil Rabin: yeah, yeah. And, and then now you've got like, you know, uh, the cyclomatic complexity of your application.
Just crazy.
Matt Klein: Yeah.
Phil Rabin: You have all these different forks you possibly going down and, you know, someone quits and they leave a flag off or on, or whatever it is. And, you know, there's no cleanup. [00:48:00] So I think that's, that's part of that. You know, I guess as, as codebases grow, it's just another humongous work stream that you have to constantly be managing is just the, the hygiene and cleanup of your code.
'Cause that affects reliability of course. 'cause you know, you, you just don't know what you're gonna get. It makes QA testing really hard. It makes, even unit testing hard 'cause you've got all these different forks to deal with and you, you have to do...
Matt Klein: yeah.
Phil Rabin: And like, things like integration testing become even harder.
You know, and these tests become a whole thing you have to maintain now. So, you know, my, my saying is, mo' code mo' problems. Um... the bigger more code you have, the more people you need to hire just to maintain the code. And then the percentage of your, of your workforce just working on maintenance can sometimes just grow and grow and grow.
Matt Klein: Yeah.
Phil Rabin: Yeah. And it's just kind of a necessary function of, of, of large codebases, unfortunately.
Matt Klein: For sure. Alright, well, in our last little section here, w- would love to learn from you, what, what do you think is, you know, most on tap in the next 5 or 10 years? Like, where, where do you think mobile and frontend development is going to go?
I mean, we [00:49:00] already talked about how some things have changed, but, but some things have stayed the same in the last 10 years. So what,
Phil Rabin: yeah.
Matt Klein: What do you think would be the same and different?
Phil Rabin: I mean, it sounds, it sounds a little cliche today, but like, you know, vibe coding, AI is in pretty much every single step of our workflow already.
You know, from, ideation through design, through the, the, the coding phase, you know, with like tools like Cursor and like Claude, and then, through CI as well, and then code review. In, in kind of like, you know, self-correcting CI. And, you know, we haven't really explored yet things like, you know, generative ui, you know, can just like, you know, describe what you want and, and, and have it be that kind of- even dynamic.
There's a lot of possibilities there, but I, I think the world is, is changing very, very quickly. I mean, for us it's just daily where we're getting, you know, new tools coming our way. I mean, it's really hard to predict what's, you know, 5 to 10 years. I mean, I don't even know, you know, if there's gonna be a singularity by that point, or, you know.[00:50:00]
Robots might have taken over the world completely at that point. But I mean, if we're looking at like one to two years, you know, there's so much exciting stuff happening on the, the developer productivity side for ai. I mean, it's really, really awesome. And now I would love to see more of it even for like, observability, right?
If there's some way to...
Matt Klein: one of the
Phil Rabin: spit out a whole bunch of events and have an AI just like, you know, make it make a guess. Like, we think we think things are looking good, or, you know, this, this user looks like they're not having a, a, an easy time with your application, maybe you should help them, you know?
Matt Klein: Yeah. One of the, one of the things actually that we've been talking about, is...
Could we help with an agents.md or some guidance to the agents to help the agents, put the right analytic events and logs in the code that's being generated so that it's easier to actually observe once it's deployed? Because I, I agree with you. I mean, it's like these tools are real. I think there's a lot of hype.
They are real for sure. Um, and, but I think it's also true that, [00:51:00] as you say, more code, more problems, um...
Phil Rabin: yeah.
Matt Klein: And as the code goes out, there are gonna be bugs. And my, my concern is actually that as people know less and less about the details... and then they ship the code, especially on mobile, where the cycles are so long,
like how do you know if the code is even working if you forgot to put in the feature flags or the agent didn't do it, or you can't turn it off or you can't observe it?
Phil Rabin: Mm-hmm.
Matt Klein: Um, so I think there's a lot of opportunity to-
Phil Rabin: I think having like agents that can just like, you know, like scan logs and scan like user, like, like user events in real time and potentially look for anomalies and, and start bubbling those up.
Because, you know, maybe, maybe like most people only hang out on this screen for, you know
Matt Klein: yep.
Phil Rabin: Two seconds or three seconds, and suddenly we're seeing that, you know, there's little... odder activity or more kind of like, you know, frustration signals happening on this screen. I feel like, like an agent could be really, really good at, [00:52:00] at doing some of those things where like, you know, crunching a lot of data and then trying to look, you know, look for trends across that data.
And that's something like I- they might exist out there, but we haven't really like explored it personally here.
Matt Klein: Yeah. Cool. Well, thank you. This was a fantastic conversation. Did you have any, any final notes that you'd like to share?
Phil Rabin: I think it's just the pleasure is all mine and I'm really excited to,
Matt Klein: yeah,
Phil Rabin: to get the, uh, the opportunity to talk.
So thanks so much for having me.
Matt Klein: Yeah. Alright,
well thank you so much. That's a wrap for this episode of Beyond the Noise Signals, Stories, and Spicy Takes. Huge thanks to Phil for joining and sharing a story. You can find this episode and all past ones on the bitdrift YouTube channel. And if you had fun, drop us a review, tell your friends or yell your favorite hot take into the void.
So just make sure to tag us. I'm Matt Klein and I will see you next time.

