MUNKANAPLÓ / WORKLOG

Not a case study. An engineering worklog.

Finished systems hide most of the engineering work behind them. This log keeps the problems, wrong turns, fixes, trade-offs and verification steps that do not fit on a portfolio card.

103 entries14 categories3/6 page

103 of 103 entries are currently available in English. The remaining entries stay in Hungarian while translations are reviewed in batches.

18 entries ezen az pageon · 103 total

The Last Spike Online2 min

A localized rulebook is correct only if it proves the same rule

Multilingual rulebooks were not treated as simple translations. Their meaning was audited and had to remain consistent with the behaviour implemented in the digital game.

The Last Spike Online
localizationrulebookQAdocumentation
Open entry →
The Last Spike Online2 min

The PDF would not render because the worker 'was there' — it was just being served incorrectly

The rulebook PDF-worker failure was misleading because the file existed. The browser needed a JavaScript worker with the correct MIME type, while an older broken copy could still return from cache.

The Last Spike Online
PDFWebWorkerMIMEcache
Open entry →
The Last Spike Online game interface
The Last Spike Online2 min

The first playtest showed that a correct rule can still produce poor UX

The first real player feedback found several places where the system followed the rules correctly, yet the player still could not tell why something happened or what to do next.

The Last Spike Online
playtestUXgame-enginefeedback
Open entry →
The Last Spike Online2 min

The terrain map and property artwork became functional visuals, not decoration

Adding artwork was not simply about making the game prettier. The map and cards needed to carry visually some of the information that had previously existed only as text.

The Last Spike Online
game-artUXrenderingdata-model
Open entry →
The Last Spike Online2 min

DigitalOcean deployment: the game server never entered a manual-SCP era

Production launch started with an automated DigitalOcean deployment pipeline. From the first real release, the goal was to use one repeatable and provable path to production.

The Last Spike Online
DigitalOceanGitHub ActionsdeploymentDocker
Open entry →
The Last Spike Online2 min

The first TLS certificate is not the same task as the hundredth renewal

Production TLS needed two distinct states: bootstrap certificate issuance and normal renewal. On the first run there is no certificate yet, so the assumptions of the steady-state system do not apply.

The Last Spike Online
TLSbootstrapCertbotoperations
Open entry →
The Last Spike Online2 min

The multiplayer smoke test was green — until we tested it like a browser

The WebSocket smoke test was missing the production Origin header, so it exercised a connection under different conditions from the real browser client. The test had to move closer to actual production traffic.

The Last Spike Online
WebSocketOriginsmoke-testproduction
Open entry →
Live screenshot of The Last Spike Online game interface
The Last Spike Online2 min

Digitizing a board game is not a UI task: the rule engine had to come first

The first publishable version of The Last Spike quickly showed that the visual board was only the surface. The real product was a deterministic rules engine with a multilingual client built on top of it.

The Last Spike Online
Reactgame-engineTypeScriptlocalization
Open entry →
The Last Spike Online2 min

The game barely existed, but it already had reproducible development and release workflows

Deployment was not postponed until the end of The Last Spike project. Development and release Docker workflows were introduced early so every later feature would travel through the same path to production.

The Last Spike Online
DockerCI/CDreleaseDX
Open entry →
The Last Spike Online2 min

A local Docker port is not local just because we call it that

Development container port publishing had to be tightened because a convenient default can expose a service on every network interface even when it was intended to be reachable only from the developer machine.

The Last Spike Online
Dockernetworkingsecuritylocalhost
Open entry →
The Last Spike Online2 min

In an online board game, the browser cannot be the referee

The key multiplayer decision was to make the server authoritative over game state. Clients send intent; they do not send finished truth.

The Last Spike Online
WebSocketmultiplayerstate-machinearchitecture
Open entry →
The Last Spike Online2 min

We localized multiplayer text and made rule sources mandatory at the same time

Multilingual multiplayer needed more than translation keys. Rule and behaviour changes also required source documentation so the digital game could not quietly invent its own rulebook.

The Last Spike Online
localizationdocumentationgame-rulesmultiplayer
Open entry →
Columbia Games · WordPress2 min

A backup plugin is a production dependency

Updating BackWPup was not a maintenance detail. If the backup chain is unhealthy, the risk of the next upgrade increases immediately.

Columbia Games · WordPress
backupWordPressrecoveryplugins
Open entry →
Columbia Games · WordPress2 min

WPCache: a faster site came with a new layer of state

Caching improved delivery performance, but it immediately introduced a new question: what must be invalidated, and when, so the site does not serve stale content faster.

Columbia Games · WordPress
WordPresscacheperformanceinvalidation
Open entry →
Live screenshot of the Columbia Games WordPress site
Columbia Games · WordPress2 min

WordPress 7: the core update was only the surface

The major core upgrade had to be handled together with theme and plugin compatibility. The goal was not to make the admin show a new version number, but to prove that the same site still worked afterwards.

Columbia Games · WordPress
WordPressupgradepluginstheme
Open entry →
Columbia Games · WordPress2 min

An old theme on a new core: compatibility is more than whether the layout breaks

Theme compatibility could not stop at a visual homepage check. Template hooks, widgets, admin options and legacy PHP patterns carried just as much upgrade risk.

Columbia Games · WordPress
WordPressthemePHPcompatibility
Open entry →
Columbia Games · WordPress2 min

Updating ten plugins at once is fast; finding the broken one afterwards is not

Plugin updates were grouped so that cause and effect remained traceable when something failed. The goal was a diagnosable release, not the shortest possible batch update.

Columbia Games · WordPress
WordPresspluginsreleasedebugging
Open entry →
Columbia Games · WordPress2 min

A 200 OK on the homepage proves almost nothing about WordPress admin after an upgrade

Post-upgrade smoke checks were split across business and admin paths. A healthy homepage can still coexist with broken uploads, cron, login or plugin configuration.

Columbia Games · WordPress
smoke-testWordPressreleaseQA
Open entry →