Please state your purpose in applying for graduate study, your particular area of specialization within the major field, and any additional information that may aid the selection committee in evaluating your preparation and potential for graduate study at UCSD.
What, exactly, is middleware? According to Level8 Systems, the term refers to any programming which serves to “glue together” two separate programs—localized or distributed. I like to think that the word also embodies my abilities as a software “glue” engineer in the field of embedded systems, and illustrates my capacity to tackle two fields at once.
For many people, imagining their career and contributions five to ten years from college is a daunting task. I have never hesitated to make projections, yet — since graduating from Cal Poly with a BSEE degree — my path has taken an interesting, and somewhat unexpected, direction: from hardware to software. Because of my background in electronic engineering and my participation in both the Cal Poly Pomona Solar Energy Team racecar project and the development of simulation software, I was offered a position as system test engineer by the U.S. Naval Research, Development, Test, and Evaluation command. The position introduced me to various engineering disciplines, including modeling and simulation, software systems engineering, real-time performance analysis, and communication (LAN, WAN, wireless) systems.
After a few years, the exposure strengthened my resolve to specialize in embedded software development. Initially, the transition to software engineer was challenging. Despite my lack of formal training in computer science, I enrolled in courses at UCSD Extension to study languages like C and C++. With the skills I acquired from the courses and self-teaching materials, I accepted a position as software engineer on a project called the Battle Force Tactical Training (BFTT) System. The project’s main goal was to provide a common synthetic environment to the various ships’ on-board trainer (OBT) systems and shore site training centers using the Distributive Interactive Simulation (DIS) protocol (IEEE 1278.1). Since our prime directive was to use commercial off-the-shelf technology, we selected the VMEbus architecture and the VxWorks real-time operating system. My task was to develop software on a VME board, which interfaced with each OBT system and the synthetic environment network—LAN and WAN. The software provided the following functions:
1) It received real-time high fidelity track information from each different OBT,
2) It translated the data into the DIS Protocol Data Units (PDUs),
3) It distributed the PDUs to all nodes on the networks,
4) It synchronized and modeled the PDUs at each site in a course database, and
5) It translated the PDU information into OBT specific data messages.
With the successful deployment of the distributive training system, BFTT, I am currently involved with a new project, the Distributive Engineering Plant (DEP). DEP is in the process of connecting Command, Control, Communication, and Intelligence (C4I) land base test sites from around the country for total ship test events—T&E and Verification, Validation, and Accreditation (VV&A). My responsibility lies in the design and development of the Common Scenario Common Environment (CSCE) simulation, which will stimulate the whole spectrum of a ship’s C4I systems in a coordinated synthetic environment. One aspect of the design is the use of TAO, Real-Time CORBA from University of Washington at St. Louis, as the communication infrastructure for object distribution between the embedded computers.
This type of middleware, as well as other technologies unheard of in embedded systems just a few years ago, will become more prevalent in the future. As an engineer catching a glimpse of the future and its technological possibilities, I am eager to continue my involvement in this field.
Specializing in distributive simulation and real-time embedded systems, I have come to realize that working with embedded systems demands comprehensive knowledge of both hardware and software. Designing drivers and application software requires attention to detail with respect to the hardware devices (DSP, PLD, Flash Memory), buses (VME, PCI), and network interfaces (Ethernet, FDDI, ATM). The current trend in embedded systems is system-on-a-chip (SOC) implementations, which can incorporate microprocessor cores (ARM, MIPS), memory (DRAM, SRAM), peripherals (USB), DSP cores, communication protocol stacks (TCP/IP), and applications (MPEG).
Thinking about hardware and software as mutually exclusive is a thing of the past. The convergence of these two aspects will present both opportunities and challenges for embedded software engineers to “glue” together new technologies, and only those willing to educate themselves and to use this cutting-edge technology will benefit from it. I believe that my ability to learn quickly and to switch fields — evident from my transition to software engineering — will allow me to approach these developments with creative and rigorous thinking. I plan to focus my graduate studies in Electronic Circuits and Systems, but I will also be taking courses in Communication and Signal Analysis as part of the breath requirements. UCSD’s Master of Engineering program will provide me with the perfect chance to study new concepts and remain in a working environment, while participating in the university’s vibrant community. I can think of no better way to build on my professional and academic experiences than pursuing the program’s demanding and innovative course of studies.