Please STOP Building CRUD Projects (Common Dev Mistake)

TThe Coding Koala
Computing/SoftwareAdult EducationInternet Technology

Transcript

00:00:00so i've been working as a software developer for about three years now and honestly the thing i
00:00:05regret the most is that in my first two years i spent all my time focusing on the wrong thing
00:00:10and since i cannot go back and fix my mistakes you can the problem with most people is that
00:00:15they keep building the same crud application over and over again thinking they are building
00:00:20different projects but in reality they are just building similar project in different outfits
00:00:26sometimes it's a blog sometimes it's a shopify clone but underneath all of that it's the exact
00:00:31same principle create read update and delete the entry from database and before you start abusing me
00:00:38in the comments i'm not against building crud apps in the beginning that's literally how you learn and
00:00:43it's a fundamental skill that every developer should be able to do with their eyes closed because every
00:00:48software you will ever build relies on this foundation but it becomes a problem when you start getting too
00:00:54comfortable there and never move past it and once you cross that line there's a whole separate
00:00:59universe beyond crud apps that you get to experience the second you step outside your comfort zone and
00:01:04this video is all about how to actually do that i will give you three things you can start doing right
00:01:10away and don't miss the third one because it's the laziest thing on this list and somehow the one that
00:01:15taught me the most but let's start from the top make your existing project production ready and this is
00:01:20the one you can literally start tonight without going anywhere near the internet looking for a new
00:01:25project to build all you have to do is pick something you already built maybe a blog maybe an e-commerce
00:01:31platform and try making it production ready and when i say production ready i mean until now you've only
00:01:37ever focused on making it work now it's time to focus on the stuff that actually matters in the real world
00:01:43things like security performance reliability testing and observability because that's the
00:01:49actual core of a production application so let's take your e-commerce platform as an example right
00:01:54now it just works someone logs in adds a product to their cart pays gets a confirmation email and that's
00:02:01great except you probably never planned about what happens the moment things stop going according to plan
00:02:07that's where security comes in basically hunting for flaws and vulnerabilities in your own app go check
00:02:13if someone could log in as another user just by tweaking a request or if your payment route would
00:02:18happily accept a negative number and basically pay the customer instead of the other way around
00:02:23because trust me someone out there will try exactly that within five minutes of your app going
00:02:27then comes performance put a hundred fake users on your product page at the same time and just watch
00:02:33what happens see what breaks when a hundred people query your database at once because right now your
00:02:38app has only ever been tested by an audience of one very patient person you then there's testing and no
00:02:45clicking around your own app for two minutes before every deploy does not count you need actual
00:02:50automated tests and this will teach you two things at once how to actually write good test cases
00:02:56and how to configure something like a github actions workflow so those tests run automatically on every
00:03:01single change push to your repo because that's how real production workflows operate and finally
00:03:07observability which is just a fancy word for if something breaks at three in the morning can you
00:03:13actually figure out what happened this means proper logging proper metrics and making sure your app can
00:03:19basically tell on itself the moment something goes wrong if you focus on adding these things in your basic crud app
00:03:25project you'll naturally end up learning things like caching rate limiting cues database indexing load
00:03:32balancing and the list goes on do this to just one project seriously just one and you will walk away
00:03:38having learned more about how real systems actually behave than another dozen basic crud apps could ever
00:03:44teach you that brings me to number two and this one's a little more obvious build something genuinely
00:03:50complex and if you're sitting there with no idea what to build just pick an existing tool you already use
00:03:56every day and build it from scratch this is the exact type of project that takes you from being a
00:04:01developer to being an engineer and if you're wondering what that platform is on screen it's called code
00:04:06crafters it basically hands you a bunch of popular real world tools and challenges you to build them from
00:04:12scratch it doesn't give you the code it just gives you the roadmap and you have to figure out the rest
00:04:17yourself i tried it myself and genuinely found it useful links in the description if you want to check it
00:04:23out which brings us to number three and this one's honestly the laziest item on the whole list reading
00:04:29post-mortem reports and no i don't mean post-mortems of an actual moda in tech a post-mortem is just the
00:04:36report a company writes up after something goes seriously wrong big names like github cloudflare
00:04:42all of them publish their mistake publicly for example this right here is cloudflare post-mortem
00:04:47from their outage back in november and inside it you can read the full story what the incident actually
00:04:53was what it impacted what caused it and exactly how they fixed it reading these teaches you how things
00:04:59actually operate inside massive tech companies and trust me you will pick up more from one of
00:05:04these reports than you'd expect read one a week and you can learn about how a single line of code can
00:05:10cause problem in big tech companies and that's pretty much it level up your old project start
00:05:16building one genuinely complex thing and get into the habit of reading post-mortem reports this is
00:05:21basically what i do myself and if you've got something to add to this list drop it in the comments
00:05:26and if you subscribe to my newsletter you'll get a weekly email where i share helpful content for
00:05:31developers just like this i guess that's it for this video if it helped you out show it some love
00:05:37and i'll catch you in the next one

Key Takeaway

Transition beyond basic CRUD development by refactoring existing projects for production-readiness, building complex real-world tools, and studying public post-mortem reports to understand system failures.

Highlights

  • Building repetitive CRUD applications limits developer growth once foundational skills are mastered.

  • Refactoring existing projects to be production-ready teaches security, performance, testing, and observability.

  • Automating tests with tools like GitHub Actions prevents the unreliable practice of manual click-testing.

  • Building complex, real-world tools from scratch transforms a developer into an engineer.

  • Reading public post-mortem reports from companies like Cloudflare and GitHub exposes common failure points and system behaviors.

Timeline

Limitations of CRUD-focused development

  • Repetitive CRUD project creation hinders professional growth.
  • Foundational CRUD skills are necessary but insufficient for career advancement.

Developers often stagnate by repeatedly building functionally identical projects like blogs or stores under different names. While CRUD proficiency is a mandatory baseline for all software, continuing to build only these types of applications prevents access to more advanced engineering concepts.

Making existing projects production-ready

  • Production-ready applications prioritize security, performance, testing, and observability.
  • Automated workflows with GitHub Actions replace unreliable manual testing.
  • Observability requires implementing logging and metrics to identify issues during downtime.

Refining an existing project to handle real-world scenarios forces the implementation of advanced features like load balancing, database indexing, and rate limiting. Security involves proactively testing for flaws, such as input manipulation or payment logic vulnerabilities. Performance testing requires simulating high traffic loads to identify breaking points.

Building complex systems

  • Recreating daily-use tools from scratch bridges the gap between developer and engineer.
  • Platforms like CodeCrafters provide roadmaps for building complex, real-world tools.

Constructing complex applications without pre-existing source code forces developers to understand underlying architectural requirements. This hands-on process requires problem-solving rather than following standard tutorials, directly contributing to engineering expertise.

Learning from post-mortem reports

  • Post-mortem reports detail the causes, impacts, and solutions for major technical outages.
  • Reviewing one post-mortem report per week provides insight into big-tech operational failures.

Major tech firms publish post-mortem documentation detailing incidents where systems failed. Studying these reports reveals how minor oversights or specific code changes lead to massive outages, offering practical lessons in system stability and incident management.

Community Posts

View all posts