Software Engineering Manager Resume
Pleasanton, CA
SUMMARY:
- Years of successful experience and increasing responsibility
- General Full life cycle development
- Abilities Complex medical device development
- Embedded systems development
- Operation in an FDA regulated environment
- Operation in a startup environment
- Agile development
- Architecture design
- Risk identification
- Use case/user story development
- Requirements gathering, specification, and refinement
- Software task identification, prioritization, estimation, and distribution to developers
- Collaboration with clinical, marketing, service, manufacturing, regulatory, and engineering staff
- Reporting project status and engineering issues to project team and management
- Filtering and distilling relevant information for various audiences
- Verbal and visual communication of complex technical engineering issues
- Object - oriented analysis, design, and implementation
- Algorithm analysis, design, and implementation
- State machine design and implementation
- CPU & I/O bound asynchronous programming and parallel programming
- Real-time development
- Relational database design and development
- Hardware/software integration
- Test driven development
TECHNOLOGY:
Languages: C#, Java, JavaScript
SkillsFrameworks: .Net, Eclipse, AngularJS
Databases: SQL Server
Tool: kits WPF
Tools: Visual Studio Team Services (Git), Seapine TestTrack (Requirements Management, Issue and Defect Tracking, and Test Case Management), Seapine Surround SCM, TortoiseSVN
Web Technologies: HTML5, CSS3, JSON, jQuery
Cloud Platforms: Microsoft Azure
EXPERIENCE:
Confidential, Pleasanton, CA
Software Engineering Manager
Responsibilities:
- This system can be effectively used in the pre-operative, intra-operative, and post-operative phases of surgery.
- For example, in the intra-operative phase it detects the current surgery phase (phakia: before the original biological lens is removed, aphakia: after the original biological lens has been removed, and pseudo-phakia: after the artificial lens has been implanted) and while in the aphakia stage suggests which lens would be most appropriate to implant.
- Development platform was a Windows workstation using TestTrackPro, Visual Studio, NUnit, SQL Server, WPF, C#, JavaScript, AngularJS, TypeScript, jQuery, HTML, CSS, ASP.Net Core MVC, OData, Entity Framework, and Microsoft Azure. Major tasks included:
- Working with stakeholders to define use cases and specify requirements of the HOLOS system
- Building software team to do the development work for the HOLOS system
- Design of architecture and high level sub - systems to support HOLOS device in retrieving pre-operative data from cloud storage, continuously measuring eye refraction and then utilizing the current refraction measurements to suggest which lens to implant, and storing intra-operative data (generated during surgery) back to cloud storage. Retrieval from and storage to Microsoft Azure SQL Server cloud storage was implemented using ASP.Net Core with a RESTful Web service API.
- Design of internet portal - again utilizing the same RESTful Web service API. This portal allows surgeons to 1) create pre-operative surgical data that will be utilized by the device during surgery, 2) peruse intra-operative data generated by the device during surgery - which includes the set of lens predictions made, and 3) enter in post-operative data to aid them in evaluating patient outcomes after the surgery. The customer facing side of this portal application was a SPA (Single Page Application) implemented using AngularJS.
- Design of multitenant data architecture for Microsoft Azure SQL Server cloud storage. The aforementioned web service utilizes authentication and claim based access control lists to authorize user access to data in this cloud storage.
- Definition and design of security features to support HIPAA compliance
- Creating development schedule and regularly reporting status to stakeholders
- Prioritizing software tasks and distributing them to developers
- Regularly discussing clinical and engineering issues with stakeholders to arrive at solutions that allowed the project to stay on track
Confidential, Pleasanton, CA
Senior Software Engineer
Responsibilities:
- Design and development of middleware which includes interface to UI, domain model design and implementation, repository interface to database, database design and implementation utilizing SQL Server, and interface to hardware
- Design and implementation of a data quality manager that determined when data was good enough to be shown to the user
- Design and implementation of a synchronization mechanism that insured that the video and refractive data captured and stored during the surgery, could be replayed back as if the user was utilizing a DVR player
Confidential, San Jose, CA
Senior Software Engineer
Responsibilities:
- Development platform was Windows 7 and Windows XP workstations using Rational Rose, ClearCase, ClearQuest, NUnit, TestDriven.Net, Visual Studio, SQL Server, WPF, C# and NUnit. Major tasks included:
- Development of quality control modules for instrument characterization and performance
- Development of laser setup functionality
- Development of bead lot transfer functionality
- Development of setup and quality control alarms preferences view
Confidential, Milpitas, CA
Lead Software Engineer
Responsibilities:
- Development of plug - in that does incremental validation of user created application models
- Modification of graphical wizards used for creating application models
Confidential, San Jose, CA
Senior Software Engineer
Responsibilities:
- Development platform was a Windows XP workstation using Rational Rose, ClearCase, ClearQuest, Visual Studio, Sybase, XML, C# and Java. Major tasks included:
- Design and development of various analysis modules (e.g. Gate Editing, Electronic Signing, Find/Highlight Populations, Gate Tethering and Applying Gates To Specific Tubes).
- Design and development of automation interface for external control of data acquisition. Design of Command and Control protocol. Design and development of state machine wrapper for interfacing to Data Acquisition Engine.
- Design and development of HighThroughputLoaderController and FluidicsController which are used as services by the AcquisitionController. These controllers work together to perform data acquisition.
- Design and development of network module that provides for communication between a stand - alone embedded system (i.e. Cytometer) and multiple client user applications residing on Windows computers. Applications communicated with embedded system using TCP/IP sockets.
- Design and development of CytometerServer layer that allows user applications to transparently send messages to, and retrieve results and notifications from Cytometer without knowing about internal details of Cytometer.
- Design and development of CytometerSimulator that simulates the operation of the Cytometer for developers that do not regularly have access to the real embedded Cytometer. The CytometerSimulator is an application that accepts commands, executes those commands, and sends results and notifications back to client applications. It also includes a user interface for SimulatorCytometer configuration. Since the configuration consisted of a hierarchy of components, a dependency algorithm was developed for determining when a component needs to be updated and when it can be deleted
- Design and development of SortController that sends messages to the Cytometer for defining sorting criteria, retrieving counts and rates for cells sorted into specific destinations, defining what happens to cells that do not meet sort criteria, and controlling the starting and stopping of sorting.
- Design and development of DropletController that sends messages to the Cytometer for setting parameters that together cause sorted cells to be directed to specific locations.
- Development of ACDUController that sends messages to the Cytometer for manipulating a tube-containing tray so that it aligns a particular tube in the tray with the location that the sorted cells are being directed to.
Confidential, Palo Alto, CA
Senior Software Engineer
Responsibilities:
- Programming of servlets to update back - end database and send out messages
- Design and modification of user interface using HTML and JavaScript
- Programming of Confidential 's MessageBroker middleware to provide publish/subscribe message passing between multiple back-end servers
Confidential, Palo Alto, CA
Senior Software Engineer
Responsibilities:
- Design and development of a browser for perusal/modification of a model's component hierarchy
- Creation of component hierarchy from model data retrieved from database
- Utilized CORBA to interact with RequirementVerificationServer, Cost&SummaryDataServer, CADDS5Viewer, and OptimizerViewer
- Definition and design of major modules in Map Display Server.
- Allocation of module functionality to different threads of control.
- Design and implementation of modules for stitching together vector and raster map image data, overlaying images with location and geocentric relative entity objects, and then displaying without flicker or unnecessary redraws.
- Design and implementation of module for handling concurrency issues involved in Map Display Control thread that communicates with Map DB Manager thread, Map Display thread, Client Communication thread and Image Creator thread.
- Design and development of modules for communicating over the Internet with multiple Map Clients.
- Design and Implementation of map projections module for mapping between display X, Y positions and latitude/longitude.
- Modification of C++ simulation client to interact with Map Server.
