By Janny Au, Senior Manager of Firmware Engineering
Janny Au began her STEM journey as a Junior High student in Taiwan. Opportunities to learn computer science were scarce, so when a class was offered, she jumped at the chance, quickly discovering her propensity for programming. Once her mother caught on to her passion, she did everything she could to support her. “My mom managed to get a second-hand 80286 PC from one of her friends for me so that I could spend more time on it,” says Au. “This was the beginning of my career!”
Now, Au is the Senior Manager of Firmware Engineering at Hyve Solutions where she oversees the development of BIOS and BMC firmware and related automated test software. Their latest project, PyIPMI is a pure Python-based IPMI client program inspired by a widely used open source IPMI client program called ipmitool that is a Linux CLI utility. Developed in the C programming language, PyIPMI consists of two major parts: an implementation of classic ipmitool functions and a user-friendly interface to assist the development of automated test scripts.
“PyIPMI is an important piece of test automation,” says Au, “not only does it accelerate the development of auto tests, but it largely improves the efficiency of the tests themselves. It implies shorter development as well as deployment time to both Hyve and our customers.”
Despite the ubiquity of IPMI commands in server management, the test tools themselves are based on technology that is nearly two decades old. For example, Intel’s ICTS was written in and only runs on Windows. But, most of the modern test environments for servers are in Linux. And TCL, Tool Control Language, was a hardware development language that very few firmware engineers are proficient in. The other alternative, using ipmitool commands in BASH or Python scripts, brings significant performance penalty. Janny wanted to do something about this, and led from the front. “I happened to find that Python provides cryptography libraries that meet the encryption requirements of the protocol, without direct help from extra C libraries,” explains Au. “This is the reason why I decided to start writing PyIPMI by myself. Additionally, because Hyve decided to open source PyIPMI, we contribute back to the community and benefit our customers and other firmware developers who want to develop their own test automation.”
At Hyve Solutions, projects like these are not unusual. We pride ourselves on collaboration and innovation and celebrate leaders like Au for their drive. “The company gives a lot of flexibility to the engineers,” says Au, “so that we can freely survey and figure out possible solutions to problems.”
To view and learn more about PyIPMI, you can visit Hyve’s GitHub.