We provide IT Staff Augmentation Services!

Senior Software Engineer Resume

Foster City, CA

SUMMARY

  • c, c++, c# dot net, visual c++, mfc, win32sdk, com.
  • 3D geometry, computer graphics, CAD, PDM, PLM, Medical imaging, DICOM.
  • Bachelor's degree in Engineering
  • Software product Application Development
  • IBM trained and certified software professional
  • 11+ years of Driving projects right from inception through maintenance
  • Creating WBS, LOE, Project tracking, risk mitigation, Agile/scrum.
  • Co-ordinating cross team efforts for projects and helping team members on it.

TECHNICAL SKILLS:

Languages : C, C++, Visual C++, win32-SDK, MFC, COM,
C sharp dot net, Winforms.
Operating Systems : Microsoft Windows
Debugging : Visual Studio debugger, WinDBG, Debug-Diag
IDEs and other tools : Microsoft Visual Studio, Team Foundation Server,
Perforce, Subversion Tortoise, Netmon, Process Monitor.
Libraries and APIs : Parasolid CAD APIs, SolidEdge, CAD / PDM / PLM,
Windows Shell API, Windows Crypto APIs,
3D geometry, Computer Graphics, Medical Imaging,
Philips PACS APIs, ACE, GE IDX.
Collaboration Technology : Microsoft SharePoint.
Domain Specialization : CAD / PDM / PLM - Teamcenter, PACS, Dicom, HL7.
Miscellaneous : Extreme programming, Pair programming, Scrum methodology, Client - server architecture.

EDUCATION

  • Bachelor of Mechanical Engineering
  • Diploma in Software application development from IBM ACE {Authorized center for Education}

EXPERIENCE

Confidential, Foster City CA Jan 2008 to Present
Senior Software Engineer

Working with a PACS that is the leading enterprise-wide medical image and information management system on the market today. It is an innovative image and information management system that delivers on-demand diagnostic-quality images over existing hospital networks, and advanced radiology reading stations for radiologists.

Responsibilities
I worked here as senior software engineer, and was into all the development activities as in the software development life cycle of the iSite PACS product. It was client-server architecture. The communication would use WCF services that were consumed by the clients. This is an FDA regulated environment. It involves working with the programming skills as well as interaction with
the various standards in the domain of Medical Imaging, Radiology, Mammography, Cardiology, and more { DICOM files }.

  • Worked with the problems third party vendors face when they use the automation APIs of iSite and resolving these issues. Enhanced existing Automation Interfaces and APIs in COM to perform additional new tasks. This involves interaction with COM automation, the IDispatch, OleControls, modifying the classes deriving from these interfaces, dealing with memory issues - pure virtual destructors, callback functions for specific tasks. All tasks did have various c++ implementations for encapsulation, inheritance and polymorphism.
  • Worked with the functionality to display images in the proprietary display protocols of Philips iSite. They allow the radiologists to set up the image viewing in a preferred layout across multiple monitors. Did enhancements / corrections to this sub-systems by adding new classes, saving the preferences as system or machine preferences to the server, adding registered windows messages for handling various events.
  • Working with Dicom Tags and their interpretation and translation into appropriate metadata.
  • Usage of this metadata for display in views, feeding other workflows to execute the
    commands. Modified the functions involved to account for the new parameters /
    functionality.
  • Usage of various Dicom toolkits for purposes like uploading Dicom files to servers, testing validity of a Dicom file, testing a Dicom file with other standard Dicom viewers, adding images to a suite.
  • Pixel padding of image files to make them Dicom compliant.
  • Worked with windows crypto APIs to implement data security when storing the data on media like writing CDs. Worked with windows SDK APIs to implement data security [Crypto API] when storing the data on storage media. The MD5 algorithm was used in the new API.
  • Worked to fix multiple time zone issues. This involves correctness with the values of date and time for every event in the medical workflow like scheduling of an exam, imaging, reading, reports, documentation, history, and audit data. The software was enhanced to have a correct value of date and time irrespective of any and all of the above events happening in the same or different time zones, with differing time offsets and daylight savings all over the world. Used Windows API GetTimeZoneInformation(), to get the timezone details, convert from GMT to Local - SystemTimetoTzSpecificLocalTime(), and vice versa, and customized the results to account for details on HH:MM:SS:FRAC. The C# API does the conversions without much customization. A part of the change was implemented common component and was available for use to both the server and the client systems.
  • Worked on SSL communication issues. Unit tested using packet sniffer tools like Netmon.
  • Used visual studio debugger to step through the code and makes fixes to the unsecure calls
    And changes them to secure one using "https://../..".
  • Worked to ensure feature compatibility in various versions of iSite PACS GUI clients.
  • Identified feature gaps between two different product lines. Did an analysis of the workflows in the two separate product lines. Did a codeflow and function stack analysis comparing the differences in the two product lines. Wrote SQL queries for the old and new databases and fetched data dumps for both the product lines. Processed the details collected, through the Feature specification definition. Created and implemented projects to bridge these gap features in the features. This involved use of VC++, mfc classes and messaging, and win32.
    Used STL containers like lists, maps, vectors as per need.
  • Did project co-ordination, project tracking, towards a quality initiative project for creating System Requirement specifications. The existing functional components in the software product were reverse-engineered and an analysis was carried out to document their design, functionality, and desired purpose. Drove the task through technical analysis, project meetings with members from marketing, quality assurance, engineering, Quality and regulatory, third party interfacing, and getting all to arrive at a consensus over various issues.

