<?xml version="1.0"?>
<staffmembers version="1.0">

  <staffmember id="mike">
    <name>Mike Milinkovich</name>
    <username>mmilinkovich</username>
    <title>Executive Director</title>
    <twitter>mmilinkov</twitter>
    <image>images_staff/mike-milinkovich.jpg</image>
    <description>
      <![CDATA[<p>Outside of work, Mike's passions are his family, the family cottage and hockey (as a
      coach, player and fan)
      in pretty much that order. When he's not working, or traveling for work, you will probably
      find him involved in one of those three things. </p>
      <p>You can read Mike's blog at
 <a href="http://mmilinkov.wordpress.com/" target="blank">mmilinkov.wordpress.com/</a>.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="mikael">
    <name>Mikaël Barbero</name>
    <username>mbarbero</username>
    <title>Head of Security</title>
    <twitter>mikbarbero</twitter>
    <image>images_staff/mikael.jpg</image>
    <description><![CDATA[
      <p>Mika&euml;l is passionate for software engineering. He enjoys building
        <a href="https://en.wikipedia.org/wiki/The_Design_of_Everyday_Things" target="blank">user-centered</a> software
        and solutions. His experience is diverse and includes things from architecture to team management.
        He started programming at the age of 8 in ST Basic and hasn't stopped ever since (he changed language
        though). His constant questioning of <a href="https://www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_ReflectionsonTrustingTrust.pdf" target="blank">Trust</a>
        has lead him to its current position.</p>
        <p>You can read Mika&euml;l's blog at <a href="https://mikael.barbero.tech" target="blank">mikael.barbero.tech</a></p>
    ]]></description>
  </staffmember>

  <staffmember id="wayne">
    <name>Wayne Beaton</name>
    <username>wbeaton</username>
    <title>Director of Open Source Projects</title>
    <image>images_staff/wayne-beaton.jpg</image>
    <description><![CDATA[
      <p>Wayne works for the Eclipse Foundation where he fills the dual roles of
      Director of Open Source Projects and Evangelist. He spends his days working
      with the many Eclipse open source project teams, learning about Eclipse technology,
      and making sure that everybody knows just how cool it all really is. In 1982,
      he received the prestigious Chief Scouts Award from then-Governor General Edward
      Schreyer. In 1984 his team was selected to represent beautiful British Columbia
      in the Kinsmen Voyageur Relay. In his spare time, he writes down meaningless
      accomplishments from his youth in a lame attempt to impress the reader.</p>
      <p>Wayne authors the
      <a href="http://waynebeaton.wordpress.com/" target="blank">Eclipse Hints, Tips, and Random Musings</a> blog.</p>
    ]]></description>
  </staffmember>

  <staffmember id="gael">
    <name>Gaël Blondelle</name>
    <username>gblondelle</username>
    <title>Chief Membership Officer and Managing Director, Eclipse Foundation Europe GmbH</title>
    <twitter>gblondelle</twitter>
    <image>images_staff/gael-blondelle.jpg</image>
    <description><![CDATA[
      <p>Gaël has been involved in Open Source for 15 years with the goal to help companies adopt and develop open source projects and collaborate better. He joined the Eclipse Foundation in 2013 to develop the ecosystem in Europe, and to support the development of Eclipse Working Groups.
      Outside of work, Gaël likes spending time with his family and travelling to visit beautiful places in the world.</p>
    ]]></description>
  </staffmember>

  <staffmember id="paulb">
    <name>Paul Buck</name>
    <username>pbuckd40</username>
    <title>Vice President, Community Development</title>
    <twitter>PaulBuck</twitter>
    <image>images_staff/paul-buck.jpg</image>
    <description><![CDATA[
      <p>Paul's responsible for the growth and well being of the projects, work groups and the diverse community of members, committers and contributors at Eclipse.
      Once his work day is complete, you can find him outside running, biking and cross-country skiing the vast network of trails in Gatineau Park... and consuming large post work-out snacks.</p>
    ]]></description>
  </staffmember>

  <staffmember id="sharonc">
    <name>Sharon Corbett</name>
    <username>scorbett</username>
    <image>images_staff/sharonc.jpg</image>
    <title><![CDATA[Program Director, Industry Collaborations Operations]]></title>
    <description>
    <![CDATA[
      <p>
        Following a successful career as the Intellectual Property Manager for
        the Foundation and part of the Eclipse IP Advisory Committee, Sharon has
        turned her attention and leadership to Eclipse Foundation Industry
        Collaborations and associated programs to ensure governance compliance
        and operational excellence! Outside of work, Sharon’s main focus
        continues to be Chihuahua rescue and her two adopted Chi fur babies!
      </p>
    ]]>
    </description>
  </staffmember>

  <staffmember id="mariad">
    <name>Maria Teresa Delgado</name>
    <username>mdelgado624</username>
    <image>images_staff/maria-teresa-delgado.jpg</image>
    <title>Senior Manager, Open Source Projects</title>
    <twitter>mtdelgado</twitter>
    <description>
    <![CDATA[<p>Maria Teresa joined the Eclipse Foundation in 2018. Her role is to manage the Foundation
    activities within European Research Projects leveraging her experience in the IoT world with the
    Eclipse Open Source community. When she is not working, she enjoys spending time with family more
    than anything in the world!!</p>
    ]]>
    </description>
  </staffmember>

  <staffmember id="frederic">
    <name>Fr&#233;d&#233;ric Desbiens</name>
    <username>fdesbiens</username>
    <title>Senior Manager, Embedded &amp; IoT Programs</title>
    <twitter>BlueberryCoder</twitter>
    <image>images_staff/frederic-desbiens.jpg</image>
    <description>
      <![CDATA[<p>Frédéric Desbiens joined the Eclipse Foundation in February 2019.
      As the IoT and Edge Computing Program Manager, his job is to help the community innovate by bringing devices and
      software together. After hours, Frédéric will typically be found reading a history book, playing video games or
      watching Anime. He also likes going outdoors and playing sports with his friends and family.</p>
      <p>You can follow his blog at:
      <a href="https://blog.blueberrycoder.com" target="blank">https://blog.blueberrycoder.com/</a>
      </p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="zahrafazli">
    <name>Zahra Fazli</name>
    <username>zfazli</username>
    <image>images_staff/zahra.jpg</image>
    <title>Membership Coordinator</title>
    <twitter>zahraeclipse</twitter>
    <description>
      <![CDATA[<p>Zahra is the Membership Coordinator at Eclipse Foundation. Outside of work, Zahra loves to spend time with her friends and family, enjoys writing and traveling. </p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="gomes">
    <name>Andr&#233; Gomes</name>
    <image>images_staff/andre-gomes.jpg</image>
    <title>Research Project Manager</title>
    <description>
      <![CDATA[<p>André joined the Eclipse Foundation in June 2024, bringing extensive experience in research projects on telecommunications, IoT, security, and cloud computing. 
        Outside work, he is an avid traveler and outdoor enthusiast, enjoying hiking, cycling, motorcycling, swimming, and rowing. He also runs a small farm.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="sgottardo">
    <name>Steph Gottardo</name>
    <username>sgottardo</username>
    <image>images_staff/steph.jpg</image>
    <title>Manager, Accounting and Reporting</title>
    <description>
      <![CDATA[<p>Stephanie joined the Eclipse Foundation in March 2021. Outside of work, Stephanie enjoys spending time with her two daughters, seeing friends, traveling and going to the gym.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="igrimstad">
    <name>Ivar Grimstad</name>
    <username>igrimstad</username>
    <title>Jakarta EE Developer Advocate</title>
    <image>images_staff/ivarg.png</image>
    <twitter>ivar_grimstad</twitter>
    <description><![CDATA[
      <p>Ivar Grimstad is the Jakarta EE Developer Advocate at Eclipse Foundation. He is a Java Champion, JUG Leader, and a frequent speaker at International developer conferences.</p>
      <p>In his spare time, Ivar is usually busy with all sorts of outdoor sports and activities. As a Norwegian, he is born with skis on his feet and when the water is ice-free, he enjoys swimrunning in the Scandinavian archipelagoes. </p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="chrisguindon">
    <name>Christopher Guindon</name>
    <username>cguindon</username>
    <image>images_staff/chris.jpg</image>
    <title>Senior Manager, Web Development</title>
    <twitter>chrisguindon</twitter>
    <description>
      <![CDATA[<p> When he’s not at a computer, which is rare, Chris spends his time with his dog Winston, playing the drums, watching a Habs game or at the top of a hill snowboarding. </p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="fredgurr">
    <name>Frederic Gurr</name>
    <username>fgurr</username>
    <image>images_staff/fred.jpg</image>
    <title>Release Engineer</title>
    <twitter>fr3dg</twitter>
    <description>
      <![CDATA[<p>Fred is a java developer by trade, based out of Cologne, Germany. Responsible for supporting Eclipse projects, focusing on build and release processes.
      In his spare time, Fred can be found kite surfing off the coast of the Netherlands and Spain, or building quadcopters and testing their flight capabilities.</p>]]>
    </description>
  </staffmember>

  <staffmember id="gesine">
    <name>Gesine Freund</name>
    <username>gesinef220201</username>
    <image>images_staff/gesine.jpg</image>
    <title>Corporate Executive Assistant</title>
    <description>
      <![CDATA[<p>Gesine joined the Eclipse Foundation in February 2022. In her spare time, Gesine is an avid runner, who enjoys road and trail running throughout the seasons. She loves to travel, try new recipes, entertain family and friends, and relax in her forest garden.</p>]]>
    </description>
  </staffmember>

  <staffmember id="anne">
    <name>Anne Jacko</name>
    <username>ajacko</username>
    <image>images_staff/anne-jacko.jpg</image>
    <title>Conference Queen</title>
    <twitter>annejacko</twitter>
    <description>
      <![CDATA[<p>When not in front of a monitor, Anne prefers activities
      that involve wearing a helmet--horseback riding, skiing,
      and cycling. One of her favorite books is <i>The Chicago Manual
      of Style</i>, so if you need help with the nitpicking
      details of writing in English, she's happy to help.</p>]]>
    </description>
  </staffmember>

  <staffmember id="marco">
    <name>Marco Jahn</name>
    <username>mjahn0qp</username>
    <image>images_staff/marco.png</image>
    <title>Senior Research Project Manager</title>
    <description>
      <![CDATA[<p>Marco is part of the Eclipse Foundation research team where he helps to turn innovations into successful open source projects. Outside of work, he enjoys skiing, spending time with family and friends and making pizza in his wood-fired oven</p>]]>
    </description>
  </staffmember>

  <staffmember id="shawn">
    <name>Shawn Kilpatrick</name>
    <username>skilpatrick</username>
    <image>images_staff/shawn-kilpatrick.jpg</image>
    <title>Intellectual Property Analyst</title>
    <twitter>EclipseFdnShawn</twitter>
    <description>
      <![CDATA[<p>Shawn is a member of the Eclipse IP team. When he's not poring over code,
      Shawn enjoys spending time with his family, playing guitar and singing, fishing,
      hiking, and boating at the family cottage, and cheering on his beloved Ottawa Senators.</p>]]>
    </description>
  </staffmember>

  <staffmember id="serina">
    <name>Serina El Salibi</name>
    <username>serina</username>
    <title>Virtual Event Specialist</title>
    <image>images_staff/serina.jpg</image>
    <description>
      <![CDATA[
      <p>Serina has spent the majority of her career working at non-for-profit, tech-based organizations. After hours, Serina loves spending time with her growing family. She has a LOVE for food, travel, cars and surfing/scuba diving... a true thalassophile.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="philippe">
    <name>Philippe Krief</name>
    <username>pkriefrvi</username>
    <image>images_staff/philippe.jpeg</image>
    <title>Director, Research Programs</title>
    <twitter>phkrief</twitter>
    <description>
      <![CDATA[<p>Philippe manages the Eclipse Foundation contributions to European-funded research
      projects. When he is traveling, Philippe enjoys photographing the places he visits, and when
      he isn't on the road, he is having fun with his family, riding his motorcycle or playing
      jazz with some good friends.</p>]]>
    </description>
  </staffmember>

  <staffmember id="perri">
    <name>Perri Louise Lavergne</name>
    <username>pmisingnameu8g</username>
    <title>Membership Growth, Manager</title>
    <twitter>perrieclipse</twitter>
    <image>images_staff/perri-lavergne.jpg</image>
    <description> <![CDATA[
      <p>Perri joined the Eclipse Foundation in May 2010. Her focus is on membership retention, management and sales, including sales of our advertising portfolio and sponsorships for our conferences.
        Outside of work Perri enjoys spending time with family and friends, medical research, volunteer work for organizations dealing with children with special needs, running, cooking and baking.
        Perri hopes to one day accomplish her long time dream of a unique day program for young adults with special needs.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="martin">
    <name>Martin Lowe</name>
    <username>malowe</username>
    <title>Senior Software Developer</title>
    <image>images_staff/martin.png</image>
    <description> <![CDATA[
      <p> Martin is a developer for the Foundation, working with the Web team and helping develop the
      Eclipse platform. When not working, Martin enjoys tabletop RPGs, video games, and music (both playing and listening).</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="sharonm">
    <name>Sharon Macdonald</name>
    <username>shmacdonald</username>
    <title>Trademarks Specialist</title>
    <image>images_staff/sharonm.jpg</image>
    <description>
      <![CDATA[<p>
      Sharon is a member of the Eclipse Projects team. She manages all aspects of the Eclipse Foundation's
      trademark portfolio; this includes prosecution, defence, and monitoring to ensure the marks are fully
      protected and up to date at all times. When she is not working,
      she likes to spend her time enjoying the outdoors with her family.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="jenn">
    <name>Jenn Martel</name>
    <username>jmartelb0n</username>
    <title>Director, Worldwide Operations</title>
    <twitter>jennmartel4</twitter>
    <image>images_staff/jenn.png</image>
    <description>
      <![CDATA[<p>
      Jenn joined the Eclipse Foundation in September 2016.
      Away from the office, she enjoys spending time with her family, watching her girls play sports and is also a fitness enthusiast.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="shabnam">
    <name>Shabnam Mayel</name>
    <username>smayel</username>
    <title>Senior Product Marketing Manager, Java Programs</title>
    <twitter>mayelshabnam</twitter>
    <image>images_staff/shabnam-mayel.jpg</image>
    <description>
      <![CDATA[<p>
      Shabnam joined the Eclipse Foundation in June 2019 as the Senior Marketing Manager with focus on Jakarta EE, Eclipse MicroProfile and other Cloud native java projects.
      Her passion is in multimedia marketing, and brand management . Outside of work, she enjoys traveling, watching anime series, hiking and reading. </p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="tanja">
    <name>Tanja Obradovic</name>
    <username>tobradovic</username>
    <title>Senior Manager, Java Programs</title>
    <twitter>TanjaEclipse</twitter>
    <image>images_staff/tanja.jpg</image>
    <description>
      <![CDATA[<p>
      Tanja joined Eclipse Foundation as Jakarta EE Program Manager June 2018.
   		Having been involved with Java and Java EE for quite some time,
   		revitalizing Enterprise Java seems like a good challenge and a great fit for her!
   		Outside the office, she loves spending time with her family and friends,
   		enjoys art events, outdoor activities (even in the winter!),
   		visiting different countries and most of all spending summers on a beach.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="mplagge">
    <name>Michael Plagge</name>
    <username>mplagge</username>
    <title>Vice President, Ecosystem Development</title>
    <image>images_staff/michael-plagge.jpg</image>
    <description>
      <![CDATA[<p>
      Michael joined the Eclipse Foundation in 2021 as Director, Ecosystem
      Development. In a previous life, he started his career as a software
      developer in the area of automotive software before he changed to the
      dark side of business development.  Here he held various business
      development positions in companies like Elektrobit, Alibaba, and Alibaba
      Cloud, and spent 3 years as General Manager Elektrobit Automotive
      (Shanghai) Ltd. in China.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="eric">
    <name>Eric Poirier</name>
    <username>epoirier</username>
    <title>Web Developer</title>
    <twitter>ericpoir</twitter>
    <image>images_staff/eric.jpg</image>
    <description>
      <![CDATA[<p>
      Eric is part of the web development team! Other than working
      with web stuff, his other passions are mostly constituted
      of hockey, video games and tv shows.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="denis">
    <name>Denis Roy</name>
    <username>droy</username>
    <title>Director, IT Services</title>
    <image>images_staff/denis-roy.jpg</image>
    <twitter>droy_eclipse</twitter>
    <description>
            <![CDATA[<p>In the office, Denis spends his time in front of a Linux command prompt, helping manage the servers, networks and software that run the Eclipse websites. When not at work, Denis enjoys time with his family and friends.</p>]]>
    </description>
  </staffmember>

  <staffmember id="sandy">
    <name>Sandy Thompson</name>
    <title>Finance Specialist</title>
    <image>images_staff/sandy.png</image>
    <description>
      <![CDATA[
        <p>
          Sandy is the Finance Specialist. Outside of work, Sandy enjoys travel,
          hockey (Go Leafs Go) and spending as much time as possible with her
          family, especially her grandchildren.
        </p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="matt">
    <name>Matt Ward</name>
    <username>mward</username>
    <title>IT Manager</title>
    <image>images_staff/matt-ward.jpg</image>
    <description><![CDATA[
      <p>Matt spends his time triaging the Webmaster inbox and putting out
      fires.  If you can't take the heat, stay out of the data center.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="paul">
    <name>Paul White</name>
    <username>pwhited3w</username>
    <title>Secretary / Treasurer</title>
    <image>images_staff/paul.jpg</image>
    <description><![CDATA[
      <p>Paul’s role at the Foundation is to drive value for our members.
      His interests outside the Foundation are diverse, but all centre around family,
      friends, learning (and a bit of teaching) - all mixed with a heavy dose of travel.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="shanda">
    <name>Shanda Giacomoni</name>
    <username>sgiacomoni2as</username>
    <title>Senior Manager, Marketing Operations &amp; Growth</title>
    <image>images_staff/shanda-giacomoni.jpg</image>
    <description><![CDATA[
      <p>Shanda has spent the majority of her career working in the non-for-profit space, and has a particular interest in tech-based organizations. Outside of the office, she likes spending time with her growing family.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="silviamiles">
    <name>Silvia Miles</name>
    <title>Office Manager</title>
    <image>images_staff/silvia.jpg</image>
    <description><![CDATA[
      <p>Silvia joined the Eclipse Foundation in September 2020 as the Office Manager Europe.
Outside of work, Silvia loves to spend time with her family and friends, likes to travel around the world, enjoys sports like running, hiking and fitness.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="mkokabi">
    <name>Mehrnaz Kokabi</name>
    <username>mkokabi</username>
    <title>Creative Lead</title>
    <image>images_staff/mehrnaz-kokabi.jpg</image>
    <description><![CDATA[
      <p>Mehrnaz is a member of the Eclipse marketing team. With more than 10 years as a web and graphic designer, Mehrnaz has experience designing and implementing effective creative projects and services for a variety of large public and non-profit organizations. Outside of work, her hobbies include painting, photography, and antique collecting.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="samantha">
    <name>Samantha Carter</name>
    <username>samantha</username>
    <title>Office Manager</title>
    <image>images_staff/samantha-carter.jpg</image>
    <description><![CDATA[
      <p>Outside of the office, Samantha enjoys many hobbies such as music/singing, creating/trying new recipes, and riding her motorcycle. As an avid animal fan, she will always stop to pet any dog that’s willing, and loves her two cats!</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="zachary">
    <name>Zachary Sabourin</name>
    <username>zacharysabourin</username>
    <title>Web Developer</title>
    <image>images_staff/zachary_sabourin.jpg</image>
    <description><![CDATA[
      <p>Zachary is an avid learner who is fascinated by the power of technology. When he's not working, learning, or out on a walk, he enjoys exploring his many interests, such as video games, bass guitar, music, Magic: the Gathering, and listening to podcasts on various topics.
      <br /><br /><q>Be yourself; everyone else is already taken</q> -Oscar Wilde</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="olivier">
    <name>Olivier Goulet</name>
    <username>oliviergoulet</username>
    <title>Front End Web Developer</title>
    <image>images_staff/olivier-goulet.jpg</image>
    <description><![CDATA[
      <p>Olivier is a member of the web development team. He enjoys building web applications. His hobbies include watching hockey, playing games, and most recently got into cycling.</p>
      ]]>
    </description>
  </staffmember>

  <staffmember id="paulina">
    <name>Paulina Gueorguieva</name>
    <username>paulinagueorguieva</username>
    <title>Product Marketing Manager, SDV</title>
    <image>images_staff/paulina-gueorguieva.jpg</image>
    <description><![CDATA[
        <p>I am a marketer with an abundance of experience covering wide fields of marketing - from CRM, content, email and digital marketing placing a strong focus on product marketing and product development.
        My passion is everything related to technology, innovation and sustainability in the mobility and automotive industries. My strongest skills include excellent communication, storytelling via engaging content, hosting and managing events and executing customer-first focused media strategies for brand awareness, relevancy and increased engagement.
        In my free time I find comfort in reading, traveling and doing yoga.
        </p>]]>
      </description>
  </staffmember>

  <staffmember id="heurtemattes">
    <name>Sébastien Heurtematte</name>
    <username>heurtemattes</username>
    <title>Release Engineer</title>
    <image>images_staff/sebastien-heurtematte.jpg</image>
    <description><![CDATA[
        <p>As a member of the release engineer team, his leitmotif is to help the community by providing expertise/advice/support and thus unlocking their full potential. In his spare time, he likes to push the knobs on his guitar amps, metal concerts, music festivals, and enjoys sports like running.</p>
        ]]>
      </description>
  </staffmember>

  <staffmember id="boris">
    <name>Boris Baldassari</name>
    <username>bbaldassari2kd</username>
    <title>Open Source Consultant</title>
    <image>images_staff/boris-baldassari.jpg</image>
    <description><![CDATA[
        <p>Boris is a long time open source enthusiast and contributor. Previously a methods and tools consultant for the industry, he joined the Eclipse Foundation in 2021 to help people and organisations adopt, understand and apply open source principles and best practices to their own projects. He is also a juggler, musician, and nature lover. He is moored in Europe.</p>
        ]]>
      </description>
  </staffmember>

  <staffmember id="jacob">
    <name>Jacob Harris</name>
    <username>jharrisj1m</username>
    <title>Marketing Campaign Manager</title>
    <image>images_staff/jacob-harris.jpg</image>
    <description><![CDATA[
        <p>
          Jacob joined the Eclipse Foundation's marketing team in 2020, where he
          contributes to digital campaigns that include social media, web
          content, online ads, and emails. When he isn't working, he enjoys
          playing and watching hockey, spending time outside, and planning his
          next trip.
        </p>
        ]]>
      </description>
  </staffmember>

  <staffmember id="jakub">
    <name>Jakub Mazanek</name>
    <username>jmazanek4ep</username>
    <title>European Senior Systems Administrator</title>
    <image>images_staff/jakub-mazanek.jpg</image>
    <description><![CDATA[
        <p>Jakub joined the Eclipse Foundation in March 2021. He is a sysadmin spending most of the time in the Linux command line. In his free time he enjoys trekking in mountains.</p>
        ]]>
      </description>
  </staffmember>

  <staffmember id="john">
    <name>John Kellerman</name>
    <username>kineticSquid</username>
    <title>Program Manager - Cloud Development Tools and Open VSX</title>
    <image>images_staff/john-kellerman.jpg</image>
    <description><![CDATA[
        <p>John is part of the Community Development team at Eclipse working closely with the Cloud DevTools and Open Research working groups. He also spends time volunteering with the People Not Property project in North Carolina. Outside of work John enjoys hiking, swimming, gardening and a good practical joke.</p>
        ]]>
        </description>
  </staffmember>

  <staffmember id="dennisl">
    <name>Dennis Leung</name>
    <username>dennisl</username>
    <title>Vice President, Program Development</title>
    <image>images_staff/dennis-leung.jpg</image>
    <description><![CDATA[
        <p>Dennis has been involved with open source since 2007 when Oracle made its initial contribution to the Eclipse Foundation and joined as a strategic member. He served on the Eclipse Foundation board for over 10 years. He resides in Ottawa where he enjoys an active lifestyle playing golf, hockey and spending time at the lake.</p>
        ]]>
        </description>
  </staffmember>

  <staffmember id="carmen">
    <name>Carmen Delgado</name>
    <username>carmendelgado</username>
    <title>Community Manager</title>
    <image>images_staff/carmen-delgado.jpg</image>
    <description><![CDATA[
        <p>Carmen joined the Eclipse Foundation in October 2022 as a Community Manager having a background in project, operations, and financial management. She also volunteers as group manager and mentor at Step4ward, a mentoring program for women starting in the tech world. During her free time, she enjoys traveling to visit her family and exploring new places, cooking, and reading.</p>
      ]]></description>
  </staffmember>

  <staffmember id="rosaria">
    <name>Rosaria Rossini</name>
    <username>rosariarossini</username>
    <title>Research Project Manager</title>
    <image>images_staff/rosaria-rossini.jpg</image>
    <description><![CDATA[
        <p>Rosaria is a computer scientist and part of the Eclipse Foundation research team. Passionate about technology, she joined the community to help spread "open source" best practices and assist in putting them in place. She is very curious about the world and loves nature. In her spare time, she enjoys traveling and learning about new cultures, as well as playing and trying different sports.</p>
      ]]></description>
  </staffmember>

  <staffmember id="sara">
    <name>Sara Gallian</name>
    <username>sgallian</username>
    <title>SDV Program Manager</title>
    <image>images_staff/sara-gallian.jpg</image>
    <description><![CDATA[
        <p>Sara joined the Eclipse Foundation in October 2022 as SDV Program Manager. She started her career as a researcher in the field of plasma physics, but quickly changed her mind and moved to the Automotive world where she worked as a developer for ADAS functions. After a few years of coding, Sara discovered her interest for managing people and projects, and moved to team and group leading in the field of Intelligent Mobility. After 12+ years in the US and Germany, she finally found her way back to Italy where she enjoys mountain biking and climbing.</p>
      ]]></description>
  </staffmember>

  <staffmember id="pawel">
    <name>Pawel Stankiewicz</name>
    <username>pastanki</username>
    <title>Open Source Software Release Engineer</title>
    <image>images_staff/pawel-stankiewicz.jpg</image>
    <description><![CDATA[
        <p>Paweł is an IT technology enthusiast, and has been working in Operations and Devops for a long time for different companies. As a natural consequence, remote working became part of the job and he’s been trying to make that process better and more efficient while appreciating “Anywhere Operations”, and gaining knowledge of new technologies and how developers use them. To balance limited physical activity at his keyboard, he enjoys riding his bike almost every day, especially if they're on interesting routes. Outside of work, he likes spending time with his family and playing with low level electronics.</p>
      ]]></description>
  </staffmember>

  <staffmember id="florent">
    <name>Florent Zara</name>
    <username>flzara</username>
    <title>Open Source Services Team Lead</title>
    <image>images_staff/florent-zara.jpg</image>
    <description><![CDATA[
        Florent has French and Canadian engineering degrees, and has been involved (both personally and professionally) in the FLOSS community since 1999. Professionally, Florent has worked for nearly 20 years in a consulting company, first as a software quality consultant, then as an Open Source advisor for large companies, helping them with governance, licensing, Innersource, as well as change management. Today, as Open Source Services Team Lead, he's helping (new) Eclipse members and projects better understand, manage and master Open Source. On his personal side, he's an administrator and board member at LinuxFr.org (reference french-speaking, community driven website about Free and Open Source software).
      ]]></description>
  </staffmember>

  <staffmember id="rahul">
    <name>Rahul Mohan Geetha</name>
    <username>rahulmohang</username>
    <title>Open Source Compliance Engineer</title>
    <image>images_staff/rahul-mohan-geetha.jpg</image>
    <description><![CDATA[
        Rahul works as an open source license compliance engineer with the Eclipse Foundation. He likes to spend his free time with family or friends, enjoying a variety of food items.
      ]]></description>
  </staffmember>

  <staffmember id="marta">
    <name>Marta Rybczynska</name>
    <username>mrybczyn</username>
    <title>Technical Program Manager</title>
    <image>images_staff/marta-rybczynska.jpg</image>
    <description><![CDATA[
      <p>Marta has engaged in various open-source projects for 20 years. She holds a Ph.D. in network security and has developed embedded software (including a Linux kernel port to a new architcture) and tooling. At the same time, for her, communication is at least as crucial as the development itself. Because of this, she is currently a frequent speaker at various open-source conferences. In her free time, Marta hikes in the mountains, writes, reads all types of books, and takes care of her garden.</p>
    ]]></description>
  </staffmember>

  <staffmember id="thomas">
    <name>Thomas Neidhart</name>
    <username>netomi</username>
    <title>Software Engineer</title>
    <image>images_staff/thomas-neidhart.png</image>
    <description><![CDATA[
    <p>Thomas is passionate about Open Source development and has been a long time contributor to various Open Source projects. Since joining the Eclipse Foundation in 2023, he helps in building tools and processes to strengthen the software supply chain security of the Foundation's projects.</p>
    ]]></description>
  </staffmember>

  <staffmember id="david">
    <name>David Remon</name>
    <username>davidremon</username>
    <title>Research Project Manager</title>
    <image>images_staff/david-remon.jpeg</image>
    <description><![CDATA[
    <p>David joined the Eclipse Foundation in January 2023, bringing experience in industry and research projects in IoT, smart cities, or environment. David enjoys spending time in the mountains, traveling, and practicing any kind of sport.</p>
    ]]></description>
  </staffmember>

  <staffmember id="emerks">
    <name>Ed Merks</name>
    <username>emerks</username>
    <title>Release Engineer for Eclipse SimRel</title>
    <image>images_staff/ed-merks.jpg</image>
    <description><![CDATA[
    <p>Ed Merks founded his own small consulting company, macromodeling. He is a coauthor of the authoritative book EMF: Eclipse Modeling Framework which is published as a second expanded edition. He has been an elected member of the Eclipse Foundation Board of Directors for the past fifteen years and has been recognized by the Eclipse Community Awards as Top Newcomer Evangelist, Top Ambassador, and Top Committer, as well as for Lifetime Achievement. 
      Ed is well known for his dedication to the Eclipse community since 2002, having posted more than 32,000 forum answers. He spent 16 years at IBM, achieving the level of Senior Technical Staff Member after completing his Ph.D. at Simon Fraser University. 
      He is currently living in Switzerland and has learned to speak German. His experience in modeling technology spans more than thirty years.</p>
    ]]></description>
  </staffmember>

  <staffmember id="croundy">
    <name>Clark Roundy</name>
    <username>croundy</username>
    <title>Head of Outreach and Engagement</title>
    <image>images_staff/clark-roundy.jpg</image>
    <description><![CDATA[
      <p>
         As the head of product marketing for the Eclipse Foundation, Clark is the guy to talk to 
         if you are looking for ways to raise awareness for your project. Prior to joining the 
         Foundation, for more than 25 years Clark worked within the technology industry in a broad 
         range of marketing, product management, sales and executive roles, many of which were 
         closely aligned with the open source industry. In his spare time, Clark likes spending 
         time with his family, exploring the world, playing golf, and hiking in the beautiful 
         mountains of Utah.
      </p>
    ]]></description>
  </staffmember>

  <staffmember id="mariorodriguez">
    <name>Mario Rodriguez</name>
    <username>mariorodriguez</username>
    <title>Verification Engineer</title>
    <image>images_staff/mario-rodriguez.jpg</image>
    <description><![CDATA[
      <p>
         Mario joined the Eclipse foundation in March 2023. He is passionate about Verification, and enjoys catching the bugs in the designs he works with. He is also interested in open-source projects that are related to home domotics.
      </p>
    ]]></description>
  </staffmember>

  <staffmember id="olgatimakova">
    <name>Olga Timakova</name>
    <username>olgatimakova</username>
    <title>Conference Coordinator</title>
    <image>images_staff/olga-timakova.jpg</image>
    <description><![CDATA[
      Olga is a Conference Coordinator and a member of the Marketing team.
      Outside of work, Olga enjoys traveling with her family, exploring
      beautiful places in the world, sports, and fashion.
    ]]></description>
  </staffmember>

  <staffmember id="tiagolucas">
    <name>Tiago Lucas</name>
    <username>tiagolucas</username>
    <title>Open Source Software Engineer</title>
    <image>images_staff/tiago-lucas.jpg</image>
    <description><![CDATA[
      Tiago has been staring at computers for most of his life, wondering how
      every little thing works. With a passion for open-source and a mission for
      security, he joined the Eclipse Foundation in 2023 to make a difference.
      His cat is named after an operating system, but he'll tell you he's a dog
      person.
    ]]></description>
  </staffmember>

  <staffmember id="dana">
    <name>Dana Vede</name>
    <username>dana</username>
    <title>Automotive Process Engineer</title>
    <image>images_staff/monica-daniela-vede.jpg</image>
    <description><![CDATA[
      <p>
        Dana is passionate about Software and Innovation. She has worked in the
        automotive industry for over 20 years, where she experienced all the SW
        related roles of a project.
      </p>
      <p>
        Outside of work, Dana enjoys music, photography, travel, hiking, riding
        motorcycles, reading, and laughing. She'll always stop to pet a cat, dog
        or horse. She also takes a high interest in mental health topics and any
        related techniques and mechanisms, and is keen on further improving
        herself and helping others through her knowledge and experiences.
      </p>
    ]]></description>
  </staffmember>

  <staffmember id="mekhan">
    <name>Maira Khan</name>
    <username>mekhan</username>
    <title>Graphic Design Assistant</title>
    <image>images_staff/maira-khan.jpg</image>
    <description><![CDATA[
      <p>
        Maira joined Eclipse Foundation in February 2023. Her passion is
        graphic designing, and she loves to explore and learn new things
        everyday. In her free time, she loves painting and doing arts and
        crafts projects; art in any form inspires Maira. Traveling with her
        family makes her happy!
      </p>
    ]]></description>
  </staffmember>

  <staffmember id="tmashologu">
    <name>Thabang Mashologu</name>
    <username>tmashologu</username>
    <title>VP Community &amp; Outreach</title>
    <image>images_staff/thabang-mashologu.jpg</image>
    <description><![CDATA[
        <p>
          Thabang is the Vice President, Community and Outreach at the Eclipse Foundation.
          He is responsible for global marketing and program
          management for our working groups and industry collaborations.
          Outside of work, you can find Thabang anywhere his family is &mdash; which
          is usually a hockey arena. You can learn more about Thabang at
          <a href="https://thabang.ca">thabang.ca</a>.
        </p>
    ]]></description>
  </staffmember>

  <staffmember id="jricoeclipse">
    <name>Juan Rico</name>
    <username>jricoeclipse</username>
    <title>Senior Manager, Oniro &amp; Cloud Programs</title>
    <image>images_staff/juan-rico.jpg</image>
    <description><![CDATA[
      <p>
        Juan joined the Eclipse Foundation in July 2023 as Oniro Program
        Manager. He started his career as a researcher in the field of wireless
        communications and IoT applied to embedded systems. His path evolved
        from developer to manager in domains like smart home, smart cities, and
        smart energy, combining massive device deployment and data collection to
        deliver consumer focused services. He is based in the north of Spain,
        enjoys spending his free time with his family, hiking/running through
        the mountains and beaches surrounding his hometown, and reading about
        innovation.
      </p>
    ]]></description>
  </staffmember>

  <staffmember id="chills2023">
    <name>Christopher Hills</name>
    <username>chills2023</username>
    <image>images_staff/christopher-hills.jpg</image>
    <title>Senior Systems Engineer</title>
    <description>
      <![CDATA[<p>When not working, Christopher spends his time with his kids, rebuilding motorcycles, and car bodywork/paint.</p>]]>
    </description>
  </staffmember>

  <staffmember id="aurelie">
    <name>Aurélie Caron</name>
    <username>aurelie</username>
    <title>Senior Manager, Event Operations and Strategy</title>
    <image>images_staff/aurelie-caron.jpg</image>
    <description><![CDATA[
      <p>
        Aurélie is leading the Eclipse Foundation’s Events team. Over the last
        10 years, she has developed a deep knowledge of event management and
        marketing in the software and IT world, as she has managed event projects
        for major companies such as IBM, Salesforce, Adobe, Red Hat, Wipro, and
        many more. She has a very multi-cultural mindset as she has travelled the
        world and lived abroad for many years across three different continents.
        She loves challenges and her mantra is: <q>If it doesn’t challenge you,
        it doesn’t change you.</q>
      </p>
    ]]></description>
  </staffmember>
  
  <staffmember id="enzoribagnac">
    <name>Enzo Ribagnac</name>
    <username>enzoribagnac</username>
    <title>Associate Director, European Public Policy</title>
    <image>images_staff/enzo-ribagnac.jpg</image>
    <twitter>EnzoRbgnc</twitter>
    <description><![CDATA[
      <p>
        Enzo is responsible for the advocacy activities of Eclipse Foundation
        in Europe. To do so, he is interacting with policy makers and
        representatives from civil society organizations, research, and
        industry.
      </p>
      <p>
        Before joining Eclipse Foundation, Enzo alternated between private and
        public sector organizations working on international relations, trade
        policy, and digital policy, including open source. Enzo speaks 5
        languages, enjoys cooking, and is a cat person.
      </p>
    ]]></description>
  </staffmember>

  <staffmember id="franciscocarneiro">
    <name>Francisco Carneiro</name>
    <username>franciscocarneiro</username>
    <title>Manager of Ecosystem Development</title>
    <image>images_staff/francisco-carneiro.jpg</image>
    <description><![CDATA[
      <p>
        Residing in Finland, Francisco assumed the position of Manager of
        Ecosystem Development at the Eclipse Foundation in 2024. He has expertise
        in IT engineering and business development. Outside of work, he cherishes
        family moments, takes leisurely walks with his dog, plays the guitar,
        explores creative pursuits such as painting, and enjoys cross-country
        skiing.
      </p>
    ]]>
    </description>
  </staffmember>

  <staffmember id="thomasfroment">
    <name>Thomas Froment</name>
    <username>thomasfroment</username>
    <title>Eclipse IDE Program Manager</title>
    <image>images_staff/thomas-froment.jpg</image>
    <description><![CDATA[
      <p>
        Thomas joined the Eclipse Foundation in February 2024 as the Eclipse IDE
        Program Manager. He was a diligent practitioner of classical music
        throughout his childhood, playing the bassoon in symphonic orchestras,
        but ultimately pivoted due to his passion for software development.
        Today, he enjoys taking care of his three children, and inviting
        everyone he meets to come for a run/go on trail runs with him...
      </p>
    ]]></description>
    <twitter>tfroment</twitter>
  </staffmember>

  <staffmember id="javiervalino">
    <name>Javier Valiño Llamazares</name>
    <username>javiervalino</username>
    <title>Eclipse Dataspace Program Manager</title>
    <image>images_staff/javier-valino-llamazares.jpg</image>
    <description><![CDATA[
      <p>
        Javier has been involved in innovation for over 16 years, touching upon
        several topics such as IoT, cellular networks, energy, decarbonisation,
        and sovereign data sharing. As part of this endeavour, open source and
        standardisation emerged always as the way forward. Outside the work
        place, Javier is usually spending time with his family, and is always
        keen on practising and discussing sports of any kind.
      </p>
    ]]>
    </description>
  </staffmember>

  <staffmember id="aminrasti">
    <name>Amin Rasti</name>
    <username>aminrasti</username>
    <title>Senior Product Marketing Manager</title>
    <image>images_staff/amin-rasti.jpg</image>
    <description><![CDATA[
      <p>
        Amin is a product marketing professional with a passion for technology,
        specialising in crafting impactful strategies within the dynamic tech
        industry. Outside the corporate sphere, he finds joy in family moments -
        from weekend hikes, to shared laughter over home-cooked meals. Amin is
        also deeply connected to the outdoors, drawing inspiration from nature's
        beauty through frequent hikes and adventures. As a proponent of
        open-source principles, he values collaboration and innovation in both
        his professional and personal pursuits.
      </p>
    ]]>
    </description>
  </staffmember>
</staffmembers>
