My 7 year software engineering career in 17 minutes

Phil Choi went from teaching ESL to senior developer and tech lead in seven years. He worked on startups, blockchain, and IoT projects, picking up different programming languages along the way.
Chapters
You know my story. I went from an ESL English teacher teaching kids to becoming a senior developer without a CS degree past the age of 30. I've scratched and clawed from eating one ramen a day to starting multiple startups and becoming a tech lead for a social media app that was going to have a hundreds of thousands of users. In this video I'm going to tell you my story through the code I've written in just 17 minutes by reviewing my GitHub and my GitLab and all the code my repositories that are left over. So if you find this video useful to you, please share and like this video and comment code 7 to let me know you've watched it all the way to end the end. You know, I've done plenty of projects and GitHub it got popular. I. I started using GitHub a lot in 2021 or 2021 or 2020 because the making the teams became a feature of GitHub but before it was easier to use GitLab and that's what they're teaching at the place I was learning. So let me show you what's left over in that repository. It's kind of cool to have all this experience and look through all this code Anyways. Well, one of the first projects that I did was this Capel website. It was. I got this project through the bootcamp I went to and when we finished we had a project score. So I finished this Cat Bell project that they offered to the students and me. So they actually got invested as well. But they didn't hire any of us. But anyways they there's in Korea like all the data isn't online. So we basically aggregated that data and put into databases so people can like search the bills that are getting passed soon and stuff like that. So that was a cool project and we learned PHP at the time. So I learned about like sessions and logging it. I made the whole authentication system from scratch and I'll show you that kind of stuff, but I don't think I have the code base for that and I'm not allowed to show that anyways. Actually one of my first projects was maybe Reservy. It was a tattoo reservation software. This is the code left over. So I'll show you here. This is called Reservy tat. This is the first time I've opened GitHub GitLab in like a long time. So it's just a bunch of PHP code. It's a bunch of CSS and PHP and making reservations and injecting some PHP into the HTML and JavaScript and making the artist form. This is a lot of code and a lot of forms, but just a bunch of check marks and labels and forms to register tattoo artists. And then later on, like confirm registration. So the APIs are here, like confirm reservation. Here's just some raw SQL queries. I remember in PHP it's kind of like SQL params. You set your SQL, you prepare SQL with your data connection. So that data connection's coming from the lib probably. I really don't remember. Resources Reserve econ. There's the connection, the Data con new PDO with. I was using MySQL basically logging in, use the reserve econ and then prepares the SQL query and then it executes it. And it was, it was pretty fun. It was interesting. And then the biggest part of it was actually making the reservations. So request reservation and just a bunch of SQL queries. And I don't even remember SQL anymore. So this is one of the first projects I did. Let me see if I can find. Oh, there it is. Reservy tattoo. Okay, here it is. Here's the design for it. You could like look at the tattoos, you can see where they are, you can see their artwork, you can see their tattoos. Then you have to click on it in the right spot. Mr. LOL. Styles basically press here, you press here, you can go to the tattoo and then you can go make an appointment and then you could choose a time and you could send a request and you could reserve a tattoo spot. I thought it was a good idea and the startup got selected, so we're kind of just. I was just creating the prototype and everything. You know, you're for that kind of thing. You're going to need to get the available times, you're going to have to request a reservation, then it has to be a request, then it has to get the reservation and all this kind of stuff. I thought it was pretty interesting. It was fun. And that was my first big project, I guess. So that was that. Let's just look through this and let's see some other stuff from there. There is some like real estate stuff. So let me go here. I think this is one. This just has front end stuff in it, so I think I can go through it. Here's the state, here's the stores, here's the getters, mutations. So I was using VUE here with State, so I had to have a bunch of State to kind of show what I need to show and all this kind of stuff. So I thought it was interesting and it would make a lot of. I think I put everything in the actions. So I use something called the event bus which would let me talk to the components with data everywhere and set the tokens and everything to get the data and the mutation to change the state. That's the pattern I was going with. And it was fun. And it would have like components. I would have my statistics card, statistics card line. I was using chart js and it was just, it was a fun time in my life and we built that front end like many times. So I have a bunch. Maybe I have even more like this one. There's like a bunch. So like basically in my, the beginning of my career I had like the real estate stuff and then I had reservy. So those were kind of like two things I had. And then here I have like small stuff, other stuff like K beauty project that I did. K brand cosmetics. I don't even know if this is still alive, but let's see. A brand cosmetics. Oh here. Website. Still alive. Oh shit. I made this. That's crazy. Anyways, yeah, that's another website I did a long time ago and oh, I didn't know this would still be alive. But okay, that's something I made as well. Now I'm moving my career into GitHub I guess GitHub.com and so I did a whole bunch of stuff in GitLab. I like that's not all this stuff but I did a lot more. And then if I just look in my repositories, there's a bunch of stuff in teams that I don't want to show you guys or I'm not allowed to show you guys right now. So I'll just show you guys what's in my repository. So as you can see, I started using GitHub from, I mean I think like 2020 and my activity has always been pretty high. So I'll just show you guys and if you guys have GitHub, I mean one thing I used to look at a lot is like activity anyways of like people if they actually code. So you guys should just like fill this up as much as you can. Oh, 2021 is when I started using. Okay, so started using GitHub in 2021 at the end of 2021 and I was using GitLab everywhere like before then. So the next project from the reservation software to real estate, I think it was the journaling software. And I have, I've shown you guys that before. I think that's on my computer. So this was in React native. And here I got to kind of use like, WebRTC and like a whole bunch of things I've never been exposed to before. That really showed me how, like, a website should work. Here I experienced maybe like social login using Firebase and all this kind of stuff using SDKs. And it was really interesting just making everything and then figuring out there's, like, stuff secret, like APIs, like dream security where they, like, have an ID for everyone to, like, index all of them. And it was fun and I had a good time making all this stuff. Like there's personality tests and journaling and all this kind of stuff. And it was interesting and it was fun to kind of write and work in a team. And next after there, I. I refactored that whole thing and where I learned a lot. You guys can watch that video. It's. I refactored that whole app into a more usable, like, reusable kind of app. Made it very modular and I could turn on and off the features, and it was very interesting. And then from there I hopped into a different company and it was a kickboard company. Let me see if I can kind of, like find some code from there. I think I. I'm missing a couple things, but here's a keyboard cron. Just one. I can just show you guys, like a piece of code. Let me see here. Cron kickboard. Cron kick. So this is like a cron job for a kickboard service. So there are many things you have to kind of check here. This uses a cron mix in Lodash moment. And, you know, on tick, we have to find the kickboards. We have to check which ones are out of the area. So out of area is created. Kickboards check for user, not deactivate. So if someone forgot to turn it off. Kickboards checker for faulty segue. So segue was the network we're using. Kickboard checker for speed change. So that's checking the speeds. Kickboard checker for speed back to normal, because if they sped too fast, the kickboard would automatically go slower. Kickboard checker for low batteries. You have to check all the ones that you have for low batteries and then mark them kickboards for delayed status updates. And just a bunch of crons that you always have to run for these IoT projects. And I thought it was really interesting, create all these. And there it was. I built a lot of projects. Like, I got my hands. I got to be able to work on blockchain projects. I just reopened my GitHub here, blockchain Bitcoin service I was using like I think these were just two services that I made just to create wallets and addresses. They're interesting. And then testing transfers and testing Ethereum but create Wallet was working perfectly. Balance test and all this kind of stuff. Sure you should. I like later on I wrote like my own smart contracts. I can show you some projects there too. This one it was. Don't have my GitHub but I don't think this project's running anymore so it's okay. So this was artifacts. So artifacts are the ABIs that are built out from the hard hat. They like the erc, the. The contracts kind of run and all this kind of stuff. So here the contracts, this one just using from Open Zeppelin, some kind of stuff. This is how you call and interact with the contracts. There's a solidity code so it's just standing on ERC721. 721, I think is NFT contract. Just a bunch of stuff here. There's some payment endpoints, just some cool stuff like SMS service to kind of send text messages and all that kind of stuff. OTP service cron crypto prices to like scrape the prices from Bitcoin. For Bitcoin, Ethereum, Tether and Clayton kind of like show real time updates for those. Just a bunch of other ones like just user service, what kind of data we needed. And then the front end was built in Flutter and we're using Flutter build Runner just making all these UI and like create NFT screen and the children components and all this kind of stuff. And I think we're using MOB X in here. It was really fun. And this is the MOB X and like it had a lot of auto generation code so you just run the gener, the build runner. It would make these G files so it makes the code clean and faster and usable. And the route was auto generated too. I think it was really interesting to learn like me coming from like PHP to like Vue JS to like now like React native to now like Flutter and then like in the back end using like what things like Node Js and python but like the whole time almost basically we're using Node JS for the backend, right I guess php. And here I was learning a lot about that and like Docker and Docker was really interesting for me running like microservices and learning how to manage that kind of stuff. So I learned a lot and it was really interesting. So I was learning blockchain projects and Then from there I was learning a lot. I was like, I was like on this mission to learn everything I could, just soaking everything in. And. And then I had some kind of interview with some teaching software during COVID like share screens. So I think I was studying that a lot. So I think this is just a practice one that I was doing. But here I was doing some stuff here. It's called a repository. It's called like video screen share or something. So here there's some socket handling stuff from the server. You could see like where I was like taking the video and I was getting the image and I was putting on a canvas and then I was sending it base 64 through the socket so you could actually see it on the other side. So it's not really. It wasn't really a WebRTC thing. It was sending like base 64 images so other people can see the screen in real time. I thought this was pretty interesting and really fun using like video track and all this kind of stuff. And then I actually got to help out on a cool job for Seoul National University and making some student teacher software. And I thought that was really interesting. I was like a build up honestly because I was like working on the WAVE RTC stuff on the journaling software company. And then I got to work on this screen sharing software after this screen because this was a. The screen sharing thing was just a temporary job. And then from there with the blockchain stuff I got to work on like some kind of other blockchain project. I can't show it but it's live gram live. Ah crap. To be honest, I don't remember. Let me see if I can find it in my, in my code. Live Culture Lab. There we go. Live Culture Lab. And like this one, there's some articles about it. Lcl. Yeah. So they released their own coin and I always helped to like. I needed to like hook up some like blockchain stuff for there, checking the balance and all this kind of stuff. But I don't know what happened to them to be honest because I only worked there for a couple months on a contract basis. But I was using the, the experiences that I've learned before and I was kind of picking up these projects and getting them done and it was pretty good. It was fun. Then from there did other couple projects. One of the other big projects I got put on too was like a crypto lottery website. I did that one. It's called like Crypto Ishtar where people could like select a number and buy a number NFT as a number and then people could win something and then other ones. I helped out on a BNPL buy now pay later app that I think it ran out of investment before it really released. And like the most recent one that was huge was, you know, you guys ever know like the first video I ever posted I got laid off from. But this was a pretty big app. It had this one. We had a bunch of features in here. Oh and I did make that alcohol selling app too that's deployed somewhere. So there's like a bunch of gestures that we're using double tap and these utilities for app storage. Bunch of stuff. So let me just go here. We had a bunch of stores with Zeus Den, a bunch of helper functions like get property by dot notation. Just a whole bunch of helpers. And let me see here. Like a lot of things and a lot of things here were like kind of like a used marketplace with like a community and comments and people could sell stuff and little other brand markets that were going to be incorporated into there. The project was huge and it, I mean we only worked on it for 15 months but I feel like the project was so big it should have been, you know, it. We needed more time but it was harder. It was like. I think I went into it thinking it was going to be smaller but they kept on wanting more and more and more and then in the end just. It got out of hand a little bit. But yeah, I mean we, we added features like we made a markdown thing. A markdown. Markdown or publish packages, draggable vertical flat list design system. Content editor, that's what we call. Called it. All right, so we have index here. That's a bunch of stuff. Content editor where you could actually like put an item and then drag it up and down and kind of edit, edit it on the phone to like make a pretty little like post for the community. And it was just a bunch of code. It was really hard. Get it smooth and put like a text input and inside of there it just did a bunch of stuff. So I, I had a lot of fun with it and it was, it was, it was interesting. So that was the front end and then I think let me close this up too. And then the back end is around here somewhere. This is the back end. There's a lot of back end stuff too. Like just open an example file up here. Community post factory where we're creating, you know, the community post structure. Get community posts, my aggregations to kind of match the collections. Like I join in Mongo and it was just a lot of work, man. It was, it was really hard and it was really fun. There's a lot of chatting, there was finding users, matching them. There's a bunch of things and I think it was interesting. And that was like the last big project I was really working on. Now recently I'm working on chatbots, so that's what I'm doing with my time recently. So let's think that I went from, let's say PHP and then Vue JS and Python to React Native and Node Js and then from there I went to React Native and serverless, and then from there I went to Flutter and Node JS and then I went back to React Native and Node js and that was kind of like my whole timeline of like the languages I was using. And in between there I was like using some other stuff as well. But yeah, that's, that's about it for the code. My last seven years have been a hell of a ride and it's not over yet. I've met so many amazing people and gained tremendous skills. Now I am here to give back to the community and raise up more developers the way I did. If you made it this far into the video and you are interested in programming, please come to the discord. Me and other like minded programmers are there to guide others to start their coding career. Remember, if I can do it, you can do it too. Coding saves lives.
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






