Dynamically packing Textures in LibGDX with PixmapPackerIn Unciv, we’re very big on modding. Many of our players use mods that change the images we use to render on the screen, and since each mod…Jan 24Jan 24
SQS -> Flink -> HTTP throughputIn Forter, we’re in the process of migrating a VM-based processing service, which reads from SQS, to Flink + K8S. This process is written…Jan 22Jan 22
Profiling LibGDX scene2d renderingThis is a continuation of the LibGDX performance guide, providing a deep dive into one of the many aspects — texture swaps affecting…Jan 14Jan 14
Serializing LLM context for reuseI’ve been playing around with Github Copilot Chat to get it to convert some of our custom-wrapped Jenkins crons into Argo Workflow files.Jan 121Jan 121
Pyroscope is the future NormalPyroscope is an open-source tool from the Grafana house, for Continuous Profiling — which is exactly what it sounds like.Jan 7Jan 7
Profiling Java Set operationsUsing bitwise operations for set intersection, we managed to decrease the latency of a core Kotlin service by nearly half, across all…Dec 31, 2024Dec 31, 2024
Kotlin when(string) optimizationKotlin’s when(string) semantics default to if/else bytecode when non-constants are involved, lowering performance. This can be optimized.Nov 20, 20242Nov 20, 20242
“Env variables” for static sitesLoad window fields from a static file to get dynamic ‘variables’ in static sites :)Jul 25, 2024Jul 25, 2024
Reducing K/V costs by “key packing”Recently at Forter, we evaluated a data migration to Aerospike, a popular K/V datastore with per-key memory requirements. Despite having…Jul 9, 2024Jul 9, 2024