Functional Java
done right.
Direct, code-level work with your engineers. No slide decks, no audits-for-the-sake-of-audits — just landing the functional patterns your codebase actually needs.
Five places where consulting moves the needle
Pick one focused area or combine them. The deliverable is always code in your repository — never a 40-page document nobody reads.
FP adoption workshop
Hands-on training for your team on functional patterns in Core Java:
Result<T>, CheckedFunction,
Stream-as-data, currying, memoization. One or two days, your codebase as the running example.
Legacy migration sprint
Replace try/catch ladders with
Result<T> chains, lift throwing methods through
CheckedFunction, drop nullable returns. Working code in your repo,
merged behind tests.
Async pipeline design
CompletableFuture and
CompletableFutureQueue pipelines with explicit ThreadPool sizing.
I/O vs CPU separation, failure-as-value through Result, no
StampedLock incantations required.
Secure coding
Functional patterns make security boundaries explicit. Input validation as
Result, capability-style APIs, fail-closed defaults,
threat-model walkthrough of your auth flow and trust boundaries.
Code review & pair-programming
Async PR reviews on FP-heavy changes, or pair-programming sessions to unblock specific
refactorings — memoization, Stream/Result bridging, function composition,
type-inference traps with compose.
Architecture review
Pre-launch or pre-refactor look at your service: where exceptions leak, where stateful code hides, where memoization or async would buy headroom. Written report plus walkthrough call.
From first email to follow-up — four steps
Initial call (free, ~30 min)
Quick scope alignment. What's the codebase, what's the FP posture today, what are the open questions. We decide together whether consulting is the right shape — or whether a self-service tour of the docs is enough.
Written proposal
Concrete deliverables, time estimate, fixed budget or hourly rate. You decide: one-shot review, defined sprint, or on-demand support.
Engagement
Pair-programming sessions, async PR reviews or workshop days — whichever fits your team. Output is your code in your repo plus a short written summary at the end.
Follow-up
One free 30-min check-in 4–6 weeks after delivery. Make sure the patterns stuck and answer any follow-up questions that came up during real use.
Pick the shape that fits
Code review
Fixed-scope review of an existing module or planned design. Written report plus walkthrough call.
Migration sprint
1–2 weeks of focused refactoring work. Result/CheckedFunction lifting, async pipeline rewiring, memoization rollout — together with your team.
On-demand support
Retainer for ad-hoc questions, PR reviews, and refactor support. Slack, email, or PR comments.
Workshop
On-site or remote workshop on functional Java for your engineering team. Hands-on, code-driven, your codebase as material.
Direct line to the author
I built functional-reactive. I know its sharp edges and the design choices behind them, because I made them.
Long track record across enterprise systems — from small services to large platforms with strict audit and reliability requirements.
Independent, EU-based. No platform upsell, no SaaS lock-in story. Sometimes the right answer is "use what you already have" — and I'll say so.
Drop a short email
No long form. Send three things and I'll come back with a concrete next step.
- 1. A one-paragraph description of your application.
- 2. The current stack — JDK version, Spring / Quarkus / vanilla, async story today.
- 3. What you'd like to achieve in the next 4–8 weeks.
I usually reply within two business days.