Hi, I'm Vesa, a solution architect from Finland.

30+ years in software, long-time solution architect. Recent focus on compilers, AI/LLM applications, and performance.

Java · Python · TypeScript · React/Next.js · AWS · LLMs

Available for short engagements; architecture audits, LLM integration, performance work.

Writing

Projects

Cobol to Java modernizer

Converts legacy Cobol programs into modern Java. A grammar-driven parser and multi-stage AST pipeline produce runtime-correct Java. LLM stages then modernize the output into records, streams and clean naming, with an optional profile-guided performance pass on hot methods. An integration test suite checks each stage against the Cobol reference.

Why: Explore compiler construction, grammar-driven parsing, and bridging legacy business logic to a modern runtime.
Java

arch-audit

An architecture auditing tool that speeds up getting oriented in an unknown codebase. It combines Semgrep static analysis, OSV dependency scanning, Tokei code metrics, and tree-sitter structure extraction into an interactive terminal-based findings browser. An optional LLM stage adds risk explanations and remediation guidance per finding.

Why: Explore DevSecOps tooling and LLM-assisted code review.
Python

Neural networks and automatic differentation in Java

Neural networks with automatic differentiation and backpropagation in Java from scratch.

Why: Learn about machine learning, gradient descent, neural networks.
Java

Omastoppi.fi

Web/mobile application for quickly viewing departure times for nearby public transport stops. Data fetched realtime from the HSL GraphQL API.

Why: Learn React/Next.js, and create an application which can be used quickly when on the go on the HSL region.
React/Next.js

Econstats.eu

Application which charts the major macroeconomic indicators for the EU and US areas. Data is fetched every day from the Eurostat and FRED APIs.

Why: Learn more about AWS services. Create an economy "dashboard" for myself.
Python AWS

WFC generator

In game development WFC (Wave Function Collapse) is used for generating output based on a set of tiles and rules. This output can then be used for different purposes, like level or texture generation. Here I'm creating textures. This is a simple Java implementation of Wave Function Collapse algorithm where the rules are defined in code.

Why: Complex result from simple rules.
Github: https://github.com/vesas/simple-wfc
Java

Spacefly

2D game with procedural level generation and dynamic area of sight calculation.

Java

Sweepmines

Minesweeper clone with Godot game engine

Godot

Javarays

Raytracer in Java.

Why: Explore performance ideas.
Java

Snakeray

Multiprocessed raytracer in Python.

Why: Explore performance ideas, practise python.

Python

House price prediction using machine learning

Python

Sunrise & sunset for Android phones

Local sunset and sunrise times.

Release: Google Play
Java

Live wallpaper for Android phones

Animated wallpaper for Android with minimal battery usage.

Release: Google Play
Java

Colortact game for Android phones

Game of connecting same colored items

Release: Google Play
Java