Dostępny do zleceń

Portfolio — szymon_wish

Cześć, tworzę autorskie pluginy pod silniki Paper i Velocity oraz stabilne boty w Discord.js. Piszę czytelny kod w Javie i TypeScripcie, dbając o dobrą optymalizację i stabilność serwera.

Realizacje
Wybrane realizacje

Portfolio

To demonstracyjna wersja portfolio; projekty są obecnie dodawane ręcznie.
Zakres: Pluginy, Boty, Optymalizacja
Aktualizacja realizacji

Projekty w przygotowaniu

Aktualnie dokumentuję i przygotowuję opisy kolejnych autorskich pluginów Paper/Velocity oraz botów Discord. Jeśli chcesz omówić mechaniki lub potrzebujesz dedykowanego rozwiązania — napisz do mnie na Discordzie.

Środowisko i narzędzia

Technologie

Transparentny podział na technologie używane w bieżących projektach oraz narzędzia, które obecnie poznaję i testuję.

Używam (Główne technologie)

Technologie, których używam w bieżących projektach — pluginy Paper/Velocity i boty oparte na Discord.js v14.

Java 21
PaperMC
TypeScript
Node.js
Discord.js
Poznaję / Wdrażam

Technologie, które aktualnie poznaję i wykorzystuję w projektach edukacyjnych oraz bardziej złożonych realizacjach.

Velocity
Redis
Docker
PostgreSQL
WebSockets
Uproszczony fragment demonstracyjny architektury (warstwa SQL oraz routing komend Discord.js)
1package dev.szymonwish.core.repository;
2
3import com.zaxxer.hikari.HikariDataSource;
4import dev.szymonwish.core.model.PlayerProfile;
5import org.slf4j.Logger;
6import org.slf4j.LoggerFactory;
7
8import java.sql.*;
9import java.util.Optional;
10import java.util.UUID;
11import java.util.concurrent.CompletableFuture;
12import java.util.concurrent.ConcurrentHashMap;
13
14public final class PlayerDataRepository {
15 private static final Logger log = LoggerFactory.getLogger(PlayerDataRepository.class);
16 private final HikariDataSource dataSource;
17 private final ConcurrentHashMap<UUID, PlayerProfile> cache = new ConcurrentHashMap<>();
18
19 public PlayerDataRepository(HikariDataSource dataSource) {
20 this.dataSource = dataSource;
21 }
22
23 /** Asynchroniczne pobieranie profilu z L1 Cache i fallbackiem do bazy */
24 public CompletableFuture<Optional<PlayerProfile>> findProfileAsync(UUID uuid) {
25 PlayerProfile cached = cache.get(uuid);
26 if (cached != null) {
27 return CompletableFuture.completedFuture(Optional.of(cached));
28 }
29 return CompletableFuture.supplyAsync(() -> loadFromDatabase(uuid));
30 }
31
32 private Optional<PlayerProfile> loadFromDatabase(UUID uuid) {
33 final String query = "SELECT username, coins, rank, last_seen FROM player_profiles WHERE uuid = ? LIMIT 1";
34 try (Connection conn = dataSource.getConnection();
35 PreparedStatement stmt = conn.prepareStatement(query)) {
36 stmt.setString(1, uuid.toString());
37 try (ResultSet rs = stmt.executeQuery()) {
38 if (rs.next()) {
39 PlayerProfile profile = new PlayerProfile(
40 uuid,
41 rs.getString("username"),
42 rs.getLong("coins"),
43 rs.getString("rank"),
44 rs.getTimestamp("last_seen").toInstant()
45 );
46 cache.put(uuid, profile);
47 return Optional.of(profile);
48 }
49 }
50 } catch (SQLException ex) {
51 log.error("Nieudane zapytanie SQL dla UUID {}: {}", uuid, ex.getMessage(), ex);
52 }
53 return Optional.empty();
54 }
55}
HikariCP Pool · L1 Cache · Asynchroniczny PreparedStatement
Rate Limiting · Shard Lifecycle · Structured Command Dispatch
Doświadczenie

O mnie

Od kilku lat rozwijam własne projekty związane z serwerami Minecraft i botami Discord. Kładę nacisk na czytelny kod w Javie i TypeScripcie, dobrą optymalizację oraz architekturę dopasowaną do konkretnego projektu.

Doświadczenie
Kilka lat
Główny Stack
Java · Node
Profil
Backend & Boty
Współpraca
Otwarty
Referencje i współpraca

Opinie klientów

Pierwsze opinie wkrótce
Referencje od właścicieli serwerów zostaną opublikowane po wdrożeniu aktualnych projektów.
W przygotowaniu
Gwarancje i standardy

Jak wygląda współpraca?

Pracę rozpoczynam od ustalenia wymagań, następnie przygotowuję rozwiązanie, testuję je i przekazuję gotowe pliki wraz z ustalonym wsparciem.

1. Ustalenie wymagań & Wycena

Dokładne omówienie założeń pluginu lub bota, specyfikacja komend, konfiguracji i uprawnień oraz ustalenie wyceny i czasu realizacji.

2. Testy i poprawki

Wdrożenie wersji testowej na serwerze deweloperskim, weryfikacja działania mechanik i optymalizacji oraz nanoszenie poprawek przed odbiorem.

3. Przekazanie plików & Źródła

Pomoc w konfiguracji baz danych, instalacji na maszynie dedykowanej oraz ustalone wsparcie po oddaniu projektu.

Współpraca

Skontaktuj się

Realizuję zlecenia na serwery Minecraft, dedykowane pluginy oraz zaawansowane boty Discord.