Skip to content

Repository files navigation

🚀 Roadmap.sh Backend Projects

Welcome to my backend engineering portfolio! This repository tracks my progress as I work through the roadmap.sh/backend project-based learning path.

Table of Contents

👋 About Me

I'm massemiso, a junior backend developer with a deep desire to master the underlying mechanics of web development, systems architecture, and high-performance coding. This repository is my "learning laboratory" where I practice building robust, well-tested, and maintainable software.

📦 Projects

A command-line interface for managing daily tasks with persistent JSON storage.

  • Concepts: File I/O, JSON Serialization, CRUD, CLI Argument Parsing, Pointer Mutation, Isolated I/O Testing.

A CLI tool to fetch and display GitHub activity with rich event details.

  • Concepts: REST API Consumption, json.RawMessage Polymorphism, Dependency Injection.

A financial management CLI with budget controls and CSV exporting.

  • Concepts: Layered Architecture, Interface-Driven Design, Command Dispatch Maps, Environment Standards (NO_COLOR compliance), Presentation/Service Decoupling.

A strategy-based guessing game with leaderboard persistence.

  • Concepts: Strategy Pattern, Higher-order Functions, State Persistence, State-Driven Structs, Input Sanitation Primitives, Pure Functions.

A web-based tool for unit conversion, utilizing a Go backend and JS frontend.

  • Concepts: REST API, Client-Server Architecture, CORS handling, Standard net/http Routing, DTO Validation.

A full-stack personal blog platform with server-side rendering.

  • Concepts: Spring Boot, Thymeleaf, Spring Security, Responsive Design, Embedded Storage (SQLite), Basic Authentication, Filesystem Storage, Robust Testing (JUnit, Mockito, MockMvc), Containerization (Docker).

A REST API that integrates with external services to provide weather information.

  • Concepts: REST API Consumption, External API Integration, Caching, Asynchronous Service Orchestration.

A professional-grade REST API for a blogging platform with PostgreSQL.

  • Concepts: PostgreSQL, Testcontainers, REST-Assured API Testing, JaCoCo Coverage.

A secure, multi-user REST API with JWT authentication and dynamic filtering.

  • Concepts: JWT Authentication, Spring Security, JPA Specifications, Dynamic Filtering, Entity Relationships (One-To-Many mapping), Owner-Based Auth, Rate Limiting (Bucket4j).

A robust financial management API with Swagger documentation and multi-user support.

  • Concepts: RESTful API Design, SpringDoc (Swagger UI), PostgreSQL, Advanced Filtering (JPA Specifications).

A high-performance CLI tool to fetch and display trending GitHub repositories.

  • Concepts: CLI Design, REST API Consumption, JSON Parsing, Go Standard Library, GitHub Search API Integration.

A CLI tool to interact with The Movie Database API for fetching trending and searching movies.

  • Concepts: External API Integration, API Key Management, CLI Design, Error Handling.

🛠 Tech Stack

  • Go (Golang): My primary language for CLI tools and high-performance services, emphasizing standard library usage and clean architecture.
  • Java (Spring Boot): My chosen framework for building robust, enterprise-grade APIs and web applications.
  • Web Frontend: Basic HTML, JavaScript, and CSS for building functional and responsive user interfaces.
  • Testing: Unit, Integration, and Mock-based testing (JUnit 5, Mockito, MockMvc, REST-Assured, Testcontainers) to ensure high-quality, maintainable code.
  • Containerization: Docker & Docker Compose for consistent, portable deployments.

🏆 Architectural Standards

Across all projects in this repository, code is written adhering to strict backend engineering principles:

  • Decoupled Business Logic: Clear segregation between transport layers (HTTP handlers / CLI flag parsers), domain services, and persistence models.
  • Graceful Error Handling: Standardized error flows returning predictable payloads (Spring ErrorResponse DTOs) or idiomatic error values bubbling up the stack (Go).
  • Environment Accessibility: Strict compliance with terminal conventions like the NO_COLOR standard across CLI tools.

🎯 Current Goals

  • Master backend development foundations.
  • Build small, efficient CLI applications using Go.
  • Develop scalable REST APIs using Spring Boot.
  • Create dynamic web interfaces using HTML & JavaScript.
  • Transition into a professional backend development role.

🧪 Testing & Quality

I prioritize high-quality, maintainable code. Each project features a comprehensive test suite using industry-standard tools:

  • Go Projects: Table-Driven tests, Mock-based integration tests, and Isolated File System Testing utilizing t.TempDir() to test repository file I/O operations without corrupting local disk data.
  • Spring Boot Projects: Unit tests for Service logic, MockMvc integration tests for the Web/API layer, and Testcontainers for full integration testing against real containerized PostgreSQL instances to ensure exact database dialect parity (eliminating the need for fragile in-memory databases like H2).
  • Goal: To ensure code reliability, easy refactoring, and a seamless user experience.

📖 How to Explore

Each project is standalone. You can find detailed setup, build, and execution instructions in the README.md file within each project directory.


💭 Feedback

I'm always looking for ways to improve my code! If you're a senior dev or a fellow learner, I'd love to hear your thoughts. Contact me at massemiso@proton.me.


Follow my progress as I work through the Backend Roadmap.

About

Multiple projects proposed in roadmap.sh

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages