The Top Tech Stacks that improved my coding skills the most (100+ apps built)

Phil Choi, a senior developer who's built 100+ apps, breaks down seven tech stacks: LAMP, MERN, Python+Django, Flutter, React Native, and Serverless. He weighs each against development speed, team collaboration, performance, and cost, and says MERN and React Native are his go-to choices for most projects.
Chapters
Program language stack. Everyone always asks what is the best coding stack for web apps or mobile apps or whatever programming project you're going to do? There isn't really a number one stack. Every stack comes with its advantages and disadvantages. In this video, I'll go over the top seven stacks I've used and will tell you at the end what is in my opinion the best stack to learn in the current job market. My name is Phil, I became a senior developer at the age of 30. If this video becomes of value to you, please like and share and comment on what stack you're currently using. I read all the comments and would love to give you my input. The first stack we're going to talk about is, you know, a legacy one, a legendary one. Let's say it's a LAMP, Linux, Apache, MySQL and PHP. It's what I first learned because I remember learning PHP and LAMP is really good because anyways, when you're running like a cloud server, you're. You're running like Linux anyways, right? Ubuntu or Debian or whatever it is. And from there you're running a Linux command and then to serve the files you're using Apache and then PHP and MySQL work very well together and a lot of the web is built on that. And I think the lampsec really comes from when developers used to work alone. They're like the lone wolf and they didn't really need to, you know, worry about the deployment and all this kind of stuff. You just upload the files with FTP transfer and it works. So I think Apache is really cool to like get a HTML or serving like PHP and, and it makes everything very like simple. You can work alone. But you know, like for me anyways, when I was using php, it was kind of hard to work on teams because you'd have like a bunch of HTML and then you. Or PHP and then you have HTML code there, I mean, and then you can inject the PHP anywhere you want. And it just, it's like the code is very, it's like front end and back end the same and then you. And it's, it was really cool to see like, and then you put like the session token on top to give everyone like login access. And it was cool and it was easy to deploy, it was fun to program in. Obviously it had its like drawbacks too, like php. Sometimes when you write a lot of it, it starts looking like spaghetti code. But you know, it is a classic. A lot of it is Open source. But MySQL still open source. I don't know. So efficiently handles, you know, dynamic web pages, allows you to choose components based on your specific business requirements. For instance, instead of Linux you can choose Windows OS that'll be wamp. But you probably use Linux because it's way cheaper. And Python or. And PHP is. It's an. It's a good language. I think people like, like to talk bad about it but I have used LAMP on like my first project. I think it's. It was like a tattoo reservation thing. I wrote all the front end and back end php, all the AP APIs and then just trench it over with FTP like Filezilla and then it just gets uploaded and it works pretty well. So that was like something I made with Lamp and like another stack. I think now that we're getting a little bit more modern and after like you know, the building a website and building these technologies isn't like a lone sport anymore. You know, things like React came out where you can actually, you know, I'm going to work on this component, you work on this component. Let's put it all together in the end. Not saying that you cannot do that without a lamp, but like Myrn it stands for like Mongo Express, React and Node js. There's also mean where the R is replaced with a. But anyways, I've never used Angular. Maybe I have like the NG create, I don't know and then burn. So when you replace Angular in the mean stack it comes React. React is like super popular. There's a huge community. It's really good for web development. And then if you want to go into mobile development, which we'll talk about later, you can do React native and similar syntax anyways you can build a very, you know, robust front end like that. Hold a lot of data, don't need to make a lot of requests or like it front loads a lot of the requests in the beginning. Then you can like save all the data in state or like state managers and then you know, handle and manage from there. It uses jsx, which is very familiar to HTML. It is HTML almost and uses a virtual dom. So that allows the changes to be implemented easily. Since React is a library and it's not a framework, you may have to rely on third party services to build side functionalities. But React community is like the biggest in the world. Honestly, like before you start building like a carousel or like I don't know, whatever it is, you can also like look it up on npm if there's anything for there. Not just React but Node JS community is huge. But probably someone else has run into that problem, made it like a dragging library or anything like that video sharing library and you can find them and then learn how to use them. But if you're not holding that much data and you're, you know, and you're not having to handle like a lot of data in your views or something, it might not make a lot of sense because it is a lot of steps to get the server running and you have to build it and build a minified version and run it and deploy it when you can. Just if it's a simple landing page or something, HTML CSS, JavaScript would just be fine. But React is kind of good if it's, if things get a little bit more complicated, the client needs to like handle a little bit more data or a lot more data. It's, it needs to handle a lot more requests and needs to have like routing and all this kind of stuff. Maybe you would want to use React and Mern, but. And it's probably a good choice because it's very popular and Mongo is very easy to use with Express and it's pretty good. And I'm, I'm using Myrn a lot recently too. Not with Express per se, I'm using a different framework like Nest JS or Molecular. But I respect Myrn a lot and I think a lot of the newer developers or a lot of the developers now have implemented it and it's, it's easy to find other developers, developers that are using it and it's, it's really, it's cool. So I have built something similar within Myrn like Mongo and React. React with Fight. Then I use Mongo with. I think I was just running Mongo inside of Docker. Don't do that. If it's going to be like a real production thing, use it on Atlas. But yeah, I was making back end with Node JS and then my front end with React. Yeah and then I was connecting it to Mongo and yeah it was, it's really fun and it's easy to use and, and it's, it's definitely something that's very powerful. So for web projects I think MURN is very good especially like big full scale ones and anyways so the next one I would say is Python and Django Stack. So Django's high level Python web framework that encourages rapid web development. So it's, there's everything is built into Django once you install Django I feel like all the batteries are included. You don't need to reach out for any kind of other things like routing. You don't need another library for routing, you don't need another library for Django like making HTTP requests. The Django has everything built in and like extensions like Django REST framework or I don't like the Django admin panel is super powerful. I have definitely used Python and Django before even with Vue JS and leveraging Django Python stack for application development allows you to use modern technologies and developers can combine the stack with Apache. You can combine it with many things, right? Like I think when I was using Django we were using with PostgreSQL and PsychoPG2 for the connector with Django and we're using Django REST framework and then the admin panel. So one project that I was doing recently with the Python Django stack was this is a project I was working on like, like last year or something. But it was, it was done in Django. We used Django cookie cutter. It's to get the initial like template of the project and then we loaded. There's this company that needed a bunch of data moved from their access database super old to like web. So we moved it all and you know there was a bunch of like tables we used like this has like behavior message argos location. It was for migrating sea turtles data. So I don't know Python's very good for working with like big sets of data or like if you need to use some like AI tools or something recently I think you can use those a lot with Python. Python like drops in works really well. You have a lot of tools in Python like jupyter notebook and stuff to test your code code or like run your code in like a safe environment. And it's really good to kind of use when you're working on a data driven project. And then I think good thing with Django is everything is included so you don't really need to make the admin panel yourself. And there are a lot of like wrappers for the admin panel. You can get templates and it's really easy to work with and in the end it just like puts it like puts the database tables, postgres tables into your admin panel and you can search for them, you can do a bunch of stuff and cuts down on a lot of development time and you know, and I really respect Python Django and one thing of Django is the documentation they have on their website. The tutorial is really Good. You can learn almost everything you need to in that tutorial inside of the Django. Django tutorial, the django project.com. i think it's, it's pretty, it's pretty good. It tells you exactly what you need to do like for the, you know, templates, URLs and views, the URL patterns, all this kind of stuff, the admin panel, authentication and all that kind of stuff. It's pretty good. I, I would recommend it if you need to just like work on some data driven stuff like, and show the data. I think Python is good for that with Django and you don't need to write the add in panel. That's one thing that's very good. And I heard like other, there's other projects like that with like Elixir and Phoenix which I want to get into. Elixir, Phoenix, add in panel. Yeah, you get it' Some kind of admin panel with Elixir. I think that'll probably be my next thing that I'll probably do recently anyways. So going off topic, but Python and Django for like data heavy projects where you have to show a lot of things like the back office, meaning like not, not like, you know, the front facing to clients, but like admin panel stuff, I think it's very good. And you'd be surprised at how many projects that are like that, right? Like every single front end project is going to have some kind of admin panel and I think Python, Django will be very good for that. So the next two things are like mobile development. So Flutter, right, is written in Dart. So Dart is a language from Google that they released, right. And then Flutter is like a framework for Dart. And anyways, so Flutter is powered by Dart, a program language optimized for fast apps on any platform. So they're very performant apps and the coding is they built out a lot of widgets and it's really cool to use. I've built two, two projects in Flutter, like a crypto wallet and a coin exchange and it was very fun. Like it's not like I built them myself, but I worked on the team to build them. Here's some, let me see here. Mobile. Whoops. So this is kind of what like Flutter code looks like. We built some like screens and you do like this, you built like these widgets and you can put like the app bar, that's where the app bar is and the body and then it almost, it's like, you know, you call these, you call these UI components and then they have Properties and then you put the properties inside and then those properties inside have widgets and those widgets have another properties and you put them inside. It almost felt like a huge CSS kind of thing to me. Not like CSS and styling, but like the language, the way it looked is like you could put like these objects and then inside of those objects you can put other properties and anyways it was, it was really fun to use. Yeah, it was, it was a good time. But Flutter, I think if you're handling like a lot of like SVGs and images and you kind of need like native performance and all this kind of stuff, I think me personally, Flutter is way better than React Native, which I'm going to talk about next for performance for apps. I don't know if it's way better, but like it is better. My opinion. And the code is very strongly typed so it's safer. And like the mobile interface, it gives you a lot more warnings like if you're like out of zone, it'll give you like a yellow, like a yellow and black like thing like that's like, oh, this is not allowed. And it kind of gives you better warnings to kind of like go through and not break the rules I guess. And the code help is really good. So like if you make an error and you like press like command period where your error is, I think it should, it should like fix it. Not like here, let's go like I don't know, let's go like this maybe I don't have Flutter installed anyways, so anyways, like if I mess up, I think this is old code base, so I don't really, I don't really have the completion for it for some reason. But anyways, so Flutter is pretty good for making a mobile app and making for mobile apps and that's going to bring me on to the next one, right, which is, which is React Native. The React Native stack here, let me see here. React Native is a JavaScript library that can, that makes a bridge for building iOS and Android mobile applications, right? And it uses JavaScript as the engine, but then the UI components it can talk to like the native UI components. I think that's how it works. But there is Expo in the React Native community. Cli. I have not used Expo before, but I heard it's getting much better. So React Native applications are written with a mixture of JavaScript and XML markup and using real mobile UI components, which means the app looks like other, any other mobile application. Application built using React Native provide high level reliability and Performance deliver superior user experience. The framework allows developers to reuse 100% of their code between different environments, which saves a lot of development time. So that's a huge one, right? So say I'm. I'm writing a web app in Mern and the syntax is very similar from React. So you can just reuse a lot of the code in your React Native app and like the knowledge will transfer over. So if even if you need to rewrite it, it won't be like too much different. And I feel like React Native, like my opinion, like these phones or whatever, like they're getting like way more and more powerful. So like they're a lot more giving recently for like writing like, I don't know, you're processing like your app or whatever. I'm not saying like write really bad code, not performant, but they're a lot more giving now. Like I remember like, I don't know, I remember my computer when I was like really young. It had like, I don't know, 512 megabytes of RAM or something and I was like really happy because I could play Diablo 2 Lord of Destruction. But now I think phones have like gigs of RAM and that's really insane to think about. But I'm not saying write bad code and like excessively write like for loops to find stuff and when you can have higher up like performance doing other things. But anyways, what I'm trying to say is React Native, even though it's not as performant as Flutter, let's say I think React Native the usability between code. So say, you know, I get an outsourcing product, right? Or something and I have a mobile project I need to build, I need to build an admin panel, I need to build a website, I need to build the server and then the database tables or something, right? It would be kind of cool if I could share code between my app and like the website and admin panel, right? So that would be. I think it helps with the development speed and the syntax is very similar. So you know, and you know, like I said, there's a lot of community for Mern. So if you need to find people to like work on your app and help you, there's a lot more people in React Native land and Flutterland. My opinion. And React Native does have like the red screen of death when you do make errors. I mean Flutter has better errors like to look at you, but to look at it. But React Native is also pretty good. And I like React Native because I got, you know, I Got pretty used to it. And the last one we'll talk about is Serverless Stack, right? Serverless is an architecture that got pretty famous. You got like AWS Lambda, Google Cloud functions, Azure functions. I've not used Azure functions, but so serverless. You know, I think it's pretty good because when you write your own server and you have to use like the load balancers and everything and set it all up, it could, you know, you do need more hands and you need more expertise. But Google Cloud functions, what I use a lot anyways, or AWS Lambda, you just write the code and then it gets all managed and handled by, you know, a different, you know, server. It won't crash, it'll just be expensive if it's used a lot. So I mean for cost. So there's like two things that you really have to think about during like development, right? There's time, which is cost, right? So if it takes a longer time, even if you're paying one developer, you're paying that developer to finish the job. But then if, and then you have like scalability and use and cost of use afterwards, right? The server is not free. And definitely using Serverless is. It was trendy, it was trending a lot, but it is kind of dying down, I feel again, but it is very expensive to maintain. But it is good for an MVP product and where you're trying to get more investment and more investment until you can build out those actual things by yourself. It is good and it is good for like, let's say you don't actually have someone that actually ever written, like, I don't know, some infrastructure code or something like that, let's say. And then you want to deploy these simple endpoints that are touching some, I don't know, some database, like what is DynamoDB in AWS or Firestore? I think it's very effective there, but it could get very expensive if you have a sudden explosion of your, of your app getting successful. So yeah, I mean, for me, definitely, like I've used all of them. I'm. I think I'm. I've kind of like put it pretty straightforward. I like Myrn and React native the most. And serverless does have its place when you want to like kind of build things fast. But yeah, and that's, that's my thing. And like now that we've gone through like all the stacks, I think we've gone through like 1, 2, 3, 4, 5, 6 stacks that you can use to build a fast team. I would say go with React because the community is so large and for like data heavy things and like say you need to pop out like a bunch of CSV files and JSON files and all this kind of stuff. Maybe Python is going to be better for you. And Flutter, it's, it's good. I mean, not like a master of Flutter, but I have done like two apps in Flutter. It is pretty good. Lamp Stack, I feel, you know, it's kind of older, serverless is pretty good for if you need, if you don't have time and you don't have the hands to help you. So now, like we talked about all of them. I talked about what I liked, what I didn't like, and I like a lot of like technologies. I'm always like learning new things. I, I want to learn like I think go Laying and Htmx or Elixir in Phoenix. These are other stacks that I'm kind of interested in. Maybe I've been a little bit too lazy to learn them, but someone wants to reach out and like teach me or whatever, or study together. I'm always down to. And also like what I've been using recently for my code. So I use like React Native, Community, Community cli. So this is what I'll use. React Native, Community cli. And they're always coming out with new updates. The one problem with React Native I feel is it's been out for I don't know how many years, a lot of years, but it's not even at version one yet. So that is something that is always scary because it's always changing a lot. But anyways, that's something that I use and I use, I use it with atomic design, React Native. So I'll use Atomic design using React Native to structure my folders for my components into like atoms, molecules, organisms, templates and pages. And maybe I will make a video on this later because there's like two ways that you can do your. That are like trending recently. So FST is one. So feature slider, Slice design. And I do kind of want to go over some feature slice design kind of stuff where you have a hierarchy of your files. And I use. So right now I like at my old company, I call it like the Science kind of stack. Not science, but like React Native with atomic design. So I use like molecules, organisms and all this kind of stuff. And in the back end I use Molecular services, so it uses microservices and it's pretty easy to use. It reminds me of at times when I used to use VUE because like the syntax is very Similar. So I use React native with the atomic design pattern. I use molecular and then I'm using Mongo and Docker. So those are kind of things that I'm using recently. And I could, I like build apps pretty fast with them and I'm familiar with all the tools that I use, but I do understand I've been using it for a while, I need to kind of branch out and into more diverse things sometimes. But that's basically what I used recently. And you know, that's for mobile apps. And there is no wrong choice, to be honest. It's all, you know, very interesting. It's, it's fun to learn new stuff. It's fun to kind of, you know, dive deep and find where something would make sense and use just like one more thing like Python and Django is it is not the fastest. Like at HTTP requests it's hard to do sockets. But like, say you do need to do more web like protocol stuff like Node JS is going to be better and then even better than Node JS at HTTP request is going to be go lane. So there are drawbacks and, you know, positives to every single language and there's, you know, and it really depends, like say for JavaScript you need to do. You wouldn't write a game because you cannot really handle concurrent tasks very like at all. Right, Like a game. Like you need to track when someone's moving or something like that. But Golang is very good at that. It can, it can handle many threads at one time or C. And yeah, there's a, there's a, there's a place in time for everything and usually all that stuff will be set for you at the job place when you're there. And you should just trust the process and, you know, work on what you think is fun and just 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






