Early in my career I pivoted to software development. Here is a brief overview of the type of projects I've worked on.
At Emulex, I worked on many internal tools for programing and verifying our Fibre Channel and Ethernet host bus adapter (HBAs).
I worked as the lead developer on an internal tool called cScope. cScope is used by the hardware team to test HBAs by running traffic over a loopback and measuring and graphing resulting error rates.
The interface is written in Python using WX Widgets. The interface talks to the hardware over a Windows driver (written in C), or over SSH to a Raspberry Pi using JTAG connection to the HBA.
One task I inherited was assisting Program Managers (PMs) to create Vital Product Data (VPD) templates for manufacturing. This involved getting requests from the customers, understanding the customer's proprietary format for this data, creating a binary template file, and finally generating instructions for the manufacturing team on how to populate the template during production. I took the initiative to move this process from being done by hand to being completed using a web-based utility. The utility had all the proprietary formats for each customer programmed in and presented a graphical user interface which generated the requisite instructions and template file.
Once developed, it became integrated into the product workflow, and was able to be used by the PMs directly, eliminating the need for an engineering resource to handle the VPD templating.
At BlueCoat I work closely with the hardware team to create diagnostic tools for their secure appliances (Such as the S410 and S620). These diagnostics are used in the factory to validate that the appliances work properly, and a slimmed down version of the diagnostics is shipped with the units that the customers can boot to and use.
The diagnostic interface is a command-line C++ based tool that reads and exercises the hardware. Some supporting functions are written in Python and Bash. The tool and requisite drivers are packaged in a minimal, bootable Linux image.
In addition to software I've worked on professionally, I enjoy recreational programming. Recently, this has mostly been creating small novelties in Javascript for my children to play with. You can peruse these apps here.
I also enjoy exploring different programming languages by solving problems at Project Euler. These languages include C, Python, Java, Rust, Swift, Perl, etc. All my solutions are available on my github page, along with my various Javascript projects mentioned above.
© 2007-2024 Michael Caldwell