Jacek Broda
1005 Buccaneer Drive (847) 220-7099
Schaumburg, IL 60173 jacek_b@yahoo.com
 

OBJECTIVE
To obtain a full-time or contract position as a software engineer in a fast-paced and technically challenging environment.
TECHNICAL PROFICIENCIES
Programming Languages C, C++, Java, Perl, C#, Tcl/Tk, Expect, DSP Assembly, 8051 Assembly, PHP, and Unix shells
Operating Systems Windows XP, Windows CE, VRTX, Nucleus OS, Linux, and Solaris
Programming Interfaces DirectShow, DirectX, DSTL, OpenGL, OpenMP, MFC, COM, ATL, .Net
PROFESSIONAL EXPERIENCE
Siemens Medical Solutions USA, Inc., Hoffman Estates, IL
Position: Staff Software Engineer
10/2001 - present

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.


Auvo Technologies, Inc., Itasca, IL
Position: Senior Software Engineer
09/2000 - 09/2001

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.


Siemens Medical Systems, Inc., Hoffman Estates, IL
Position: Senior Software Engineer
01/1999 - 09/2000

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++.


Charles Industries, Ltd., Rolling Meadows, IL
Position: Member Technical Team - Software Design
05/1996 - 12/1998

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.
EDUCATION
Illinois Institute of Technology, M.S. in Electrical Engineering, May 2001
Illinois Institute of Technology, B.S. in Computer Science, May 1996
REFERENCES
References available upon request.