My previous job was as a software engineer for Siemens Information and Communication Networks. I was laid off after the product that I was assigned to was shelved. My job at Siemens was to develop software for our telephony access product. This switch was called "Accession" and was Siemens' next generation access product, incorporating POTS (Plain Old Telephone System), ADSL (Asynchronous Digital Subscriber Loop), and SONET (Synchronous Optical NETwork) interfaces. The Accession could be configured to have almost any combination of the above cards, making it a very flexible solution for network providers.
My main responsibility was developing software for this switch. It ran on a PowerPC processor with the embedded real time operating system, VxWorks. Our application coordinated and configured the hardware to allow the customer to route traffic hither and yon. Most of the applications were simple C applications using a custom framework. Some applications required me to access the hardware directly.
I also helped to develop software that was not run on the Accession. I developed a tool used by the other engineers to keep track of alarms and messages that the Accession would send to the customers. These alarms were entered in through an Access form and stored in an Access database file. My program would then read the entries out of the database file, create documentation from the entries in a HTML file and store the entry in a binary file which was linked to the Accession's applications. I helped the sales team by developing applications in Microsoft Excel (using Visual Basic for Applications) that allowed the salesman to compute accurate reliability and traffic models for the customer's desired configuration.
Before that, I worked for Ener1 Inc (formerly Inprimis which was formerly Boca Research) as a software engineer, although I found myself performing many duties besides writing programs. While at Ener1, I was responsible for (among other things) the platforms that were used to test their product, which was mostly small computers created for niche markets. I developed test platforms using a blend of off-the-shelf components and custom hardware and our own software to drive everything. I worked on manufacturing problems and assisted the manufacturing staff in identifying failures. I worked with customers who were experiencing troubles with our equipment in the field. I inspected components from alternate vendors and tracked down components that were needed by the design staff.
I also helped the design engineers by developing custom software to help them test ideas or verify that the design and components were correctly coneected. This experience with hardware and software allowed me to move into device driver development.
I helped the company develop a device driver for an ADSL card that was being incorporated into one of their products. This driver was for the VxWorks operating system. We were given the source code for a Windows driver and we used that to learn how the card behaved in a system. Windows and VxWorks drivers are somewhat different, so it wasn't a simple copy and paste.
All of these experiences make me a very effective developer. If you have some code you want developed, I can probably get it done. Maybe it is linking your old inventory system into a modern internet system. Perhaps you have some equipment, but the software doesn't work on your current operating system. Whatever your problem, I can probably fix it. Take a look at my resume'.