////
     Licensed to the Apache Software Foundation (ASF) under one
     or more contributor license agreements.  See the NOTICE file
     distributed with this work for additional information
     regarding copyright ownership.  The ASF licenses this file
     to you under the Apache License, Version 2.0 (the
     "License"); you may not use this file except in compliance
     with the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing,
     software distributed under the License is distributed on an
     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     KIND, either express or implied.  See the License for the
     specific language governing permissions and limitations
     under the License.
////
= Who's Who
:jbake-type: page
:jbake-tags: community
:jbake-status: published
:icons: font
:keywords: Apache NetBeans Team Who is Who
:description: Apache NetBeans Who is Who

Apache NetBeans Project Management Committee and Committers are listed alphabetically below.

[width="70%"]
|=== 
a|=== Anton Epple| 
a|image::contributor-monacotoni.png[] a| * link:https://dukescript.com[Dukehoff GmbH]
* Munich, Germany
* link:https://github.com/dukescript[GitHub]
* link:https://github.com/apache/netbeans/commits?author=dukescript[Apache NetBeans commits]
* Twitter: link:https://twitter.com/monacotoni[@monacotoni]
|=== 

[width="70%"]
|=== 
a|=== Antonio Vieiro| 
a|image::contributor-vieiro.png[] a| * apache id: vieiro
* Spain
* Platform, editor, C, Java, Java EE  
|=== 

[width="70%"]
|=== 
a|=== Aristides Villarreal| 
a|image::contributor-avbravo.png[] a| * apache id: avbravo
* Panama
* Java EE, NetBeans Platform, NoSQL   
|=== 

[width="70%"]
|=== 
a|=== Arunava Sinha| 
a|image::contributor-asinha.png[] a| * apache id: asinha
* Oracle
* Bangalore, India
|=== 

[width="70%"]
|=== 
a|=== Ate Douma| 
a|image::contributor-ate.png[] a| * apache id: ate
* Netherlands
|=== 

[width="70%"]
|=== 
a|=== Attila Kelemen| 
a|image::contributor-kelemen.png[] a| * apache id: kelemen
* Hungary
|=== 

[width="70%"]
|=== 
a|=== Bertrand Delacretaz| 
a|image::contributor-bertrand.png[] a| * apache id: bdelacretaz
* Switzerland
* http://grep.codeconsult.ch   
|=== 

[width="70%"]
|=== 
a|=== Bruno Flávio| 
a|image::contributor-brunoflavio.png[] a| * apache id: brunoflavio
* Porto, Portugal
* Groovy / Grails support 
|===  

[width="70%"]
|=== 
a|=== Bruno Souza| 
a|image::contributor-brjavaman.png[] a| * apache id: brjavaman
* Brazil
|===   

[width="70%"]
|=== 
a|=== Christian Lenz| 
a|image::contributor-chrizzly.png[] a| * Spreadshirt
* Leipzig, Germany
* Twitter: link:https://twitter.com/Chrizzly42[@Chrizzly42]
|===  

[width="70%"]
|=== 
a|=== Constantin Drabo| 
a|image::contributor-pandaconstantin.png[] a| * apache id: pandaconstantin
* Université de Ouagadougou
* Ouagadougou, Burkina Faso
|===

[width="70%"]
|=== 
a|=== Daniel Gruno| 
a|image::contributor-humbedooh.png[] a| * apache id: humbedooh
* Denmark
|===

[width="70%"]
|=== 
a|=== David Heffelfinger| 
a|image::contributor-dheffelfinger.png[] a| * apache id: dheffelfinger
* Ensode Technology, LLC
* Fairfax, VA, USA
|===

[width="70%"]
|=== 
a|=== Dusan Balek| 
a|image::contributor-dbalek.png[] a| * apache id: dbalek
* Oracle
* Prague, Czech Republic
|===

[width="70%"]
|=== 
a|=== Eirik Bakke| 
a|image::contributor-eirikbakke.png[] a| * apache id: eirikbakke
* USA
|===

[width="70%"]
|=== 
a|=== Emmanuel Hugonnet| 
a|image::contributor-ehsavoie.png[] a| * apache id: ehsavoie
* Red Hat
* Barraux, France 
* WildFly
|===    
  
[width="70%"]
|=== 
a|=== Eric Barboni| 
a|image::contributor-skygo.png[] a| * apache id: skygo
* ICS - IRIT, Université Paul Sabatier
* Toulouse, France
* NetBeans Platform, Java Editor, Maven
|===   
  
[width="70%"]
|=== 
a|=== Florian Vogler| 
a|image::contributor-florian.png[] a| * apache id: fvogler
* Airbus Defence and Space
* Bodensee, Germany
* NetBeans Platform, Groovy, Maven
|===  

