day in the life of a software engineer | 6 hour productivity | coding the next big react native app

A YouTube video by Phil Choi (Feb 14, 2025) that mixes personal stories about learning to code and mentoring with a practical walkthrough of building a React Native app. Phil discusses technical choices—Firebase auth UIDs vs MongoDB ObjectIDs, using NATS/molecular to emit 'user created' events, adding server health checks, setting up toasts/animations, and implementing TOS/Privacy checkboxes on sign-up—plus project planning and task assignments.
Chapters
There's some sad news and a developing story. That's the dog right there. Right there. Points at him. His name's Hardy. I never told you guys. Okay. All right, let's go this way. Let's do a little bit of. Let's do a little bit of a detour here. So I never told you guys why my kid's moving his daycare center. Actually, the principal or, like, you know, the head, whatever, he got cancer, dude. So they're the daycare center. It's a daycare center that's been open for 40 years, bro. And. And they're closing it down. It might be they, like, bought a whole bunch of them and they can't sell them, so they're putting them on 40 soon. We're back for intro. Dude, we haven't filmed this in a while, dude. Yeah, last time was, like, with Johnson or something. No. Yeah. Yeah. Damn, I miss Jon, bro. Hell yeah, dude. Our first two mentees get break into tech. I think we're. Dude, I think our thing, right. Yeah. Is like, dude, if you want to break into tech, you can break into tech. The only job is not like, a software engineer. Yeah. There's project manager. There's. You know what I mean? And coding. You need a coding background with all of it. Right. But I mean. Or, like, not. You don't even need a background, but you need to know, be knowledgeable, you know? And, like. And they get exposed to me, dude, you gotta be fucking around, like, five of me all day, bro. You know? Yeah. All the jobs are gonna be tech jobs in the future. Come on. You make you the egg McMuffin today, dude. Hell yeah, dude. That's why I came here, dude. Really? So much is going on in my life right now. We're almost. We're almost about to be done with the course. Yep. We've been hard at work this month, dude. And every night I've been working, dude. I know. Less social, baby. Last night, I couldn't even go on a voice chat. I think I told someone I'd go on a voice chat. Oh, you were. You were. I thought you were asleep. You just. You decided to crank it out. Yeah, that's what's up, dude. I'm, like, looking at my old code recently. I'm like, what the Did I do all the time, dude? Like, the react query. I have no clue, bro. No, my name is Phil. Wrote my first line of code at the age of 30. If you have any things that you review, leave it in the comments. We got a conversation started, like, Comment share. It helps us a lot. And if I can do it, you can do it too. Coding saves lives. We're using Firebase authentication, and I was trying to pass the UID that Firebase gives to MongoDB and make an object ID. But the max length for object IDs in MongoDB is 24 and UIDs are 28. So I wanted to use. I wanted to. I wanted to save it as an object id. But you know what? We're just going to save it as a string. I had ideas to, like, I had this idea when, like, a user was created. Like, I'll delete the user and then recreate the user with our custom uid. Custom object id. Yeah, but I was like, that's too much work. You know, what with the user's collection. Let's just stick with the string ID. But the reason why the object IDs are good is because it helps with populate. Populates later on. But it's okay. I'll just create. I'll just do the same thing with aggregations. Yeah. Yeah. Dude. I have so much respect for, like, older people trying to learn coding. Thank you. Thank you. If, like, a dad wanted to, like, talk to his son, he'd have to learn how to code. And because coding will be just because they started teaching coding in, like, elementary schools and like that. And now, like, people are like, hey, no, coding is, like, bad. But honestly, like, I think it'll still be learned no matter what. Like, dude, I took two years of Spanish in high school, don't remember a thing. Hey, Jocelyn. What's up? Josh? Let's rename that next time, all right? Hey, Jocelyn. Hola. Hola. Hey, what's up? Estoy bien. Hey. Estado traba trabahando and Esther applicacion de software. Los kosas han ido bien. E sehan ido sakando toras las teras. I think we should do a little bit of planning today. Do you guys see my screen? Yeah. All right. Everything is, like, pretty much set up. You guys will see I have no user here right now. And then if I sign in. Right. Hold on, I'll show you guys. Login build choycloud.com and then sign in. And then it creates a user response, blah, blah, blah. And then you'll see in here someone is created. And then programming language is empty array. I had an issue earlier, but then. And then if I refresh the user updates so we see that. We see a last seen at that is different from the created at. So that's pretty cool. We finished with that. And also now if I log out and I want to log in, I sign up for a new screen and I try to use the same email and I go on blur. It'll show that it's duplicate. So it'll only allow that. Allow for like. And then it'll show a check mark if it's okay. And then that's where the react native toast will come in that I asked Booty to do. So I want to set that up. And then also I set up like a little pattern for us to do. Wait, hold on. I think I renamed this. Okay. I really like the check mark. Oh, thank you. But there's a start team notion for wiki and then i18n and a react query. Oh, this one's done. React query that we have to set up. These are kind of low hanging fruit. What about like the setup react native toast message? We should put that to doing. I don't know who's going to do that. I have so much respect for like older people trying to learn coding. Thank you. Thank you. If like a dad wanted to like talk to his son, he'd have to learn how to code. And because coding will be just because they started teaching coding in like elementary schools and like that. And now like, people are like, hey, no, coding is like bad. But honestly, like, I think it'll still be learned no matter what. Like, dude, I took two years of Spanish in high school, don't remember a thing. Hey, Jocelyn. Hello. What's up, Josh? Let's rename that. That's down. All right. Hey, Jocelyn. Hola. Hola. Hey, what's up? Estoy bien. Hey, Estado trabajando and esta applicacion de software. Los costas han ido bien y sehan IRO sakando todas las terras. I think we should do a little bit of planning today. Do you guys see my screen? Yeah. All right. Everything is like pretty much set up. You guys will see I have no user here right now. And then if I sign in. Right. Hold on, I'll show you guys. Login, buildchoycloud.com Sign in and then it creates a user response, blah, blah, blah. And then you'll, you'll see in here someone is created and then program language is empty array. I had an issue earlier, but then. And then if I refresh the user updates so we see that, we see a last seen at that is different from the created at. So that's pretty cool. We finished with that. And also now if I log out and I want to log in. I sign up for a new screen and I try to use the same email and I go on blur. It'll show that it's duplicate so it'll only allow that. Allow for like and then it'll show a check mark if it's okay. And then that's where the react native toast will come in that I asked Buddhi to do. So I want to set that up. And then also I set up like a little pattern for us to do. Wait, hold on. I think I renamed this. Okay. I really like the check mark. Oh thank you. It's a nice check mark, huh? But there's a start team notion for wiki and then i18n and a react query. Oh, this one's done. React query that we have to set up. These are kind of low hanging fruit. What about like the setup react native toast message? We should put that to doing. I don't know who's going to do that. We do need to make this use server health hook to check if server is running. So like if the server goes down we have to like note notify the user like hey, like the server's down, don't use the app right now. Pretty much done. And then what else, what else, what else? What about this resource? And then we're going to have points for the user, right? So I'm going to call this user points Users points and then we're going to put like user ID points and then we probably need more like transactions or something like that. And then here we can do something like. Hold on thinking if you guys want to read more molecular. Molecular is really good at like emitting events to different servers and stuff like that. So like I use this when I insert the user I'm doing this broker. So that's the nats to emit this event called user created that tells all the servers, hey, this event happened and I pass in the ID and then that gets caught by these events here. And then user created gets called with this user ID and then I create this user point format and then I insert it into this database right here. That's, that's what I did. So that's like I think that that's gonna be the fun part of the app I guess. I think playing with these points. I want you to take a look at this Ran Kagunal, this guy's molecular data provider. Just take a look. I mean I'm not quite sure but just try to get like something running with react admin, like just read through this documentation, right? Like right here. You just have to documentation and then the tutorial and follow this tutorial. Oh, what did you guys think about this? Dude? Cuz you know how on I was thinking about this last night and then you know how when someone creates a message, right? I mean creates, it creates an account with sign up, right? We only have email password and confirmed password right now, right? Oh, we do need to add two check check. I think booty. Can you do this for me? Add two check boxes to sign up form to be used later with TOS and Privacy Policy. So they, they shouldn't be able to click Submit unless those two buttons are checked, right? Does that make sense? Okay, if you click both of the ones like Privacy Policy and Terms of Service, because you click both of them, it automatically needs to say, hey, these are all selected if you unselect one. Like it's, it's how they all work inside of every single app. So let's think about it. You have, you have one for Check, all right. Yeah. You have one for Terms of Service, right? Okay. You have one for Privacy Policy, right? Okay. All right. If you click select, all the other ones automatically get selected, right? If you unselect one Privacy Policy or Terms of Service, pretty much that one gets unselected and select all gets unselected. Right. You know, like the smartest kids or I mean the kids that get the best grades aren't even like that smart, but they just kind of do it the way the teacher wants you to do it. Because the teachers always like, I think that's kind of like code like these libraries, because you're working with so many libraries like let's say like molecular or node Js or all these node packages. But you know, they don't put it out there to like make it hard for you. The creator probably is making the documentation to be used so you know, he can become a better developer. Right? So what they write like the Firebase Google documentation or like the reactive form documentation, they don't really write that, you know, not to be used. So you just read it and follow exactly how they want you to do it at first. And then you can put your own little like flavor to it. Does that make sense at all? Yeah. Children. There we go. So it can now I can press get started and it'll go here and I can put it. I can just use any animation here now. So now if I want to use an animation, I can go here and let's go back, let's go back, go back load the animation. I can search for an animation. Like. Like, is there any animation that you guys. Like, I'm. You know, it's getting kind of fun now, right? We have a heart. Damn. We got like, we got. Look at that dude. Look at that animation, dog. You're such an ad lib. Look at that dude. Hold on, let me get that. Let me get a shot of that real quick. Oh, my. Oh, my God. Dude, hold up. Oh. Holy. Damn. Whenever I say something, just be like. Just repeat it. Like, oh, you see that heart? Oh, that heart. That heart. Oh, you know, the react native. Damn. I just zoomed in on the table. It looks so good. Dude, who. Who came up with that one? I think Song. Song, you got good taste, brother. Something like that. So you can be like, token equals a weight like this. And then you need to store it. You need to store it. So you need to say config, store, token or something like that. And then you need to store the token. We need to create all that kind of stu.
More from Phil

day in the life of a software engineer | 5 hour productivity | building my dev agency 🔥

day in the life of a software engineer | 3 hour productivity | coding my 6-figure community startup

day in the life of a software engineer | 5 hour productivity | coding our sns startup app LFG

day in the life of a software engineer | 5 hour productivity | creating apps that makes big money






