🚧 We are still building the lighthouse. Hang tight!

projectlighthouse logoprojectlighthouse

fundamentals of software engineering ;

learn by doing

beyond the framework and tutorials. hands-on, project-based, self-paced learning. no fluff, just practical skills you can use today.

projectlighthouse — fish

Learn by building

to build a better world

philosophy

Fundamentals first; practice & iterate

Instead of rushing through frameworks and libraries, we focus on building a strong foundation first. Understand the core concepts, then practice by building real projects, iterating as you learn.

approach

builders, not watchers

Tired of long video tutorials ? Here, it's DIY, no copy-paste tutorials!

resources

Books, text based approach

Books are a powerful way to learn. Find in-depth technical books on systems, networking, and more. Dive deep into concepts and build a solid understanding that lasts.

CLI

Validate your skills with lux

Hand-picked projects are designed to challenge you and validate your skills. Use Lux CLI tool to test your solutions and gain XPs.

Projects = Challenges

Challenge yourself building real projects.

Leaderboard

Compete with others and track your progress.

Take notes

Review your annotations before a interview a quick look back.

Hand-crafted

Each project is carefully designed for production readiness.

Books

Carefully crafted books to help you level up your skills

Go Fundamentals
15 pages

Go Fundamentals

Want to build beyond CRUD? Databases, CLI tools, or distributed systems? This course covers Go programming basics - variables, control flow, functions, structs, pointers, testing and error handling. With real world examples.

View Book
30m

Consider Rust: Introduction to Rust

Understand why Rust exists, what problems it solves, and how to install and run your first Rust program. Learn about memory safety without garbage collection, preventing data races, and Rust's ecosystem.

View Page
2m

Getting Started with Go

Why Go was created, what you can build with it, how it performs - we'll cover all of this. Plus an overview of the Go community and ecosystem.

View Page
12m

RAM & Memory Basics

Understanding how Random Access Memory works and why it matters for data structures. Learn about memory addresses, bytes, and how computers store data.

View Page
35m

Types, Variables, and Constants

Master Rust's type system, variable declaration, constants, and memory layout. Understand stack vs heap allocation, primitives, compound types, and how Rust prevents null pointer errors.

View Page
7m

Variables, Types and Data Structures

Go's type system, variables, arrays, slices, maps - all with detailed explanations. We'll also look at how data is stored in memory.

View Page
15m

Static Arrays

Learn about fixed-size arrays, their memory layout, and basic operations. Understand how arrays store elements contiguously in memory.

View Page
6m

Control Flow - If, Switch and Loops

How does Go make decisions? We'll discuss if-else, switch statements and for loops. Spoiler: Go only has one loop keyword.

View Page
20m

Ports and Port Numbers

Understanding port numbers, well-known ports, and how applications use ports for communication. Learn about port ranges and port security.

View Page

Explore Projects

Build real-world projects from scratch and understand how things work

9 tasks

Build Your Own HTTP Server

Learn the fundamentals of web servers by building your own HTTP server from scratch. Handle requests, parse headers, and serve files.

View Project

why ?

projectlighthouse comes from a necessity per-say. Back in the days, I found it difficult to build things from scratch. One of the reasons is that where I come from, folks unknowingly choose framework based web development as the main path to learn programming.

which is fine for who wants to walk that path, but for me, I wanted to be more of a Systems Engineer. Write TCP or DNS or a Kernel; or the software that landed us in the moon. Stuff like that.

for a time, I didn't know how to ! The problem isn't that I couldn't build it ( as it's not that simple ). But, I didn't even know where to start. I couldn't even imagine! And I think that is dangerous and sad.

sad in the sense that I am a programmer, a software engineer who doesn't know how to build ! But engineers built this world. And I want to be able to build too.

dangerous because, I was stuck. I was limited to using the tools and frameworks that was already defined. I was an user, not a builder. And that is a scary thought.

so.. I decided to create projectlighthouse to bridge this gap. I wanted to build a platform for my younger-self. You know, as they say, "be the person you needed when you were younger".

Yah.. so I hope you find this platform useful. If you are starting new or have spent a decade in a different field, I hope this helps you become a builder. Together, towards a better world.

some videos that motivated me back in the days,

  1. Build Your World with Qt
  2. Making Games With Ben: Intro