'. '

Curriculum vitae

From APIDesign

(Difference between revisions)
Jump to: navigation, search
Current revision (11:43, 28 June 2023) (edit) (undo)
(Languages)
 
(65 intermediate revisions not shown.)
Line 5: Line 5:
Phone: +420 602 684 426
Phone: +420 602 684 426
-
email: jtulach (at) [[NetBeans|netbeans]] (domain) org
+
email: jaroslav.tulach (at) [[APIDesign|apidesign]] (domain) org
 +
 
 +
work: jaroslav.tulach (at) enso (domain) org
=== Historical Summary ===
=== Historical Summary ===
Line 13: Line 15:
! Mission
! Mission
|-
|-
-
| 1992-1998
+
| 2022-
-
| Master degree in computer science at [[Charles University|MFF UK]]. Specialization: compilers and data structures.
+
| [[Enso]]. Responsible for its [[JIT]] compiler written on top of [[GraalVM]] and making it the world's fastest & most toolable functional programming language.
|-
|-
-
| 1995-1997
+
| 2015-2022
-
| Initial member of student team which started [[Xelfi]] which later turned into [[NetBeans]]
+
| [[Oracle]]Labs. On a quest ([[TwoYearsWithTruffle|for two years]] and [[OtherGraalAdventures|counting]]) to make the world's fastest [[VM]] via [[Graal]] and [[Truffle]].
|-
|-
-
| 1997-1999
+
| 2010-2014
-
| Founder and initial architect of [[NetBeans]]
+
| [[NetBeans]] Platform architect at [[Oracle]]. Alignment with [[JDeveloper]]. [[Html4Java|Synergy]] between [[Java]] and [[JavaScript]] - use [[Html4Java|HTML]] for user interface of [[NetBeans]].
|-
|-
| 1999-2010
| 1999-2010
| [[NetBeans]] Platform architect at [[Sun]] Microsystems. Primary focus [[API]]s, [[APIReview]]s, later [[Performance]].
| [[NetBeans]] Platform architect at [[Sun]] Microsystems. Primary focus [[API]]s, [[APIReview]]s, later [[Performance]].
|-
|-
-
| 2010-2014
+
| 1997-1999
-
| [[NetBeans]] Platform architect at [[Oracle]]. Alignment with [[JDeveloper]]. [[netbeans:Html4Java|Synergy]] between [[Java]] and [[JavaScript]] like getting [[NetBeans]] to a [[Bck2Brwsr|browser]]
+
| 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 [[Charles University|MFF UK]]. Specialization: compilers and data structures.
|-
|-
|}
|}
Line 33: Line 41:
[[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:
[[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:
 +
* [[NetBeans]] IDE - first IDE for [[Java]] written in [[Java]]
* [[NetBeans]] IDE - first IDE for [[Java]] written in [[Java]]
* [[NetBeans Platform]] - first [[Swing]] based modular application framework
* [[NetBeans Platform]] - first [[Swing]] based modular application framework
-
* [[NetBeans]] performance - speeding [[NetBeans]] 6.1 [[startup]] by 60%
+
* [[NetBeans]] performance - speeding [[NetBeans]] 6.1 [[startup]] by 60%, eliminating memory leaks, improving scalability
* [[Netbinox]] - changing [[NetBeans]] architecture to support [[OSGi]] by creating the fastest [[OSGi]] framework on the planet
* [[Netbinox]] - changing [[NetBeans]] architecture to support [[OSGi]] by creating the fastest [[OSGi]] framework on the planet
* [[JDeveloper]] - rebasing years of development on top of [[NetBeans Platform]] to gain [[startup]] speed and share functionality
* [[JDeveloper]] - rebasing years of development on top of [[NetBeans Platform]] to gain [[startup]] speed and share functionality
 +
* [[TwoYearsWithTruffle]] - bringing initial product (with a [[Java]] [[API]]) aspects to a research project
 +
* [[OtherGraalAdventures]] - bringing [[GraalVM]] closer to production - in cloud via PGO, JNI, NetBeans
 +
 +
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 [[I]] haven't found executive sponsor to build up the necessary momentum.
=== Theoretical Work ===
=== Theoretical Work ===
-
[[Media:Typing_in_terms_of_graphs.pdf]] - master thesis at [[MatFyz]].
+
[[Media:Typing_in_terms_of_graphs.pdf|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.
-
[[RangeDependenciesAnalysed|Proofs of NP-Completeness]] of various topics related to modularity.
+
[[RangeDependenciesAnalysed|Proofs of NP-Completeness]] of various topics related to [[modularity]] with practical implications for anyone designing or using a module system.
-
=== Publications ===
+
=== Publications & Conferences ===
-
[ Rich Client Programming: Plugging into the NetBean Platform] - contributed few ''philosophical'' chapters to book about [[NetBeans Platform]].
+
[http://www.amazon.com/Rich-Client-Programming-Plugging-NetBeans/dp/0132354802 Rich Client Programming: Plugging into the NetBean Platform] - contributed few ''philosophical'' chapters to book about [[NetBeans Platform]].
[[TheAPIBook|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.
[[TheAPIBook|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.
Line 53: Line 66:
[[Paradoxes|20 API Paradoxes]], Walrus 2012 - shorter, more strictly organized continuation/summary of [[TheAPIBook|Practical API Design]] book.
[[Paradoxes|20 API Paradoxes]], Walrus 2012 - shorter, more strictly organized continuation/summary of [[TheAPIBook|Practical API Design]] book.
 +
Regular speaker at [[JavaOne]] and other conferences ([[GeeCON]], [[GeekOut]], [[Language|JDD]], [[CurryOn]]) and universities.
=== Technical Skills ===
=== Technical Skills ===
-
* Able to use [[debugger]] to analyze anything
+
* Able to use [[debugger]] to analyze behavior of own or any foreign system
-
* Typing without looking at keyboard
+
* Typing (without looking at keyboard) and 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 how to implement any language and make it run fast
 +
* Knowing a lot of about [[API Design]] and almost everything about [[API Design]] in [[Java]]
 +
* Understanding general implications of [[modularity]] and how to [[MultiGitRepository|organize a project]] in a distributed fashion.
 +
 
 +
=== Organizational Skills ===
 +
 
 +
* Designing process for [[APIReviews|API Reviews]] which allowed [[NetBeans]] to design [[API]]s in a ''committee style'' and still keep consistency.
 +
* Designing, advocating and implementing [[HgParallelProjectIntegration|parallel integration]] which greatly improved productivity of [[NetBeans]] developer teams
 +
* Enabling, promoting and advocating [https://openide.netbeans.org/tutorial/test-patterns.html test driven development] to increase quality of [[NetBeans]] code base
 +
* Founded [[OracleLabs]] subsidiary in Prague
 +
** Attracted skilled developers by talks at universities, [[GeeCONPrague|conferences]] and meet-ups
 +
** Helped to select and on board newcomers.
 +
** Convinced whole experienced team to join [[OracleLabs]] and contribute to [[GraalVM]] vision
 +
** Handed the responsibilities to professional manager when the team grew over fifteen.
=== Languages ===
=== Languages ===
* Czech - native
* Czech - native
-
* English - OK
+
* English - fluent
* Russian - can read
* Russian - can read
 +
* Polish - getting better
 +
* German - survival level
-
=== Key Achievements ===
+
=== Spare Time Activities ===
-
 
+
-
=== Work Experience ===
+
-
 
+
-
 
+
-
=== Spare Time Activities ====
+
-
Skiing and showboarding
+
Skiing and showboarding and other sports. [[Bck2Brwsr]] [[VM]]. Various [[open source]] projects (mostly hosted on [https://github.com/jtulach/ GitHub], but also for example [[DXR3|contributed]] to [[Linux]] kernel driver).

Current revision

Jaroslav Tulach

Town: Praha, Czech Republic

Phone: +420 602 684 426

email: jaroslav.tulach (at) apidesign (domain) org

work: jaroslav.tulach (at) enso (domain) org

Contents

Historical Summary

Time Mission
2022- Enso. Responsible for its JIT compiler written on top of GraalVM and making it the world's fastest & most toolable functional programming language.
2015-2022 OracleLabs. On a quest (for two years and counting) 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.

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 I haven't found executive sponsor to build up the necessary momentum.

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.

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, CurryOn) and universities.

Technical Skills

  • Able to use debugger to analyze behavior of own or any foreign system
  • Typing (without looking at keyboard) and 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 how to implement any language and make it run fast
  • Knowing a lot of about API Design and almost everything about API Design in Java
  • Understanding general implications of modularity and how to organize a project in a distributed fashion.

Organizational Skills

  • Designing process for API Reviews which allowed NetBeans to design APIs in a committee style and still keep consistency.
  • Designing, advocating and implementing parallel integration which greatly improved productivity of NetBeans developer teams
  • Enabling, promoting and advocating test driven development to increase quality of NetBeans code base
  • Founded OracleLabs subsidiary in Prague
    • Attracted skilled developers by talks at universities, conferences and meet-ups
    • Helped to select and on board newcomers.
    • Convinced whole experienced team to join OracleLabs and contribute to GraalVM vision
    • Handed the responsibilities to professional manager when the team grew over fifteen.

Languages

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

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
buy