, but this code // executes before the first paint, when

°ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Wiebe Boer | °ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ

°ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ

Skip to main content

Dr. Wiebe Boer

President, 2022–2024

Biography

Wiebe Boer, PhD, has spent two decades serving in the private and social sectors in four countries on two continents. His work has consistently focused on leveraging private capital to create social impact.

Boer earned a doctorate and two master’s degrees from Yale University and a bachelor’s degree from Calvin, all in history. He has served professionally in economic development, management consulting, philanthropy, and impact investing. For 12 years, Boer lived in Lagos, Nigeria, most recently serving as CEO of All On, a renewable energy investment fund of Shell.

In March 2022, the Presidential Search Committee of °ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ asked Boer ’97 to serve as the university’s 12th president. That decision was approved by the °ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ Board of Trustees and presented to the Christian Reformed Church in North America (CRCNA).

Boer brings a unique combination and depth of experience back to his alma mater. His life’s work has centered on creating welcoming and flourishing communities. He is now excited to innovate and collaborate alongside a talented faculty and staff in pursuit of Calvin’s ambitious vision—and to articulate that vision in a way that gains momentum both locally and globally.

Born and raised in Nigeria as the son of CRC missionaries, Boer holds citizenship in the Netherlands, Canada, and the United States. He is married to Joanna Bachew Boer ’03, who was born and raised in Trinidad and Tobago, holds a master’s degree in human resource management from the University of London, and is most recently the CEO of Empire Jane, a Nigerian soft home furnishings company. The couple have four boys: Jehan, Stephan, Gerrit, and Markus.