Environment: C++, VC++, Win32 SDK, MFC, COM, C# Dot Net, Winforms, DICOM, HL7

Confidential, Nov 2003 - Aug 2007
Sr. Programmer Analyst

Solid Edge:
Solid Edge is a powerful 3D CAD software that helps manufacturing companies to rapidly design products like cutting tools, plastic moulds, products, assemblies and much more. The product implements computer graphics, geometric modeling and PDM integration.

Insight Connect:
Insight Connect is an innovative PDM solution that seamlessly integrates CAD, design management and web-based collaboration into a single tool. Insight is a mid-tier PDM that provides the fundamental capabilities to successfully manage design data. It is based upon Microsoft's SharePoint Technology. It is used to implement various workflows in the manufacturing industry.

Teamcenter integration:
Teamcenter integration is like a bridge for SolidEdge and Teamcenter (PLM). Teamcenter is a Product Lifecycle Management solution. This task acts as a communication layer and facilitates products created using Solid Edge to exploit all the benefits of Teamcenter's world-class PLM capabilities.

Responsibilities:

  • Involved in design of new functional modules as per requirements. Created software requirement specification documents for the components in question, reviewed them. Detailed the component design.
  • Responsible for coding of modules, bug fixing and maintaining existing functionalities. Implemented the components through object oriented technology tenets like encapsulation, inheritance, polymorphism, Dlls, exe's. Used a wide range of VC++'s MFC classes for GUI related works, like dialogs, toolbars, controls, event listeners for geometric views, displaying huge displays{CAD models}, debugging, exception handling and more. Added SDK Callback functions, and window procedures to address these callbacks for specific workflows.
  • Involved in analysis of past defects, competitive evaluation, leading to suggestion of new functionality to planners, Used using visual studio debugger tools, created and analyzed log files.
  • Automation API enhancements - Worked in Automation technology using VC++ : COM in order to help third party applications to use specialized CAD API's. Added new automation API for additional requirements. Did this by adding the API definition to the Interface derived from IDispatch, the classes, and implemented it in the class hierarchy. This is done through COM Objects. Documented these enhancements and delegated them to be added to the help system of the CAD product.
  • SharePoint - Document Management: Handled Synchronization of Custom Document properties in Teamcenter and SharePoint servers through Solid Edge. Added document properties like author, date of geometry creation, date edited, geometry modification date, to the document's storage properties{IStorage Interface - COM} before the document is saved to the document repository in SharePoint or Teamcenter. Check if this is a new document, if yes upload the copy to SharePoint, else check out the existing document and modify its properties. The IStorage interface supports the creation and management of structured storage objects.
  • Licensing related enhancements in Solid Edge - Used third party licensing software FlexLM to add license checks at the product startup and usage, by reading license files and comparing the same with the license feature built into the code base. This is done at the application startup.
  • Added functionality to use windows shell API and open Solid Edge extension files in the application. Added Solid Edge menu to desktop popup menus right mouse click using shell commands. This would be used to invoke Solid Edge functionality right from the pop up without having to have the application up and running beforehand.
  • Sensor violation improvements - Added MFC provided CDialog objects. Embedded an HTML custom control into this dialog object. A sensor is basically an alert. At runtime, if a sensor failed, instantiated the dialog, populated the html with names of all the failed sensors in ascending order of sensitivity. The name of the failed sensor would be an html link. Added triggers, and corresponding handler functions to address events like mouseclick on this link. Upon the mouse click event the failed sensor would be highlighted in the sensor definition pane, a tree control in the GUI. Dismiss the Sensor dialog if the user hit any escape sequence. Familiarity and usage of various design patterns like singleton, Factory pattern, Observer, visitor, adapter and more, during working with the product code.
  • Enhancements to automatic messaging framework of Solid Edge, worked on SDK callback functions to pass event messages from GUI to the CAD kernel and revert with return codes from the kernel. Worked with the Parasolid kernel for geometry functions.
  • Created new SharePoint sites, added document libraries, created/deleted users, assigned/modified user roles and permissions at the site level as well as the document library level.
  • Enhancements to existing SharePoint functionalities. Added C# code to existing API for validation of SharePoint user. Checked if this user was a valid user for the SharePoint document library, whether he had the permission requested, and the rights corresponding to that permission. Returned those results for allowing or preventing an attempted function operation. Used RCW CCW interop services.
  • Created custom DLL for SharePoint webparts, added them to GAC and used them for providing new functionality in the SharePoint portal through webparts. Made the required changes to the SharePoint site and XML files, for addressing the new webpart on the portal.
  • Applied theme changes to master page of the SharePoint portal to reflect it to all the pages. Modified the corresponding XML files of SharePoint to reflect the changes.
  • Published technical documents for the new utility components created.