[width="70%"]
|=== 
a|=== Geertjan Wielenga| 
a|image::contributor-geertjan.png[] a| * Oracle
* Amsterdam, The Netherlands
* link:https://github.com/geertjanw[GitHub]
* link:https://github.com/apache/netbeans/commits?author=geertjanw[Apache NetBeans commits]
* Twitter: link:https://twitter.com/geertjanw[@geertjanw]
|===

[width="70%"]
|=== 
a|=== Glenn Holmer| 
a|image::contributor-cenbe.png[] a| * apache id: Cenbe
* USA
|===

[width="70%"]
|=== 
a|=== Ioannis Kostaras| 
a|image::contributor-ikost.png[] a| * apache id: ikost
* Liége, Belgium
|===

[width="70%"]
|=== 
a|=== Ivar Grimstad| 
a|image::contributor-ivargrimstad.png[] a| * apache id: ivargrimstad
* Sweden
|===

[width="70%"]
|=== 
a|=== James Gosling	| 
a|image::contributor-jag.png[] a| * apache id: jag
* USA
|===

[width="70%"]
|=== 
a|=== Jan Lahoda| 
a|image::contributor-jlahoda.png[] a| * apache id: jlahoda
* Oracle
* Prague, Czech Republic
* Java Editor, Java
|===

[width="70%"]
|=== 
a|=== Jan Pirek| 
a|image::contributor-jpirek.png[] a| * apache id: jpirek
* Oracle
* Prague, Czech Republic
|===

[width="70%"]
|=== 
a|=== Jaroslav Tulach| 
a|image::contributor-jtulach.png[] a| * apache id: jtulach
* Oracle
* Prague, Czech Republic
|===

[width="70%"]
|=== 
a|=== Jean-Marc Borer	| 
a|image::contributor-jmborer.png[] a| * apache id: jmborer
* Switzerland
|===

[width="70%"]
|=== 
a|=== Jesse Glick| 
a|image::contributor-jglick.png[] a| * apache id: jglick
* CloudBees
* North Carolina, USA 
* API Support
|===

[width="70%"]
|=== 
a|=== Jiri Kovalsky| 
a|image::contributor-jkovalsky.png[] a| * apache id: jkovalsky
* Oracle
* Bohumin, Czech Republic
* Java, Plugins, NetCAT
|===

[width="70%"]
|=== 
a|=== Joerg Michelberger	| 
a|image::contributor-jmichelberger.png[] a| * apache id: jmichelberger
* Germany  
|===

[width="70%"]
|=== 
a|=== Johan Vos| 
a|image::contributor-johanvos.png[] a| * apache id: jvos
* Gluon
* Belgium
|===

[width="70%"]
|=== 
a|=== John McDonnell| 
a|image::contributor-johnmcdonnell.png[] a| * apache id: johnmcdonnell
* BearingPoint Ireland
* Dublin, Ireland 
* Maven, Java EE, Docker  
|===

[width="70%"]
|=== 
a|=== José Pereda| 
a|image::contributor-jperedadnr.png[] a| * apache id: jperedadnr
* Spain
|===

[width="70%"]
|=== 
a|=== Josh Juneau| 
a|image::contributor-javajuneau.png[] a| * apache id: javajuneau
* USA
|===

[width="70%"]
|=== 
a|=== Junichi Yamamoto| 
a|image::contributor-junichi11.png[] a| * apache id: junichi11
* Fukuoka, Japan
* PHP
|===

[width="70%"]
|=== 
a|=== Ken Fogel| 
a|image::contributor-kfogel.png[] a| * apache id: kfogel
* Dawson College
* Montreal, Quebec, Canada
|===

[width="70%"]
|=== 
a|=== Kirk Pepperdine	| 
a|image::contributor-kirk-pepperdine.png[] a| * apache id: kirk-pepperdine
* Microsoft
* Hungary
|===

[width="70%"]
|=== 
a|=== Lars Bruun-Hansen| 
a|image::contributor-lbruun.png[] a| * apache id: lbruun
* Sweden
|===

[width="70%"]
|=== 
a|=== Laszlo Kishalmi| 
a|image::contributor-lkishalmi.png[] a| * apache id: lkishalmi
* EPAM Systems Inc.
* Portland, Oregon, USA
* Gradle, Snap
|===

[width="70%"]
|=== 
a|=== Leonardo Zanivan| 
a|image::contributor-panga.png[] a| * apache id: panga
* Aurea Software
* Criciúma, Brazil 
* Montreal, Quebec, Canada
|===

[width="70%"]
|=== 
a|=== Mark Stephens| 
a|image::contributor-markee174.png[] a| * apache id: markee174
* IDRsolutions
* Tonbridge, Kent, UK
|===

