, 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); })(); An embedded systems engineer prepared to perform - News & Stories | 鶹

Skip to main content

Calvin News

An embedded systems engineer prepared to perform

Tue, Jul 26, 2016
Jacquelyn Hubbard

With an engineer for a grandfather and a father, one could guess which academic path Kevin Kredit ’16 was prone to take at Calvin. Now as an embedded systems engineer at DornerWorks LTD in Grand Rapids since June 2016, his positive experiences in his engineering classes are being put to the test in the workforce.

Kredit gained engineering experience in avionics systems at Boeing in summer 2015, but now, with DornerWorks, he has transitioned into coding.

Coding for companies

“Some of this work I’ve never done before, so it’s a lot of learning at the same time,” he said. “The stuff I’m working on is enormous. Our senior design project probably had 5,000 lines of code, but [my current] project has tens or hundreds of thousands of code,” he said. “Trying to grasp that is difficult, but when you get into the nitty gritty, it’s really cool to see something and realize why they taught us things in school.”

Writing software, Kredit works on projects in teams, like the two projects he had in June 2016 with a pair of coworkers. With DornerWorks being an engineering service company, Kredit helps companies with coding in an effort to advance the projects they are working on.

"GardeNet" senior design project

For Kredit’s senior design project at Calvin, he and his team created “GardeNet,” which was a project focused on the idea of giving the operator of gardens or farms the same tools that industrial farmers use, but on a smaller scale.

“What we created was a system where you could go on our website and create a watering schedule, and then water valves open and close automatically on schedule,” he said. “It also automatically adjusted based on the weather. If it was raining, we would cancel all the watering. If it was hotter, we’d water a little more. There was some feedback data that would tell you how much water you used in the past few months.”

From designing his senior project to writing software for companies, Kredit learned from his time at Calvin to embrace the unknown instead of shying away from it.

“I feel very comfortable picking up new things and asking questions now,” he said. “I think Calvin does a great job creating mature adults who are prepared to be a part of the workforce and the world.”

He intends to continue working with DornerWorks and looks forward to future opportunities within the company. “I know I’m extremely blessed with a job I love,” he said. “I had a fantastic experience at Calvin, too. It wouldn’t have been possible without all my professors and friends. I feel very lucky.”