Welcome to my backend engineering portfolio! This repository tracks my progress as I work through the roadmap.sh/backend project-based learning path.
- About Me
- Projects
- Tech Stack
- Architectural Standards
- Current Goals
- Testing & Quality
- How to Explore
- Feedback
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.
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.RawMessagePolymorphism, Dependency Injection.
A financial management CLI with budget controls and CSV exporting.
- Concepts: Layered Architecture, Interface-Driven Design, Command Dispatch Maps, Environment Standards (
NO_COLORcompliance), 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/httpRouting, 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).
7. Weather API
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.
12. TMDB CLI Tool
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.
- 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.
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
ErrorResponseDTOs) or idiomatic error values bubbling up the stack (Go). - Environment Accessibility: Strict compliance with terminal conventions like the
NO_COLORstandard across CLI tools.
- 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.
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,
MockMvcintegration 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.
Each project is standalone. You can find detailed setup, build, and execution instructions in the README.md file within each project directory.
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.