During my co-op at Codonics, I have been heavily involved in implementing wireless and networking support for Safe Label System, a medical device used in Operating Rooms to help reduce the number of medical mistakes in syringe labeling.
During my second co-op at Codonics, my responsibilities were focused on software development; creating new features that were required in order stabilize and market the Safe Label System. Sometimes I was given a very specific set of requested features, and asked to implement them exactly as specified. Other times, I was given room to prototype possible solutions to common requests, and design a solution that would meet customer needs in a safe and effective way. My role as a software engineer began to extend into product development, where I was designing new features without specific requirements, trying to find ways in which I could improve the existing system.
Near the end of my second co-op I began to help setup the SLS System at various hospitals across the United States. I worked with Massachusetts General Hospital, Porter Medical Center, Northbay Medical Center, and St. Vincent Charity Medical Center to install the Codonics Safe Label System at their sites. In all cases, I was responsible for diagnosing any problems during the setup, including wireless connectivity, network setup, and email alerts. I had to think on my feet when issues arose during these installs, because I had no way of changing any code if a defect was found. I was responsible for ensuring the success of the technical part of the installation. In some case, I was flown to the site, or participated in conference calls with IT Administrators.
My co-op at Codonics has helped to hone my skills in programming, as well as understand advanced concepts like multi-threaded applications and wireless networking protocols. By writing the networking code for the SLS in Java, I have gained a lot of knowledge of how wireless networks work, can be configured, and optimized. I have spent many hours testing wireless devices, building drivers, and setting up various server configurations to test various types of wireless networks. By designing the networking code in Java, I became familiar with how the underlying Linux OS works with networking, and since then I have began thinking of how it could be improved. I even started my own open source project that communicates with the Linux kernel at a very low level in order to get information about existing network connections, and relay that information to Java through a Java Native Interface.
During the times that I was on site at various hospitals, I improved my communication skills by talking with nurses, doctors, and IT administrations about their needs and existing network infrastructure. This allowed me to improve my communication skills with non-engineers, who may not understand some of the technical lingo used by engineers. The ability to communicate effectively is not a skill that is easily learned in a classroom environment, so my experience at Codonics has been very valuable.
My co-op at Codonics has helped me to develop many skills related to Computer and Software Engineering. I have spent much of time developing new software features that have helped to fuel sales of a medical product that has the capability to save lives in hospitals across the world. There is a lot more to being a software developer than just writing code. It’s important to go out in the real world to meet your customers; getting to know the customer will help you define new features for your product that will continue to make it relevant in your industry.
Continual improvement of the Safe Label System will benefit not only the customer, but the nurses and patients as well. Establishing relationships with customers helps to gain their feedback about what features work well, and which ones need reconsidered. It’s a continual feedback process that develops and matures the product over many cycles. The software must be designed in a way that is atheistically pleasing, easy to use, and efficient. Sometimes decision revolving around the UI can take several weeks or even months, but it is important to choose the best option for customers.
My co-op has allowed me to apply many courses to real-world applications. My Advanced Game Design course gave me a deeper understanding of the Java language, which improved my ability to write code for the Safe Label System. I have become very proficient in Java, and I hope to continue that skill into creating mobile applications for Android. Additionally, my Operating Systems course helped to me to understand the complications that can arise in multi-threaded applications. This knowledge helped me to write performance enhancement and fix bugs relating to concurrency.
I am excited to be returning back to school to complete my Bachelors degree. My current plans are to continue one extra semester to obtain a Masters degree as well. My co-op at Codonics has helped give me an idea of what software engineering is like, and I will be excited to obtain a full-time position in software when I have completed my schoolwork. My co-op has shown to me that I am well adept in a field that I enjoy very much. I look forward to the completion of my studies at Case Western, and I am confident I will be ready to work as a software engineer upon graduation.