ionTrails Modernization

Technical Insights & Articles

Engineering insights from modernizing established software, building reliable systems, and developing tools for scientific computing.

EngineeringRustWebAssemblyWASMperformancebinary sizecorrplot-ng

November 1, 2026 • Viliam Simko

One Rust Core, Multiple Platforms: What WebAssembly Makes Possible

How one Rust codebase can power native software and the browser, what WebAssembly costs, and what real-world size measurements can teach us.

Read Article →
Performance EngineeringRustRWebAssemblyWASMWasmtimeV8benchmarkscorrplot-ng

November 1, 2026 • Viliam Simko

WASM It Worth It? Calling Rust from R

V8, Wasmtime, and native Rust take three different routes from R to the same Rust core. We benchmark the trade-offs in speed and runtime footprint.

Read Article →
Scientific Software

October 30, 2026 • Viliam Simko

Beyond corrplot: Rethinking Correlation Visualization for the Next Decade

How can corrplot keep serving its R users while opening the door to new ways of exploring correlation matrices?

Read Article →
Scientific Softwarecorrplotopen sourcedata visualizationR

October 30, 2026 • Viliam Simko

What corrplot-ng Needs to Solve

The practical challenges of making corrplot usable from R, Python, web projects, and a standalone command-line tool.

Read Article →
Performance Engineering

October 30, 2026 • Viliam Simko

Can Rust Make corrplot Faster? A Cross-Language Benchmark

An experimental comparison of Python, pure R, C++/Rcpp, and Rust/rextendr for building the same corrplot-ng scene and encoding it as JSON.

Read Article →
AI & MCP

October 1, 2026 • Viliam Simko

How to Build an MCP Server in JavaScript: A Practical Step-by-Step Guide

A practical, beginner-friendly guide to building an MCP server in JavaScript and Node.js with the MCP TypeScript SDK v2, Zod, stdio, MCP Inspector, and modern MCP architecture.

Read Article →
AI & LLM Integration

October 1, 2026 • Viliam Simko

From GitLab Duo to Junie: Building an OpenAI-Compatible LLM Adapter

Building an OpenAI-compatible adapter for GitLab Duo's GraphQL API to enable JetBrains Junie CLI in enterprise-restricted environments.

Read Article →
Apache Spark & Scala

December 18, 2022 • Viliam Simko

Working with Nested JSON Data in Apache Spark

A practical guide to working with nested data in Apache Spark, using to_json and from_json, JDBC, and Spark-native transformations.

Read Article →
Apache Spark & Scala

December 10, 2022 • Viliam Simko

How to Make Joins in Spark Dataset API More Type-Safe

How to make outer joins in Apache Spark's Dataset API more type-safe using Scala extension methods and Option-aware join results.

Read Article →
TypeScript & Zod

December 10, 2022 • Viliam Simko

Best Way to Enforce Type-Safety at Runtime in TypeScript

A practical guide to enforcing TypeScript type safety at runtime using type guards, the parse-don't-validate approach, and Zod.

Read Article →
Apache Spark & Scala

June 1, 2022 • Viliam Simko

Using Enumerations with Apache Spark

A practical comparison of Scala Enumeration, sealed traits, Enumeratum and Java enums when working with Apache Spark Dataset API.

Read Article →
API Architecture

October 15, 2020 • Viliam Simko

GraphQL quick-and-dirty

A personal retrospective on GraphQL's flexibility, REST's simplicity, and the API design trade-offs I first explored in 2020—and reconsider today.

Read Article →