
20 Years Building Enterprise Systems.
Serial Entrepreneur. 100+ enterprise deployments.
Published author on tech entrepreneurship.
AI Software engineer.
CURRENT VENTURES
AIVory, Inc. (2024) •
ilscipio GmbH (2009)
NOTABLE PROJECTS
AIVory •
Scipio ERP • buchhandel.de • L'Oréal, Amadeus, Konica Minolta • 1&1 Internet, Aktion Mensch • Telering, Orange, Ikea • JetBrains integrations (Rookout, Sourcegraph)
RECENT POSTS
TAGS: HASKELL, BLUESPEC, COMPILERS, JETBRAINS-PLUGINS, HARDWARE
Bluespec System Verilog reads like Haskell because it is, structurally, Haskell wearing a hardware costume. That is not a coincidence and it is not a gimmick someone bolted on to look clever. It is a real design choice with a real consequence, and I ran into that consequence directly while building Bluespec support into Flexible Haskell.
Rules instead of always-blocks Write Verilog and you describe hardware behavior with always-blocks: procedural code triggered on a clock edge, and the burden of proving nothing collides sits entirely on you.
→ Keep readingTAGS: JETBRAINS, PLUGIN, PCB, KICAD, HARDWARE, RELEASE

We build ESP32-based devices and boards that go to manufacturers like JLCPCB and PCBWay. The firmware side lives happily in Flexible for Arduino. The board side, though… switching between KiCad, schematic viewers, BOM generators, part search databases and the IDE eats a lot of time.
So we brought the PCB workflow into the IDE: Flexible for Schematics.
→ Keep readingTAGS: OPENSCAD, 3D-PRINTING, JAVASCRIPT, GEOMETRY, JETBRAINS-PLUGIN
A CSG model is a recipe, not a shape. You do not draw the union of a cube and a cylinder, you write down “union of this cube and this cylinder” and something else has to work out what solid that actually describes. That something is a boolean-operator tree sitting over a small set of primitives - cubes, cylinders, spheres - and the entire discipline of constructive solid geometry is really just different answers to one question: how do you evaluate that tree into an actual mesh you can look at.
→ Keep readingTAGS: JETBRAINS, PLUGIN, SIMULATION, MODELICA, JULIA, RELEASE

If you’ve followed the Flexible Julia posts, this one is a close neighbor: Flexible Sim.
Building and checking a simulation model is hard without proper IDE support. Much of the work still happens outside the IDE, in a separate tool - especially when your codebase mixes Dyad, Julia, Modelica and Python.
→ Keep readingTAGS: SAP, ABAP, REST-API, ENTERPRISE, REVERSE-ENGINEERING
The first time I pointed a browser at /sap/bc/adt on a client system, it came back 404, and the 404 looked exactly like the URL did not exist. It was not the URL. It was a service node nobody had switched on.
That single discovery is most of what this post is about, because it explains something bigger than one troubleshooting step: every SAP system running the ABAP Development Tools integration is quietly running a REST API, and there is no proper manual for it.
→ Keep readingTAGS: JETBRAINS, PLUGIN, DELPHI, PASCAL, RELEASE

Okay, so this one is a bit of a nostalgia trip.
Many of us learned to program with Delphi. Its form designer made it so easy: build a window, double-click a button, write the code behind it. And a lot of Delphi and Free Pascal code still runs today - in companies, in schools, and in old projects on our own disks. It deserves a good editor.
The problem is working with it outside the Delphi IDE: binary forms, ANSI source files, conditional compilation, Free Pascal dialects… So: Flexible Delphi.
→ Keep readingTAGS: JULIA, LANGUAGE-SERVER, DEVELOPER-TOOLS, OPEN-SOURCE
Most language servers read your file and make an educated guess about what the compiler would say. JETLS.jl skips the guessing and asks the compiler directly.
That distinction sounds small until you have watched a language server get something wrong that the real compiler would never get wrong, because the language server never ran your code through inference in the first place. It parsed the syntax tree, matched some patterns, and did its best.
→ Keep readingTAGS: JETBRAINS, PLUGIN, COBOL, MAINFRAME, RELEASE

So this is an exciting one: Flexible COBOL.
COBOL never went away. It just got quiet. A lot of it still runs, and developing or modernizing it without proper IDE support is hard - especially across mixed IBM Enterprise COBOL and GnuCOBOL codebases with deep copybook trees.
→ Keep readingTAGS: JAVA, JVM, JULIA, COMPILERS, PERFORMANCE
I spent fifteen years tuning JVMs for banks, retailers and insurers, and it took building a Julia plugin to notice how much of that tuning HotSpot does for you before you ever touch a flag.
The problem HotSpot solves is the one every JIT has: interpreted code starts instantly and runs slow, compiled native code starts slow and runs fast. You cannot have both from the first line. HotSpot’s answer, tiered compilation, has been the default since Java 7, and it works by never picking just one option.
→ Keep readingTAGS: DEBUGGING, JULIA, PROTOCOLS, IDE-TOOLING, PLUGIN-DEVELOPMENT
The debugger locked up the first time I inspected a DataFrame mid-session, and it took me a while to believe that the box-drawing characters in a pretty-printed table were the reason. │ ─ ⋯ …, the kind of Unicode a DataFrame uses to draw its own borders, sent over the wire as part of a debug response. The connection did not crash. It just quietly went out of sync and stopped answering, which is worse, because nothing tells you why.
→ Keep reading