<!-- id is the same as the file name without the extension
     type is one of "committer" or "add-in-provider" -->
<boardmember id="megert" type="committer">

	<name>Dani Megert</name>

	<title>Senior Software Architect</title>

	<!-- Name of the file containing the image of the candidate; location relative to this file.  -->
	<image>megert.jpg</image>

	<!-- eMail address will be modified before it is included on a webpage so that robots will not harvest it. -->
	<email>daniel_megert at ch.ibm.com</email>

	<!-- What do you do with eclipse? -->
	<eclipse_affiliation>
<![CDATA[I am involved in several councils, lead projects, and am an active committer in many projects. See details <a target="_blank" href="https://projects.eclipse.org/user/481">here</a>.]]>
</eclipse_affiliation>

	<!-- Feel free to include html tags and what-not between the CDATA tags. -->
	<vision>
		<![CDATA[
<p>My main goal as committer representative is to address the issues that adversely impact the productivity of fellow committers. Among those things are improved tool support and fighting for less overhead. I am also passionate about maintaining the high quality that people expect from Eclipse projects.</p>

<p>For any Eclipse project it is crucial to find good contributors that at some point become valuable committers. From my personal experience gaining commit rights in different projects can shy away contributors because every project has subtle differences. For example there are many How To Contribute wiki pages which slightly differ. I'd like to see a common template that can be extended by individual projects.</p>

<p>As your committer representative I will always have an open door for you, and I will help to resolve any barrier that is blocking your work, either personally or by taking it to the Eclipse Board of Directors.</p>
		]]>
	</vision>

	<!-- Tell us a little bit about yourself. -->
	<bio><![CDATA[
<p>I am part of the Eclipse ecosystem since day one, even before it was open sourced in 2001 and hence am one of the 
initial Eclipse Project committers. I am still an active committer in various projects until today. For that, 
the Eclipse Foundation recognized my contributions to Eclipse with the Eclipse Lifetime Achievement Award in 2016. I'm 
mostly involved in the Eclipse top-level project (Equinox, Platform, JDT and PDE) where I am part of the PMC. I am a 
member of the Planning Council and the Architecture Council, and therefore not only have a view on the Eclipse top-level 
project but also on all other projects at the Eclipse Foundation. I already served as committer representative in 2016. During 
that term we simplified how copyright headers are handled.</p>

<p>I worked at OTI and now work at IBM Research GmbH. My interests include user interface and API design, editors, 
software quality and performance.</p>

	]]></bio>

	<!-- Who do you work for? -->
	<affiliation>IBM Research GmbH</affiliation>

</boardmember>
