The Short Version
I'm Matthias Enge, a lawyer-turned-developer working at the intersection
of law, tax, and software. I practiced law for nearly a decade (corporate law, funds,
insolvency, litigation) before realizing most of the repetitive work I was doing could
be automated. So I learned to code.
Now I build custom software for legal and tax workflows. The work involves large volumes of
data: investor information, contracts, regulatory filings. My job is to build tools that
make these workflows more scalable, combining traditional automation (data pipelines,
document generation) with AI engineering (using AI where it actually makes sense, not just
for the buzzword).
This blog is where I document what I'm learning and building.
The Longer Version: How I Got Here
2004-2012
Law School & Training
I studied law at the University of Bayreuth, Germany (2004-2009) with a focus on
commercial law. After passing my first state exam, I completed my legal clerkship
(Referendariat) in Potsdam with stations at Hengeler Mueller and lindenpartners.
I then spent a year at the University of Sydney for an LL.M., which was less about
the degree and more about enjoying life.
2013-2019
lindenpartners (Berlin)
I joined lindenpartners, Berlin, as an associate, focusing on corporate law, M&A,
insolvency, and litigation. I worked on:
- Class action litigation (coordinating hundreds of similar cases)
- Corporate and real estate transactions
- Fund governance (preparing and running shareholder meetings)
- Insolvency litigation (creditor representation, avoidance actions)
- Tax liability proceedings
The class action work taught me the value of organized, structured data. I managed
hundreds of similar cases in Excel, building increasingly complex spreadsheets to
track deadlines, documents, and client information.
Around 2018, I started learning Python to build a stronger foundation. Online courses,
side projects, lots of Stack Overflow. What started as curiosity became clear: most
legal workflows could be systematized with better data handling.
2019-2021
SMP (now YPOG): Fund Structuring
I joined SMP's fund structuring practice in Berlin, working on PE and VC fund
structuring and VC financing rounds. I became Associated Partner in 2020.
2021-2023
Reset and Transition to Code
By 2021, I realized practicing law wasn't my passion anymore. So I decided to take
a break, returned my law license, traveled, and regained my focus.
I also used the time to intensify my effort on learning to code. I built projects,
read documentation, made every beginner mistake, and learned that coding isn't
magic. It's just another skill. You practice, you get better.
2023-2026
YPOG: Legal Data Scientist
I rejoined YPOG in May 2023 as a "Legal Data Scientist" and stayed for three
years, until July 2026. The role sat between engineering, legal, and IT, building
tools for fund administration and tax compliance, where high-volume, specialized
work demands both technical skills and an understanding of the regulatory context.
The work fell into a few broad areas:
-
AI systems for extracting, structuring, and evaluating terms from
legal documents (contracts in particular).
-
Tax compliance tooling: integrating external accounting data, transforming
it, and exporting back to standard formats.
-
Internal AI assistants for firm-wide knowledge retrieval and day-to-day
support across legal and tax.
-
Prototype chatbots for practice-area-specific research and mandate support.
Under the hood that was backend and AI engineering: PostgreSQL plus vector
databases (PGVector, ChromaDB, LanceDB), REST APIs, RAG pipelines, and
data-extraction pipelines for unstructured legal documents, plus some TypeScript
and Vue.js on the frontend. I ran the projects end to end, from requirements
and architecture through implementation to the occasional client demo.
Since 2026
AI Engineer and Blogger ;-)
Why This Blog
Off-the-shelf legal tech works for generic problems. But when you're dealing with
specialized workflows like fund administration, multi-jurisdictional compliance, or
document processes with complex business rules, you need custom tools built by someone who
understands both the legal domain and the firm's specific needs.
There's a lot of FOMO in legal tech right now. Firms think their problems will be
solved if they just license the latest AI-powered tool. But most workflow problems
aren't about missing features. They're rooted in how the firm organizes its data,
structures its processes, and serves its specific client base.
Buying generic software for firm-specific problems is like trying to wear someone else's
tailored suit: it might look similar, but it won't fit right.
The good news? Most of these problems don't require fancy AI. They can be solved with
basic data engineering: cleaning messy Excel files, normalizing client data,
building simple pipelines that turn structured inputs into consistent outputs. And when
AI does make sense (like extracting terms from long-form contracts), it's about
integration, not replacement.
This blog is where I share what I've learned about solving these problems: the technical
patterns that work, the tradeoffs you'll face, and the mistakes I've made along the way.
What I Use
On the backend and AI side, my go-to tools are Python, PostgreSQL, and vector databases
(PGVector, ChromaDB, LanceDB) for RAG and semantic search, and DSPy for structuring and
optimizing LLM workflows. For quick prototypes I reach for TypeScript and Vue.js, with
SQLite when I need a lightweight database. The backend is where I'm happiest, but I'm
always trying new tools and frameworks, staying curious about what actually solves problems
better.
For day-to-day development I lean heavily on AI coding tools: Claude Code, OpenCode, Pi,
and GitHub Copilot. They've changed how I work, and a lot of what I write about here comes
from putting them through their paces.
I prefer simple, maintainable solutions over complex frameworks. My goal is to "get off the ground" as fast
as possible, so I often start
with a minimal but working prototype that allows for quick iteration cycles.
Get in Touch