Master's Profile: John McCrone
Current Position: Software Engineer at IBM (Durham, North Carolina)
Undergraduate: Physics, U.S. Military Academy at West Point
Duke ECE Path: Master of Science (MS) – Project Path, 2015
What work do you do?
I work at IBM in Websphere Datapower Level 3 Support. Primarily, I identify and fix bugs in the network appliance firmware source code in areas of stability, performance, functionality, and usability based on support requests from both domestic and global enterprise customers and work closely with those customers to ensure product satisfaction. I write software fixes mostly in C++ running in a Linux environment. In addition, I examine network packet captures, error reports, logs, and backtraces for clues about the root cause of failures and write programs to assist with examining the data. I also develop complex recreate scenarios including simulating the responses of other devices on the network, and I assist with development of new product features designed to provide more information in troubleshooting and improve the reliability, availability, and serviceability of the product.
How did your time at Duke prepare you for your current job?
While a Duke, I was able to gain exposure to a lot of different areas of computer engineering. It gave me the time to realize that I actually enjoyed the software side of the field more than the hardware side, which was surprising to me given my background in physics. I also felt like most of the classes that I took had an application driven project rather than necessarily being fully focused on research, which I thought was very helpful, given that I wanted to work in industry.
What was the most valuable part of your Duke experience?
The professors and their willingness to work on projects outside the scope of class were the most valuable parts of my educational experience. Particularly, my master's project exposed me to a lot of different things in a project of much larger depth than I would have been exposed to if all I had done was normal course work. Although it was very frustrating at times, I thought it was a great experience and would recommend it as a good option to get even more knowledge and practice out of the degree.
Tell us about your master's project.
I worked on a project with Dr. Drew Hilton which involved taking an open source, pipelined processor core (OR1200) and modifying the source Verilog to make the core superscalar (able to execute more than one instruction per clock cycle). I also was able to install the design on an FPGA, boot Linux, and run some of the SPEC CPU2006 benchmarks to measure the performance increase. The project took almost a year to complete, but I felt that going through the whole process helped greatly prepare me for the workforce. Even though it was a hardware project, I was able to learn a lot of skills that I am current using as a software engineer including a much stronger understanding of Linux and Linux administration, Bash scripting, using Git as source control, working within the open source community, examining assembly to determine exactly what is failing when working in C/C++, debugging hard to understand problems, and computer architecture concepts.
What were the most useful classes that you took?
To me, the most useful classes were the ones that gave me programming experience, particularly ECE 551 and 550. I had almost no programming experience prior to 551, and that class brought me to significant level of understanding of C and C++ in particular, as well as programming in general including object-oriented programming. The other classes that I took gave me a broader understanding of a computer all the way from the semiconductor level to the systems level, and taught me a lot as well.
What advice would you give to someone considering master's study in ECE at Duke?
Duke is a great place to get your master's degree in computer engineering, especially if you are in a similar situation to me where your undergraduate degree is in a field other than ECE. The program is setup to accommodate this. Even if you do have that background, Duke has a great set of faculty which will allow you to quickly expand your knowledge in your particular ECE focus area. Either way, I think you should strongly consider the program.