|
|
|
|
Designed, developed, and maintained multiple features of a medical imaging system in areas of
Image Review, Image Processing, and DirectShow filters.
|
|
|
Improved product stability using advanced debugging techniques and tools.
Used various tools to find and eliminate hard-to-find memory leaks.
Used Windows Debugger to find and eliminate memory corruption problems.
|
|
|
Improved performance of an image processing library by modifying algorithms
to use the OpenMP library to take the advantage of parallel
processing on the latest multi-core processors.
|
|
|
Designed and implemented an Image Processing Isolation Layer
(IPIL) subsystem to provide a uniform application interface to various
image processing pipelines on different Siemens products. Based on
DirectShow, Component Object Model (COM), and client-server frameworks. |
|
|
Prototyped DirectX and OpenGL vertex and pixel shaders
for use in the processing of medical images. |
|
|
Lead a three person team responsible for maintaing and enhancing
the Quantification subsystem in the Axiom Artis angiographic system. |
|
|
Responsible for providing quick solutions to software problems found in the field
and tasked with improving the reliability and stability of the Axiom Artis angiographic system
as a member of the Reliability Team. |
|
|
Designed and implemented an image display subsystem based on
OpenGL and DirectX for a medical image viewer. As a part of the
same project, implemented an application for testing the image
post-processing subsystem and the image display subsystem. |
|
|
Designed and implemented an interface between the Axiom Artis
angiographic system and the Axiom Sensis electro-physiological
monitoring station. Travelled to Germany to integrate and test the
interface. |
|
|
Designed and implemented an interface between the Axiom Artis
angiographic system and a Magnetic Navigation System, Niobe.
Travelled to Germany to integrate and test the interface. |
|
|
Responsible for maintaining and enhancing the Image
Directories subsystem in the Axiom Artis angiographic system.
|
|
|
Travelled frequently to Germany to provide support and analyze software bugs found
during intergration testing. |
|
|
|
|
|
|
Designed and implemented several subsystems of a client
software in a proprietary client-server system. The client
accepted multi-modal user input (voice and keypad), transmitted it
to the server, and rendered multi-media output (speech, text,
graphics). Responsible for the following subsystems: Audio
Manager, Button Manager, Configuration Manager, Connection
Manager, and System Logger, as well as some utility classes common
to both the client and server software. The client was implemented
in C++ for Windows CE running on a PocketPC device. |
|
|
Added support for the Spanish language to the client software.
|
|
|
Designed and implemented a client configuration program. The
program allowed developers to modify several parameters such as
the server name and port, the logging level, connection time-outs,
device ID, UI language, and others. The parameters were saved in
the Windows CE registry. Implemented in C++. |
|
|
Implemented a test server for continuous stress testing of the
client software. The test server accepted scripts, thus allowing
developers to create custom, reproducible test cases. The software
was written portably, such that it could run on both Windows 2000
and Solaris. |
|
|
Ported a prototype client from Windows 2000 to Windows CE.
During porting, adapted the user interface to fit a handheld
device. |
|
|
|
|
|
|
Designed and implemented a driver for a multi-function image
processing board, known as a Quad-DSP (QDSP) board. The driver
supported up to six QDSP boards in a system. It offered a simple
interface to the underlying functionality provided by each
Quad-DSP board. A user of the driver supplied memory addresses of
input and output X-ray images, configured image-processing
algorithms, and initiated DMA transfers to and from the board. The
driver was implemented in C++ for the VRTX real-time operating
system. |
|
|
Designed and implemented DSP software for the QDSP board
performing a function of display conditioning. Implemented image
processing algorithms that included image scaling, pixel-depth
reduction, and optimal pixel shift search. Also implemented a
simple scheduler to handle interrupts received by the DSP chips
and to spawn image-processing tasks. The software was written in C
for TMS320C62x processor. |
|
|
Designed and implemented various hardware diagnostics and
debugging tests for the QDSP board. The tests verified board's
hardware subsystems such as the Direct Memory Access (DMA) engine,
interrupts, and inter-processor communication. Implemented in C
and C++. |
|
|
|
|
|
|
Participated in an object-oriented design and implementation
of real-time software for the company's Multi-user Digital
Subscriber Line (MDSL) line card. The line card allowed phone
companies to carry multiple voice phone lines over a single copper
wire. Software design utilized the Object Modeling Technique
(OMT). Implemented in C. Responsible for design of a hierarchy of
about 15 classes. |
|
|
Designed and implemented a debug Java application for the
company's Multi- Drop Digital Line (MDDL) card. The application
was used for communicating with an embedded Intel 8051 processor
through an RS/232 serial port. The application ran on Windows and
Solaris platforms. On Windows, it used the Java Native Interface
(JNI) to communicate with a serial port driver DLL. |
|
|
Designed and implemented software for an 8051 micro-controller
for processing of telephone signaling information in a multi-line
digital telephone system. Software included an interface with a
Field Programmable Gate Array (FPGA); an interface with a
microprocessor; messaging software utilizing an on-board serial
port; interrupt handlers. Portions of the software were reused
from previous projects. |
|
|
Designed and implemented a FLASH memory programmer (flasher)
for the MDSL line card. It consisted of a flasher module running
on a Motorola processor and a TCL/Expect script running on a SUN
workstation. The Expect script communicated with the flasher
through an RS/232 serial port. |
|
|
Built a simple frequency spectrum analyzer using a Motorola
DSP56301 PCI development board and a personal computer. As part of
the project, wrote a Linux driver for the interface between the
PCI board and a PC; wrote software in assembly for acquisition and
processing of digital signals for the DSP56301; wrote a data
plotting application in Tcl/Tk and Expect for the PC. |
|
|
Developed an automated testing script in TCL/Expect for the
MDSL line card. The script issued various testing commands through
an RS/232 serial port and, based on their results, performed
certain actions. |
|
|
Designed and implemented wrapper Perl and Shell scripts for
the PVCS version control system. The scripts provided additional
functionality required by the engineering team and missing from
PVCS. |