Test-related interests
- Software development processes
- Diverse programming languages
- Open-Source software
- Quality Assurance - Infrastructure
- Static Code Checkers
CV overview
-2004: Dipl. Inf, TU Kaiserlautern
-2006: JEE Consultant for IBM UK
-2014: PhD in robotics, TUM, Prof. Beetz
-today: JEE Consultant Munich
PhD Topic: Robotics
... big step for me, small step for mankind.
https://github.com/tkruse/build-bench
buckv2015.12.28.01maven3.3.9gradle2.10sbt0.13.9bazel0.1.4rc2pants0.0.70buildr1.4.23ant_ivy1.9.6ID0.0100.0value0.0112.6
Other contributions
- C++ Core Guidelines (81 commits)(github.com/isocpp/CppCoreGuidelines)
- Cpplint (maintainer) (github.com/tkruse/cpplint)
- Vcstools (260 commits) (github.com/vcstools/vcstools)
- Groovy (172 commits) (github.com/groovy/groovy-core)
Summary
Diverse experiences
Motivated by software quality
Interest in improving tool support
Curious about ESO team
The end
Thanks for listening
Why this project?
- Google open-sourced Bazel
- "After switching from x to Y, our builds got 50% faster"
- What features exist? What are the downsides?
- How to convert?
- Maturity of alternatives?
- Get objective facts. Repeatable. Open.
History of Java buildsystems
Name
Year (Open)
Model
Caching
Apache Ant
2000
Rules
None
Apache Maven
2002
POM
Snapshot repo
Gradle
2007
POM
last build
Leiningen
2009
POM
last build
Apache Buildr
2010
POM
last build
Sbt
2010
POM
last build
Buck
2012
Rules
true cache
Pants
2014
Rules
None
Bazel
2015
Rules
true cache
Why does performance matter?
- Short iteration cycles
- Higher tool acceptance
- Better code quality
... but only one of many evaluation facets.
Framework setup
- Gnu Makefiles organizing steps
- Buildsystems downloaded from source
- Python jinja2 templates (source + buildfiles)
minimal dependencies, self-installing, local installs (~1 GB)
Bonus: Other Interests
- Open-Source projects (ROS, Groovy)
- Aikido
- Psychology
- Guitar
Self-Presentation
What I did and what I want to do
Created by Dr. Thibault Kruse