David in Canada

 

Tech, life, and everything in between.

Day 14 — Student Report Generator (Final Project)

Updated at # Tech # Go

Overview This project is a modular, data-driven Go application that reads student data from a file, processes it, and generates a structured report. It demonstrates core backend engineering concepts: file I/O error handling modular design (packages) data processing clean output formatting Features Read student data from input.txt Parse structured records into Go structs Skip invalid input line

Day 13 — Student Manager (Modular Go Project)

Updated at # Tech # Go

Overview This project demonstrates how to structure a Go application using packages and modular design. Instead of placing all logic in a single file, the program is organized into reusable components, following real-world Go project practices. Features Read student data from a file Parse structured data into Go structs Compute: Average score Top-performing students (supports ties) Skip inval

Day 12 — Building Data-Driven Programs with File I/O in Go

Updated at # Tech # Go

Overview Today I transitioned from interactive CLI programs to data-driven applications. Instead of relying on terminal input, the program reads structured data from a file, processes it, and writes results back to disk. This is a foundational pattern for backend services and data processing tools. What I Built A Student Data Processor that: reads student records from a file (students.txt) parse

Day 11 — Error Handling in Go

Updated at # Tech # Go

Overview Today I learned how Go handles errors explicitly through the error type. Unlike languages that rely on exceptions, Go treats errors as ordinary values. This makes control flow more visible and forces programmers to handle failures directly. What I Built A Safe Calculator CLI that: reads user input safely performs division with validation computes square roots with validation uses a cust

Day 10 — Interfaces and Polymorphism in Go

Updated at # Tech # Go

Overview Today I learned how to use interfaces in Go to design flexible and reusable code. Interfaces allow different types to share common behavior without explicit inheritance. This enables polymorphism and decouples implementation from usage. What I Built A Grading System CLI that: defines a common interface (Evaluator) implements it for multiple types (Student, Course) stores different types