Martin Probst
Software engineer based in Munich. Since 2024, Principal Engineer at Personio, responsible for overall architecture and engineering, with a focus on AI and automation.
Formerly at Google (2011–2024), working on web front ends, security, compilers and developer tooling, including leading Google's migration to TypeScript. Formerly at EMC and X-Hive, working on an XML database and XQuery.
Writing
2026
2025
2020
2018
- Opportunistic fixing vs. long-term planning
- Why a different language can't replace JavaScript
- Software techniques are tradeoffs, not beliefs
2015
- Why vendoring every dependency doesn't scale
- clang-format is available via npm
- clang-format for JavaScript
2014
2012
2011
- Lion's Address Book and Calendar
- Subsetting a language is a red herring
- Blog on Google App Engine
- Google += Martin
2010
2009
- Generating Eclipse build files with XQuery
- Mac Mini Media Center (M³C)
- Server move
- Hardware on Ubuntu, once again
- Mobile phone contracts
2008
- Shell meta programming
- SSD is the new disk, disk is the new tape
- Java & Ruby complexity
- Databases and Caching
- EMC += Martin Probst
- Time Machine works
- .NET VM sizes and Java
- Online Dictionary Bookmarklet
- GNOME Online Desktop
- Taleo E-Recruitement
- How to look for applicants
- Memory accounting in Linux
- Higher order functions in XQuery
- XQuery Scripting Extensions and Use Cases
- BlogImpl implements Blog
- Spring criticism
- Java 3
- Google Groups being spammed
- Implementing a blog
- XQuery pretty printer and grammar open source
- More XQuery pretty printing
- JSPs suck, episode 217
- Wiring up Jersey JAX-RS & Hibernate
- XQuery Pretty Printer, ctd.
- Threads vs. Processes in Java & Co.
- Memory usage, Java vs. Rails
- XQuery Pretty Printer
- Installing/importing a root certificate in Java
- API usability
- Shell script to restore .svn directories in Mac OS X Bundles
- Silent errors from JSTL
- SOAP with Axis, 4D and something called multiRefs
- Tomcat startup timeouts in Eclipse
- Why is String.format() static?
- MacHeist software bundle
- "Optimized for writes"
2007
- Spring MVC / web framework. not so l33t
- Java closure syntax with a dash of Smalltalk
- J2EE not ready for the enterprise
- Puny Java Webstart Log Analyzer
- Use Spotlight instead of find/locate
- Content sanitation, html5lib and Iñtërnâtiônàlizætiøn
- MacBook Pro defects summary
- RubyGems upgrade 0.9.5
- InputManagers in Leopard
- MySQL backup/restore task for Capistrano
- New blog engine
- Migrating to Google Apps (copying IMAP mails)
- RFC (2)822 dates in IMAP and Courier
- Wide Finder in Scala
- Type inference for Java
- The holy grail CSS
- Packages, Classes, Methods - Scopes?
- DocBook to Word (with free bibliography converter!)
- Markups raison d'être
- Tim Bray on links
- Extensible modules in XSLT and XQuery
- Embedding XSLT transformations in JARs, or how I learned to (not) love the resolver
- Vista - beta for the masses
- Reflection based Java extensions for X-Hive/DB
2006
- Where is the glue in loose coupling with REST?
- That boot thing again
- Misunderstanding Eclipse messages
- PHP Soap "code generator"
- Mighty right clicks
- Safari auto-completion magic?
- Programming language features
- Time for new HTML Validator?
- The oppsite of a Virtual Files System - the Dumb FS
- Should developers write their own tests?
- Telekom rant
- More proof that XML Schema is A Bad Thing (tm)
- The ability to say no
- Eclipse PDE builds
- Translation of domain-specific terms - don't do it
- Learned ruby today
- Mail and server woes
- XQuery as a web scripting language
- Create a document browser with XQuery in 50 SLOC
- AMM Browser
- First MacOS X impressions
- MacBook shipping time
- Functional programming
- File identity in version control
- Tail Recursion in XQuery
- Europeans, Austrians, Germans, whatever ...
- Usability of Command Line Interfaces
- Performancing
- Eclipse VE & PermGen
- MacBook Pro
- SWT is like HTML 3.2
2005
- Compiled XQuery
- Registration process from hell
- XQuery too complex?
- Gentoo to Ubuntu
- Maven 2
- Java 6 Preview
- Atom XML Schema
- Collaborative Editing with Gobby
- Media-less Linux installation
- Java Unit Test Coverage
- BOM of death
- Writing strategy
- XML Editor for Eclipse
- Discussion of Apple's RSS extensions
- Evolution & Spam filtering
- Off to XIME-P
- Beagle
- External functions in XQuery
- Microsoft good at competing
- Visited Countries
- Firefox Extensions
- Continuations explained
- Subversion and Eclipse again
- Applied XML in RSS, SOA(P) and REST
- DITA - Darwin Information Typing Architecture
- Moving to Rotterdam
- Finally a PDF reader for GNOME-Linux?
- Namespaces
- XSLT and XQuery application domains
- XML file types
- Trackback Spam & Spam Karma
- Java Performance and Garbage Collection
- Taking the XML out of XML?
- Streaming XPath with SAX
- XML encoding problems
- Why do XML APIs suck?
- Forced to prostitution?
- BlogBridge
- The Mac Mini sucks
- Trackback spam
- Squashed Philosophers
- Prevayler
- Joel on the HPI
2004
- Project management under GNOME
- C++ builds the easy way with scons
- More XML sizes
- Techwriter Wiki
- XML Size Statistics
- DHTML Lemmings
- Namespace prefixes in XML
- The Backside of GUIs
- Choosing the right technology
- Dependency Injection
- Recovering overview of classes with lots of methods
- IBMs Common Public License
- Bug hunting with AOP and Eclipse
- Open Source License Madness
- DocSynch, Collaborative Editing and XML Databases
- dbXML, XML:DB, XMLDB and friends
- The dark side of Gentoo
- More thoughts about eXist style XML storage
- Storing XML
- C# from a Java developers perspective
- Visual Tail -f in C#
- Hello World