Skip to main content

Command Palette

Search for a command to run...

Escaping Tutorial Hell

Why I started building a production-grade application instead of building another guided project

Updated
4 min read
Escaping Tutorial Hell
A
Aspiring Backend & Cloud Engineer | Building AI-Native Observability & Security Systems | FastAPI • Docker • AWS • AI/ML

For the past few years, my learning journey looked just like any other student learning software development. I'd find a tutorial, follow it step by step, build the project, and move on to the next one. And to be fair, tutorials taught me a lot. They helped me learn programming concepts, frameworks, databases, and development tools that I otherwise wouldn't have known where to start with.

But over time I started noticing that even though I could complete projects, I often felt extremely uncomfortable whenever I had to build something on my own. The moment there was no tutorial to follow, I found myself wondering:

  • How should I structure the project?

  • What's the best tech stack for it?

  • How am I supposed to make it scalable?

  • How do professional teams actually deploy software?

I realized that while tutorials were teaching me how to use tools, they weren't necessarily teaching me how to think like an actual engineer which led me to finally stopping the endless playlists of projects and start something of my own.


The Difference Between Building Features and Building Systems

Most tutorial projects focus on one goal, which is, getting a feature to work. There's nothing wrong with that and in fact, that's what we beginners need. But real software engineering involves much more than writing code that works on your machine.

Real systems need:

  1. Architecture and planning

  2. Version control workflows

  3. Documentation

  4. Testing

  5. Deployment pipelines

  6. Monitoring

  7. Logging

  8. Security

  9. Scalability

  10. Maintenance

These are the things that separate a project from a product.

As I prepare to start my postgraduate in Information Technology, I felt I should spend less time following instructions and more time understanding how modern software systems are actually built.


Why I'm Building InfraSight

To push myself beyond my comfort zone and actually grow, I've decided to start building a long-term project called InfraSight.

InfraSight is an AI-native cloud security, observability, and infrastructure analytics platform inspired by tools like Datadog, Grafana, and Splunk. Of course, I'm not trying to recreate these products in their entirety, which realistically took teams of engineers and years of development.

Instead, my goal is to use this project as a learning vehicle. Through InfraSight, I hope to gain hands-on experience with:

  • Backend engineering

  • PostgreSQL

  • Cloud computing

  • Docker and Kubernetes

  • Observability

  • DevOps

  • AI and machine learning

  • Distributed systems

  • Cybersecurity concepts

Most importantly, I want to understand the reasoning behind engineering decisions rather than simply learning how to implement them.


Learning in Public

One commitment I've made to myself is that I want to document this journey publicly. I'll be sharing my progress through my GitHub, LinkedIn and of course, HashNode.

This blog will serve as a record of what I learn, what mistakes I make, and how my understanding evolves over time. I don't expect the journey to be perfect. There will be bugs, bad architectural decisions, failed experiments, and moments where I have to go back and redesign things from scratch.

But that's part of the process.


Looking Ahead

Right now, I'm at the beginning of this journey so my immediate focus is not on advanced technologies or flashy features, but instead on building solid foundations:

  • Git and GitHub workflows, which I had undermined previously

  • Project organization

  • Backend development

  • Database design

  • Docker

  • Documentation

Once those fundamentals are in place, I'll gradually expand InfraSight into the larger vision I have for it.


Final Thoughts

For a long time, I measured my progress by the number of tutorials I completed. Now, I want to measure my progress by the problems I can solve independently. InfraSight will probably take months to build. I'll make mistakes, encounter challenges, and learn many things along the way while documenting as much as I can.

And that's exactly why I'm excited about it.

It's my attempt to move beyond tutorials and start thinking like an engineer.

If you're also trying to move beyond tutorial projects, feel free to connect with me on LinkedIn or follow my journey. I'd love to learn alongside other aspiring engineers.

Building InfraSight

Part 1 of 1

A public engineering journey documenting the design, development, and deployment of InfraSight, an AI-native cloud security and observability platform. This series covers architecture decisions, backend development, databases, DevOps, cloud infrastructure, monitoring, and lessons learned along the way.