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

	<name>Gunnar Wagenknecht</name>
	<title></title>
	<image>wagenknecht.jpg</image>
	<email>gunnar@wagenknecht.org</email>

	<!-- What do you do with eclipse? -->
	<eclipse_affiliation><![CDATA[
		Chair of the <a href="https://www.eclipse.org/org/foundation/council.php#architecture">Architecture Council</a><br/>
		<a href="http://www.eclipse.org/technology/">Technology</a> PMC Lead<br/>
		<a href="http://www.eclipse.org/rt/">RT</a> PMC member<br/>
		<a href="http://planeteclipse.org/planet/">Planet Eclipse</a> Creator<br/>
		Committer, contributor and mentor to many projects<br/>
		Program Committee of numerous Eclipse conferences<br/>
		<a href="http://planeteclipse.org/planet/">Lifetime Award</a> Winner 2015
		]]>
	</eclipse_affiliation>

	<!-- Feel free to include html tags and what-not between the CDATA tags. -->
	<vision>
		<![CDATA[
<p>
The Eclipse Foundation's vision is to be the leading community for individuals and organizations to collaborate on open technologies. As a contributing member representative, I will work to see the Eclipse Foundation continuing on its success story, building communities around open source projects, helping companies understand and execute in an open source context, providing solutions to any concern around commercial-friendly open source software development. One critical building block for these activities is solid funding. Therefore I'd like to see the Eclipse Foundation continuing its effort of exploring new topic areas, attracting projects and growing the list of sustaining members.
</p><p>
Originally founded 2004 with developer tools, the Eclipse Foundation has since then become a home for many diverse projects, members and topics. I am very proud of what we have achieved over the years. Moving the base to Europe was a huge step towards growth and opened the door to many, many new opportunities. We also enabled more flexibility in the IP policy and I'd like to continue with those improvements and push for reducing complexity where possible. The Eclipse Foundation tools around IP compliance, project management and business continuity must continue to evolve and enhance providing integration options for the top popular stacks as well as improving the user experience for member companies as well as projects. More automation and post analalysis will help reducing the work for members and committers.
</p><p>
It was my pleasure serving on the board in the last year on your behalf, engaging with board members in discussions and working on priorities. As your representative, I will listen and represent your needs on the board. Please allow me to continue doing that!
</p><p>
Thank you!
</p>
		]]>
	</vision>

	<bio> <![CDATA[
Technology enthusiast, likes travel and conferences, open source believer and dad. Addicted 2 DIY. More at <a href="http://guw.io/">guw.io</a>.
	]]> </bio>

	<affiliation> <![CDATA[
		Salesforce
	]]>
	</affiliation>

</boardmember>