Post Job Free
Sign in

Engineer Medical

Location:
Santa Clara, CA, 95050
Posted:
May 11, 2010

Contact this candidate

Resume:

Dhananjay Joshi

**** ******* ****** *** ***. Santa Clara CA 95050. Phone 716-***-****.

Email: *******@*****.***

Summary

. More than 6 years experience in developing interactive and real-time

desktop applications

. Proven track record of getting things done on time. Versatile programming

background.

. Systematic approach to problem solving. Reuse existing solutions.

Innovate if necessary.

. Able to rapidly contribute to a software project already in an advanced

stage

Objective

Seeking a Lead or Senior role in software development where my extensive

experience in desktop application development can be leveraged effectively

Tools and Technologies

Paradigms OOP, Multi-Threading, Multi-Core

Languages C#, .NET, C++, STL, XML

3D Graphics OpenGL, DirectX

UI WPF, MFC

Database SQL, Access, DAO

Scientific FEM, Robotics, CV, Encryption,

Peripherals USB, PCI, Serial

Installers Installshield, MSI

Tools Subversion, Trac, UML

OS Windows, Linux

Scripting VBScript, Python

Experience

Lead SW Engineer Immersion Corp, San Jose, CA 6/2009 - Present

. Successfully led the localization of three applications into three

additional languages each. Each application had multiple gigabytes of

video content. I designed and developed the pipeline for the translation

using a combination of an open source sub-texting program and VBScript

and Batch files for automation

. Spearheaded the development of the UI utilizing WPF and the latest UX

guidelines. The main challenge was tracking features in real-time video

stream and augmenting it with additional information overlay. Following

the principles of separation in WPF, the UI was predominantly Data-

Binding driven. Extended the rendering of certain controls using High

Level DirectX Shading.

Simulation SW Engineer Immersion Medical, 7/2006- 6/2009

Gaithersburg, MD

. Integrated various PCI, USB and Serial peripherals for user inputs in

medical simulator. Utilized a device-abstraction layer to address various

devices in a consistent fashion. Also designed various control system

algorithms like PID and friction compensation for improving the user

experience of the hardware peripherals.

. Implemented various algorithms like FEM and geometric collision detection

for virtual object dynamics. Using a mathematical model to approximate

the physical behavior of various objects, the algorithms were used to

simulate a realistic behavior in the simulator.

. Designed key components of the C#.NET front-end for the core simulation

engine written in native C++.

Virtual Environment Immersion Medical, 9/2003 - 7/2006

Programmer Gaithersburg, MD

. Developed photo-realistic effects for medical simulators. These effects

added a visual realism eliciting a 'wow' response from users. The bubbles

effect, simulating the air bubbles in fluids, was implemented using a

vertex shader and register combiner. The bleeding effect, to simulate

internal bleeding in the body, was developed using a simplified navier-

stokes solver for interactive behavior.

. Reduced the compilation time of application software from twenty minutes

to less than five minutes by using pre-compiled headers effectively. This

substantially saved developer time. Also setup the solution to use static

linking yielding significant more savings in developer idle time.

. Automated the build process for application software and deployment

packages, using a combination of Visual Build, Batch Scripting and VB

Scripting. Essentially the tool-set downloads the code from the source

repository on an integration machine. Builds the software with all the

resources and then creates the deployment packages as well as writes the

packages to media. The tool-set is used with all the software products at

company.

Graduate Research VR Lab, SUNY at Buffalo 9/2000 - 9/2003

Assistant

. Performed fundamental research in the field of Haptics. Created a

framework for communication of tactile sensation for remote re-

experience. The communication packages were tunneled through a TCP-IP

pipe to the client.

. Identified the protocol of a RS232 device using a serial port packet

sniffer. Then re-created the protocol using Win32 library to communicate

with device.

Highlight Projects

Endovascular Simulation

. Wrote the framework to duplicate the state of the simulation solver using

copy-construction. This elegant solution allowed extension of the solver

code with minimal side-effects to existing

. Devised a method to identify the location of the virtual objects in the

simulated world by tagging certain items with relevant metadata. This

method allowed representing the behavior expected in terms of the

metadata.

. Implemented a method to setup break points programmatically. Used a

memory-mapped file to enable IPC between two applications.

Application Database

. Wrote C++ library to allow easy collection of run-time evaluation

information from components distributed throughout the code base. The C++

Library stores the information in a SQL database. The values are then

queried by the C# front-end and presented as HTML.

Desktop Video Capture

. Implemented video capture of simulation run by copying frames from the

OpenGL frame buffer. The frames are compressed to AVI using MPEG4 codec.

Future Simulation Architecture

. Designed and developed a proof of concept C++ architecture ready for

multi-core processors.

. Harnessed thread-pool, CPU affinity and task phase concept for

concurrency of processing

Hardware Emulator

. Using a device abstraction layer, implemented a device emulator using

Windows Dialog Box controls. Buttons were used to simulate analog buttons

and sliders were used to simulate analog hardware channels. The dialog

boxes were completely script driven using Dialog Templates

. Extended the emulation of input devices to use completely virtual devices

using string commands

Interactive USB Peripheral

. Integrated embedded microcontroller DAQ board communicating with the Host

PC. The DAQ board communicates using Isochronous USB. Wrote Command-

Response architecture that abstracts the actual byte-wise communication

with device.

Service-Mediated USB Peripheral

. Integrated embedded microcontroller DAQ board communicating with the Host

PC. The DAQ board communicates using USB-UART. Implemented UART using

generic Bulk USB protocol. Also created a Windows service that performs

device handshaking and communication.

Pseudo-XML Editor Application

. Created an editor application for proprietary pseudo-xml configuration

files. The application uses a .NET Tree control and panel to allow

editing the configuration files.

FullSolutionPath -VS Addin

. Wrote Add-In for visual studio allows the display of the full solution

path of the solution being worked on currently. This is very useful when

you are working on multiple solutions with the same name, as might happen

when working with branches.

Windows-RAWINPUT

. Created a library that intercepts the RAWINPUT messages of desktop mice.

This allows the use of 2 mouse input devices.

Module Deployment Framework

. Developed an internet ready MSI based framework for module deployment.

The dependencies between various modules are specified and processed

using a client application.

Qualification

Master of Science, Courses: Computer Graphics, High

Systems And Design Performance Computing, Finite Element

Engineering Analysis, Digital Control Systems,

University at Buffalo, June Virtual Reality Systems. Numerical

2003 Methods. Kinematics. Mechanics. Machine

GPA: 3.66 Design

Honors and Achievements

. 'Best Technical Paper' award at the 2003 ASME IMECE Conference

. Multiple US and European filed patents



Contact this candidate