Details: C++
Skill Type: Secondary skill
Years Experience: 4 years
Level: 5/10
My work in C/C++ for CADlink was part of a very large project on one of the company’s main products. The product is called Virtual Print Manager (VPM), and it is essentially a glorified print queue. What I was responsible for was adding printer functionality for several devices to the software. After receiving various data such as height, resolution, crop/cut and possible image alterations from VPM via a postscript driver, this information was used to set up certain options and properties to supply along with the image data to the printer (sometimes but not always through a DLL supplied by the printer manufacturer). Working on this project required me to study the pre-existing program's dataflow to determine how the data is accepted and used in order to be able to deliver the data properly to the new device I was adding functionality to. Adding functionality to VPM for a certain printer would allow a user to print via USB, TCP/IP, etc, even print data to a file for manual inspection and debugging problems with both the postscript driver and the newly added port in the program, which proved to be a very handy feature. I also received experience writing postscript drivers for several devices. My work for ESM in C/C++ was entirely in writing code for additional features or changes within an already existing product called Kool Karaoke. This involved preparing technical diagrams to the project manager for him to examine and give the go-ahead to implement the new feature. Other times, I was to implement a new feature based on pre-existing technical diagrams that were given to me. Much of this process was the same as I more recently used at CADlink - the study of preexisting code to learn dataflow, and understanding of the programs core, and finally an implementation of the required feature. This was for various tasks such as applying different types of reverb and other effects to the users voice, altering volume, key and tempo of the song, etc.