Maciej Serafin

Hi, I'm Maciej Serafin

I’m a computer science student. This website contains selected projects and a summary of my technical background.

Scroll down

I am a computer science student currently learning different areas of software development. Most of the projects presented here were created as part of my studies or as learning exercises. Alongside university work, I work for a company specializing in cash processing, where I also take on supervisory responsibilities related to daily operations and team coordination.

I started programming in middle school and have been gradually learning different technologies and programming concepts over time. I work mainly with Java when learning and building projects, but I also have experience with PHP from simple web applications, basic experience with C++, general familiarity with C#, and practical knowledge of HTML and CSS, with a basic understanding of JavaScript.

The projects shown on this site are small and medium-sized applications created to better understand how software systems are structured. They include simple backend services, basic REST APIs, and database-backed applications using PostgreSQL or MariaDB. I also work on small personal projects, such as a custom narrative game engine, developed as an exercise to understand program structure and logic flow.

I try to write clear and readable code and improve my understanding step by step. I am still learning and looking for opportunities to gain practical experience and continue developing my technical skills in a professional environment.

Background

Technikum - TEB Edukacja, Gdynia

Graduated as an IT specialist with a focus on Microsoft cloud technologies.

2019 - 2024

Cash Sorting Facility

Started working in 2021, promoted to ATM Cash Sorting Supervisor in 2024.

2021 - Present

PJATK, Gdańsk

Currently studying Computer Science at the Polish-Japanese Academy of Information Technology.

2024 - Present

Skills

Here are the skills I've acquired throughout my career and education:

Programming Languages

  • Java
  • C++ (basic)
  • C# (general knowledge)
  • Assembly (basic understanding)

Web & Backend Technologies

  • HTML
  • CSS
  • PHP
  • JavaScript (basic)

Backend & Software Concepts

  • Object-Oriented Programming (OOP)
  • Modular application design
  • Application architecture fundamentals
  • Learning-by-building approach

Databases

  • PostgreSQL
  • MariaDB
  • SQL fundamentals

Operating Systems & Scripting

  • Linux environment (daily use)
  • Bash scripting (basic)

DevOps & Hosting

  • VPS server management
  • Nginx configuration (basic)
  • Application deployment
  • Self-hosted project environments

Game Servers & Modding

  • Java-based Minecraft server hosting
  • Modpack configuration and optimization
  • Open-source mod modification
  • Server performance tuning

Build & Tools

  • Git
  • Docker
  • Maven
  • Gradle (basic)

Certificates

Formal certification confirming completed IT education.

Projects

Selected projects demonstrating my practical experience and learning approach.

Java Projects

Java projects focused on backend logic, desktop applications, and structured application design outside of game development.

Currency Monitor

Java / Backend System

Backend-oriented application designed to automatically fetch, process, and store foreign exchange rates from the official National Bank of Poland (NBP) API. The system is built as a modular, multi-module Java application with clear separation of responsibilities between core business logic, external API integration, persistence layer, and application runtime. Exchange rates are periodically updated, validated against duplicates, stored as historical data, and exposed via a REST API for further consumption.

  • Java
  • Spring Boot
  • Multi-module Maven
  • REST API
  • PostgreSQL
  • JPA / Hibernate
  • Docker
  • Scheduler
  • Caching (Caffeine)
  • Clean Architecture

Library Spring

Java / Spring Boot REST API

A library management backend built with Spring Boot, designed around REST endpoints for books, users, libraries, and borrow operations. The project uses a layered structure with controllers, services, repositories, DTOs, exception handling, and database persistence, together with filtering and borrow/return flows for core library operations.

  • Java 21
  • Spring Boot
  • REST API
  • Spring Data JPA
  • PostgreSQL
  • OpenAPI

TaskManager

Java / Swing Desktop App

A simple desktop task manager built in Java Swing to practice creating GUI applications, handling user input, and organizing application logic around a dedicated task model and manager class. The app allows adding tasks with a name, description, and priority, displaying them in a list, and removing selected items from the interface.

  • Java 17
  • Java Swing
  • Maven
  • Desktop GUI
  • Builder Pattern
  • In-Memory Task List

Java Games

Game-focused Java projects exploring gameplay systems, rendering, interaction, and custom game architecture.

Sisyphus the Mushroom

Java / 2D Desktop Game

A larger top-down 2D game project built in Java with a custom game loop, tile-based world, NPC interaction, collectible items, and both ranged and melee combat modes. The project also includes audio, map resources, collision handling, bullets, and a separate map editor, making it a broader exercise in gameplay systems and game architecture.

  • Java
  • Java Swing
  • 2D Tile Engine
  • Game Loop
  • Combat System
  • Map Editor

TextNovelEngine

Java / Narrative Engine Runtime

Java-based narrative engine for running text visual novels as external story modules. The runtime is built around a hierarchical content structure (Story -> Day -> Section -> Scene -> Block) and supports Narrative, Dialogue, Monologue, Choice, and Action blocks. Stories are discovered from a dedicated directory, compiled at runtime, loaded dynamically, and started from a selected scene. The engine includes branching options, scene jumps, structured navigation targets, a custom Swing reader window with typewriter-style rendering, toolbar-based controls, and a state-driven flow covering menu, gameplay, settings, and creator screens.

  • Java
  • Swing UI
  • Gradle
  • Engine Architecture
  • State Management
  • Hierarchical Story Model
  • External Story Loading
  • Runtime Compilation
  • Branching Logic
  • Custom Runtime Design

Flappy Bird

Java / Swing Desktop Game

A desktop implementation of Flappy Bird built in Java Swing with a custom game loop, keyboard controls, collision detection, scoring system, and restart flow. The project also includes background music and sound effects, making it a practical exercise in combining gameplay logic, rendering, and audio handling in a simple 2D Java game.

  • Java 22
  • Java Swing
  • Game Loop
  • Collision Detection
  • Keyboard Input
  • Audio Effects

PHP Projects

Projects built in PHP to practice web application flow, form handling, authentication, and lightweight data persistence.

PHP ToDoList

PHP / Web App

Backend-focused web application for task management built in pure PHP without frameworks. The project was created to understand full request-response flow, session handling, access control, and data persistence. Application logic is separated into dedicated classes, with manual routing, role-based access (admin defined by configuration), and CSV-based storage with automatic backup mechanism.

  • PHP
  • HTML
  • CSS
  • Session Auth
  • CSV Storage

PHP Library

PHP / Web App

Backend-oriented web application for managing a simple book library, built in pure PHP. The project focuses on understanding basic application architecture, object-oriented programming, form handling, and data persistence. Domain logic is separated into classes and utility functions, with CSV used as a lightweight storage layer.

  • PHP
  • HTML
  • CSS
  • CSV Storage
  • Object-Oriented Programming (Book model)
  • Form handling (add / delete)

Contact

If you would like to get in touch, please send an email to macieserafin@gmail.com.