[width="70%"]
|=== 
a|=== Mark Struberg| 
a|image::contributor-struberg.png[] a| * apache id: struberg
* Vienna, Austria
|===

[width="70%"]
|=== 
a|=== Martin Entlicher| 
a|image::contributor-entl.png[] a| * apache id: entl
* Oracle
* Prague, Czech Republic
|===	

[width="70%"]
|=== 
a|=== Martin Klähn| 
a|image::contributor-mklaehn.png[] a| * apache id: mklaehn
* Airbus Defence and Space
* Bodensee, Germany
|===

[width="70%"]
|=== 
a|=== Matthias Bläsing| 
a|image::contributor-matthiasblaesing.png[] a| * apache id: matthiasblaesing
* Germany
|===

[width="70%"]
|=== 
a|=== Michael Müller| 
a|image::contributor-muellermi.png[] a| * apache id: muellermi
* Germany
|===

[width="70%"]
|=== 
a|=== Michael Nascimento| 
a|image::contributor-misterm.png[] a| * apache id: misterm
* Brazil
|===

[width="70%"]
|=== 
a|=== Michel Graciano| 
a|image::contributor-mgraciano.png[] a| * apache id: mgraciano
* Brazil
|===

[width="70%"]
|=== 
a|=== Neil C Smith| 
a|image::contributor-neilcsmith.png[] a| * apache id: neilcsmith
* Praxis LIVE
* Oxford, UK 
|===

[width="70%"]
|=== 
a|=== Ralph Benjamin Ruijs| 
a|image::contributor-ralphbenjamin.png[] a| * apache id: ralphbenjamin
* Netherlands 
|===

[width="70%"]
|=== 
a|=== Reema Taneja| 
a|image::contributor-rtaneja1.png[] a| * apache id: rtaneja1
* Oracle
* Bangalore, India 
|===
 
[width="70%"]
|=== 
a|=== Sarvesh Kesharwani| 
a|image::contributor-sarvesh.png[] a| * apache id: sarvesh
* Bangalore, India 
|=== 

[width="70%"]
|=== 
a|=== Shai Almog| 
a|image::contributor-codenameone.png[] a| * apache id: codenameone
* Israel
|=== 

[width="70%"]
|=== 
a|=== Simon Phipps| 
a|image::contributor-webmink.png[] a| * apache id: webmink
* England
|=== 
  
[width="70%"]
|=== 
a|=== Svata Dedic | 
a|image::contributor-sdedic.png[] a| * apache id: sdedic
* Prague 
* Czech Republic
|=== 
 
[width="70%"]
|=== 
a|=== Sven Reimers | 
a|image::contributor-sreimers.png[] a| * apache id: sreimers
* Airbus Defence and Space
* Bodensee, Germany
|===

[width="70%"]
|=== 
a|=== Thilina Ranathunga | 
a|image::contributor-thilina01.png[] a| * apache id: thilina01
* Nano Creations
* Ekala, Sri Lanka
* http://thilina01.com/
* https://www.linkedin.com/in/thilina-ranathunga-35bb2864/
* https://github.com/thilina01 
|===

[width="70%"]
|=== 
a|=== Timon Veenstra | 
a|image::contributor-timon.png[] a| * apache id: timon
* Corizon 
* Ekala, Sri Lanka
* Groningen, the Netherlands
|===

[width="70%"]
|=== 
a|=== Tomas Zezula | 
a|image::contributor-tzezula.png[] a| * apache id: tzezula
* Prague 
* Czech Republic
|===

[width="70%"]
|=== 
a|=== Tushar Joshi | 
a|image::contributor-tusharjoshi.png[] a| * apache id: tusharjoshi
* Persistent Systems 
* Nagpur, Maharashtra, India 
|===

[width="70%"]
|=== 
a|=== Vikas Prabhakar| 
a|image::contributor-vikasprabhakar.png[] a| * apache id: vikasprabhakar
* Bangalore, India 
|=== 

[width="70%"]
|=== 
a|=== Vladimir Voskresensky | 
a|image::contributor-vladimirvv.png[] a| * apache id: vladimirvv
* Azul 
* St. Petersburg, Russia
* C/C++, code model (ANTLR and Clang-based)
|===

[width="70%"]
|=== 
a|=== Wade Chandler | 
a|image::contributor-wadechandler.png[] a| * apache id: wadechandler
* Knoxville 
* TN, USA
* C/C++, code model (ANTLR and Clang-based)
|===

[width="70%"]
|=== 
a|=== Zoran Sevarac | 
a|image::contributor-sevarac.png[] a| * apache id: sevarac
* University of Belgrade 
* Faculty of Organizational Sciences, Belgrade, Serbia
* artificial intelligence, machine learning
|===

