'. '


From APIDesign

Jump to: navigation, search


[edit] Jaroslav Tulach

My name is Jaroslav Tulach and I am the founder and initial architect of NetBeans, which is not just a well known IDE, but also the first modular desktop application framework written in Java. My name sounds Slavic and has a strange pronunciation (read the initial J as Y and last ch as in Scottish loch or in German Bach), because I am Czech. However, as NetBeans has been the flagship software product of Sun and Oracle for a while now, you don't have to worry that content of the TheAPIBook might not be widely applicable and understandable.

Maintaining NetBeans Platform, its architecture and APIs has always been the primary focus of Jaroslav. During more than fifteen years of participating in the NetBeans.org project, Jaroslav has seen, made and helped to recover from many design mistakes. Such experience obligated Jaroslav to sit down and summarize it.

Practical API Design book is available to every framework design wishing to not walk the dead-end streets and reinvent the wheel. An online addendum of API Design advices is maintained at apidesign.org.

Jaroslav likes to speak at various conferences (JavaOne, GeeCON, JUG meetings, OSGiCon, NetBeans days) and universities (Linz, Charles University) trying to popularize API design by talking about its paradoxes as well as NetBeans Platform and its advanced usage of various API design patterns.

[edit] Facts

Jaroslav Tulach

Town: Praha, Czech Republic

Phone: +420 602 684 426

email: jtulach (at) netbeans (domain) org

work: jaroslav.tulach (at) oracle (domain) com

[edit] Historical Summary

Time Mission
2015-? OracleLabs. On a quest to make the world's fastest VM via Graal and Truffle.
2010-2014 NetBeans Platform architect at Oracle. Alignment with JDeveloper. Synergy between Java and JavaScript - use HTML for user interface of NetBeans.
1999-2010 NetBeans Platform architect at Sun Microsystems. Primary focus APIs, APIReviews, later Performance.
1997-1999 Founder and initial architect of NetBeans
1995-1997 Initial member of student team which started Xelfi which later turned into NetBeans
1992-1998 Master degree in computer science at MFF UK. Specialization: compilers and data structures.

[edit] Personal Profile

NetBeans founder and initial architect who remained (after being acquired by Sun) with the project for next fifteen years. Passionate about leading teams into projects nobody thinks can succeed, overcoming all obstacles and bringing them into production:

Based on success of previous projects I decided to bring Java back to browser via my Bck2Brwsr (e.g. Java virtual machine in JavaScript) project. Things seem to work quite well, but the project has not entered production stage yet.

[edit] Theoretical Work

Typing in terms of graphs - master thesis at MatFyz describing type system similar to what later became Generics in Java with a unique, graph based terms.

Proofs of NP-Completeness of various topics related to modularity with practical implications for anyone designing or using a module system.

[edit] Publications & Conferences

Rich Client Programming: Plugging into the NetBean Platform - contributed few philosophical chapters to book about NetBeans Platform.

Practical API Design, Apress 2008 - the first book about API Design describing all details related to API design published way sooner than the term API was kidnapped by REST and JSON guys.

20 API Paradoxes, Walrus 2012 - shorter, more strictly organized continuation/summary of Practical API Design book.

Regular speaker at JavaOne and other conferences (GeeCON, GeekOut, JDD) and universities.

[edit] Technical Skills

  • Able to use debugger to analyze behavior of own or any foreign system
  • Typing fast without looking at keyboard
  • Thinking fast, yet concluding slowly/carefully
  • Knowledge of classical languages (especially Java, but also C & etc.), functional languages (like Haskell) and logical languages (e.g. Prolog).
  • Knowing a lot of about API Design and almost everything about API Design in Java
  • Understanding general implications of modularity, especially in Java.

[edit] Organizational Skills

[edit] Languages

  • Czech - native
  • English - fluent
  • Russian - can read
  • German - survival level

[edit] Spare Time Activities

Skiing and showboarding and other sports. Bck2Brwsr VM. Various open source projects (mostly hosted on GitHub, but also for example contributed to Linux kernel driver).

Personal tools