Environment: C, C++, VC++, Win32 SDK, MFC, COM, C# Dot Net, winforms, Microsoft SharePoint, Windows SharePoint services 3.0, Windows - various versions.

Confidential, Sept 2000 - Jan 2003
Software Quality Assurance Engineer
e-Yield Revenue Management product

IDeaS is the world leader in revenue management, providing the most effective solutions ton world's top hotel chains such as Hilton, Hyatt International, Bass international, Opryland, SixC etc. IDeaS have a product called E-Yield that is integrated with hotel's Property Management System (e.g. Fidelio, Hyadvantage, Aremies) and Central Reservation System (for e.g. Spirit) vendors. IDeaS are now a SAS group company.

The e-Yield product is deployed on various operating systems such as Windows, IBM-AIX and UNIX on diverse databases (DB2). There were various architectures of the product installation bases. Some clients use local / networked windows machines, some use remote machines connecting to the server, while some clients use a web client or a regular windows client communicating via CORBA (ORB-Inprise's Visibroker). Some installations had servers deployed on UNIX (AiX, Linux) and Windows. Few Windows based servers used the Tomcat server while the client ran as a JSP based web application. The product has an extremely complex and wide blend of software systems, which had to be managed.

Responsibilities:

  • Resolving problems escalated from first line support, performing sanity tests, synchronization of databases with client data, testing message flows in batch as well as real-time mode, etc.
  • Understanding requirement specifications and sampling out specific failure scenarios
  • Understanding the user perspective of the said change and its use / abuse potentials
  • Writing test cases, test suites, test plans.
  • Test execution (unit, integration and regression testing of product releases) and defect reporting.
  • Defect liaising with development resources, and rework scheduling.
  • Assisting customer support on sensitive, technically complex customer issues

Environment: Win 2000/NT/95

Hire Now