Software Engineer/architect Resume
SUMMARY:
- Seasoned software engineer with 17+ years of experience in designing and developing web and mobile applications and system software using C, C++, Java, C#. Proven track record of delivering large scale projects with excellence; passionate self - starter looking to make an impact in a dynamic environment
- Trusted platform module, Mobile trusted module, PKI
- Android SDK, NDK and Application development
- Windows .NET technologies, Windows Kernel mode Drivers - WDM driver for TPM chip
- Mobile Linux platform / middleware / frameworks
- Mobile app development and Android App development
- Solid experience in the design and development of object oriented applications and middle ware
- Expertise in C++
- Well versed with Windows internals and quite comfortable with Linux/Unix internals.
- Substantial experience with internationalization
- Substantial experience with windows kernel mode driver development and expertise in interfacing with kernel mode drivers
- Substantial experience developing networking (tcp/ip) applications / socket programming
- Substantial experience with database programming
- Substantial experience with ATL/COM
- Data Synchronization - SyncML
- Computer-device connectivity (e.g. USB/ IP)
- Web Services programming using gSoap, .NET and Java
- Windows programming involving inter-process communication, multiple threads and synchronization objects
- Extensive experience in various phases of Software Development Life Cycle - Design, implementation, testing and maintenance, expertise in leading teams, test driven/SCRUM agile development
TECHNICAL SKILLS:
Languages: C, C++, C#, Java, Shell programming, java script, python, Visual Basic, 80x86 Assembly
Databases: SQLite, MS SQL Server, MySQL.
Protocols: TCP/IP, UDP, OBEX, SNMP( NetSNMP), SSH, ARP, RARP, ICMP, IGMP, FTP, HTTP, XML, SSL(openssl.
Web Services: JAX-RS 2.0, Apache Tomcat, lighttpd, wcf
Miscellaneous: MFC, ATL/COM, STL, Win32, Socket programming, database programming, JDBC, STL, multi-threading, OOP, .NET, ASP.NET, design patterns, lighttpd, gSoap, Apache, LAMP
Tools: NetBeans, Eclipse, ADB, Visual Studio IDE, MSDEV Debugger, WinDbg, Soft ICE, SCSI Analyzer, VxWorks Debugger, GDB, Make, ET & Nohau In circuit Emulators, Logic Analyzer, Oscilloscope, Ethereal Network Analyzer, Wind River Tornado, Design Sync Synchronicity, and CVS, Paradigm Plus, Visual IDE, Enterprise Architect, Perforce, Clear case, Clear quest, Subversion, TeamTrack, SVN, Git, Visual Source Safe, Install Shield
Other Skills: Android SDK, NDK, JNI, PKI, Kernel Mode windows drivers (DDK), Boost libraries, firmware and low-level code, Assembly, Agile and SCRUM development methodology
Operating Systems: windows XP, Windows NT, Windows CE, windows mobile, Linux, VxWorks, UNIX (Solaris, AIX), Gnu/Linux, Dos, Bios.
Microcontrollers: 68HC11, 8051, 80537, z81
PROFESSIONAL EXPERIENCE:
Software Engineer/Architect
Confidential
Responsibilities:
- Architected system components that are part of PCIe, NVMe, SAS/SATA storage analyzers - Used Java, Swing, C++, STL.
Staff software engineer/architect
Confidential
Responsibilities:
- Designed and implemented new generation test engine. This is multithreaded, based on subject and observer design pattern.
- Designed and implemented advanced patterns (iteration block, sequence block) to enter groups of tests, where the dependencies and instance iterations are automatically computed and run.
- Implemented the resource manager. There are 3 kinds of resources. A set where only one test can hold a resource. Second set is exclusive resources; In this each test registers a set of resources; Third kind is shared resources.
Technical Lead - Principal Software Engineer
Confidential, Cupertino
Responsibilities:
- Been part of the architecture group that devised MTM technical strategy.
- Researched and developed metrics to attest the android applications.
- Supervised WDM TPM driver development for Confidential ’s TPM chip to run on windows XP. Wrote TDDL layer to interface Wave products with this driver. Recommended SamsungTPM specific changes in the driver to enable smooth running of the Wave products - skills used WDM driver development( DDK), WinDbg.
- Architected and implemented application that uses the Trusted Logic’s TEE MTM on Android, Web services, Bluetooth, WiFi communication to allow unlocking and locking of SEDs - skills used Experience in Android SDK, NDK, blue tooth, web services, JSON, http post.
- Developed roadmap for the Wave products, on mobile platform.
- Developed Scrambls Connector with multiple interfaces for various clients - Two WCF contracts hosted in a windows service. One of them exposes Binary interface and the other provides Restful web services. This also has the functionality to consume the web services in contacting the main web server, there by acting as proxy.
- Developed multiple windows clients that interact with the connector - file browser and the web browser plugin( for example BHO IE)
- Implemented event based signaling to share login state, policy etc., among windows clients via connector - skills WCF, .NET, C#, http protocol, and windows internals
- Worked on the Scrambls web Server.
- Provided technical leadership.
Senior Software Engineer
Confidential
Responsibilities:
- Architected, Designed and implemented Content Manager. This is a cache like system which maintains content in the memory for faster access and reduce the traffic to Cloud server. It keeps the local storage and Cloud server consistent with the content as it is created, modified and deleted by the user. It also enables operation of the system in the absence of network connection and synchronizes the content with the cloud server upon restoration of Network Connection.
- Designed and implemented COP Manager. This is client side implementation of COP Protocol - XML protocol designed to access, update and save the content from the Cloud server. The content is user created profiles, macros and internal modules (that constitute the software), external modules (firmware, driver, configurator etc.)and internal UI modules - to provide for device Specific UI.
- Tools and skill learned: Xml processing, linq, subversion, ASP.net, synchronous and asynchronous webrequests, thread pool, collection classes, scrum methodology, serialization and deserialization, Test Driven development.
Staff Software Engineer
Confidential
Responsibilities:
- Developed Discovery Daemon to detect USB connection and launch lighttpd, and mDNS and third party daemons needed in data synchronization and maintain the book keeping. This is implemented in C++ as part of Linux Mobile Platform.
- Researched and implemented software components to detect host machine type( windows or linux/Mac)and launch PC software or mount public partition as appropriate.
- Devised and automated the install partition to hold the desktop software . Augmented USB scripts involving USB cable connection and detection and implemented a solution to launch the USB Drive Mode Application. Worked on USB Drive Mode Application. Implemented proper workflow in the USB Drive Mode Application to enable mounting of the designated phone partition onto the host machine upon USB cable connection and un-mounting of it upon disconnection. Also implemented other enhancements
- Supervised and coordinated Integration of third party software with our SYNC-ML software suite - analyzed, debugged and reported bugs.
- Worked on Security Policy framework
- Worked on ACCESS AlpFileExplorer: on desktop side and on the phone side
- Integrated SSL functionality into the lighttpd and implemented access method using self-signed certificate
- Implemented Secure way of accessing map data (GET and PUT) from the phone using WinInetClass.
- Designed and implemented first external data store to prove syncing ALP phone PIM data with that of Outlook on the desktop.
- Implemented C# and VC++ versions of applications to simulate Outlook PIM data creation on the Desktop
- Designed and Implemented data store to sync netfront browser favorites on the ALP phone.
- Negotiated, designed and implemented data store to sync netfront browser MRUs on the ALP phone.
- Researched, designed and implemented datastores to sync Firefox bookmarks and MRUs on the desktop.
- Designed and implemented SYMC-ML OBEX binding layer
- Owned, enhanced and maintained Personal Data Interchange library that was used by numerous applications on the phone and the Desktop.
- Researched, designed and implemented vCalendar, vCard, vNote and iCalendar into vObject wrapper interface layer used by various PIM applications and also during synchronization of PIM data between the phone and the Desktop.
- Fixed numerous bugs and enhanced desktop application and syncing software that were successfully delivered with PalmTreo650 (MI5).
- Developed Installshield Installer to install ACCESSAlpFileExploer using advanced MSI features
- Served as acting manager during the absence of our manager.
- The above tasks were implemented in C++ as part of linux mobile platform for smart phones( both on windows and Linux platforms).
Staff Engineer
Confidential
Responsibilities:
- Actively involved in designing and developing software applications that control liquid handling devices and analytical instruments for use in life sciences applications.
- Worked on suite of ActiveX controls providing APIs to drive/control echo550
- Developed Mechanical registration calibration tool in C# that uses ActiveX Controls to communicate with the server controlling echo550
- Developed CherryPick application in C#
- Developed CustomProtocol application in C#
Lead Software Engineer
Confidential, Wilsonville, OR
Responsibilities:
- Architected, designed lead/implemented software to download, import and email images from the Multifunction printer that included - GUI, twain interface, custom protocol for image transfer, USB driver and interface layer to the USB driver and Winsock communication layer.
- GUI to provide list of MFPs, bitmaps of images available, scan parameters. I was involved in all aspects of development of this component beginning from coming up with prototypes, putting up the prototypes using Visual Basic for marketing, customer support, Usability engineering departments and then re-implementing by incorporating feedback received.
- Twain Driver to transfer the scanned images directly into the twain compliant applications. This involved implementation of data source portion of twain specification.
- Designed and Implemented in house protocol to facilitate communication between the PC and the Multi-function printer, to get and set the scan parameters and to download the scanned image data to the PC.
- Designed and Implemented network communication layer using TCP/IP socket calls. Worked with various file format conversions, such as tiff, bmp, raw as part of bringing the images into application.
- Developed kernel mode USB (wdm) driver to send commands from PC to MFP, and to receive scanned images via the USB Scanner interface MFP.
- Actively participated over a period of time in having consultations with Microsoft in getting WHQL certification for this device.
- Designed and developed common libraries that are also used in various other clients such as installer, driver, printing scout etc. This library provided functionality to discover, and retrieve printer properties and printer status by using SNMP calls and filters the list of discovered printers according to the chosen criteria. Also developed ATL/COM Wrapper for these libraries in order to support clients using various library versions and facilitating seamless deployment of newer versions at the client sites.
- Used Win32 APIs, multithreading, COM design patterns. Also provides functionality to retrieve printer properties and printer status by using SNMP calls. VC++, Win32 API, C++ templates, STL were extensively used in the implementation.
Confidential, San Jose, CA
Engineer Level 5
Responsibilities:
- Actively participated in architecture, design and implementation of micron flash data management software (MFDM). Designed and implemented deferred work manager, for queuing the requests, processing them according to the priority, logging the errors and notifying the user application.
- Designed and implemented reclamation manager of direct access volume of MFDM. Direct access volume is the area where the code resided, and it has to be made sure that it is always contiguous in memory; designed proprietary algorithm to achieve this.
- Designed and implemented re-allocation manager for direct access volume part of MFDM.
- Designed and Implemented robust power loss recovery for the DAV part of the MFDM - involved coming up with creative algorithms in performing the above tasks, extensive use of C++ features, use of Win32 API, VC++ IDE, Debugger, prefast, BoundsChecker to check for Memory leaks. Also developed ATL/COM wrapper for easy deployment at various cell phone vendors’ sites.
- Architected, designed and developed VC++/GUI applications for testing of various features of Micron Flash Data Management software, to simulate scenario of cell phone applications, and stress test the MFDM software. This Desktop GUI application was developed primarily using Win32 API, C++, MFC and Visual Studio Tools (IDE, Debugger etc.).
Confidential, Morgan Hill, CA
Sr.Development Engineer
Responsibilities:
- Actively participated in architecture, design and development of Graphon thin client Desktop Remoting GUI application. This allows users to be able to access all flavors of UNIX platforms and Windows Servers. This involved capturing the windows API calls on the client machine, cache them, and compress them using the Graphon thin client protocol and send over the network with winsock (TCP/IP) calls.
- Tools and languages used are C++, STL, Win32 API, and Visual Studio.
- Initially developed a different prototype prior to developing the above product. This was based on the idea that a display driver that acts as a filter between the real display driver on a machine and the windows GDI. Any Graphics related call made by any application goes through the GDI, which in turn calls the display driver. And hence this driver can capture the display/graphics related activity and send it across the network using winsock (TCP/IP, WinDbg, and DDK. Visual Studio).
Confidential, Santa Clara, CA
Software Engineer
Responsibilities:
- Designed and developed GUI for Confidential system. This allows the users to make a VCD2.0 standard CD with Video clips from tapes, still images from photo album. This provides users with all MPEG encoding options, CD recording speeds, and multitude scanning options, such as B/W/color, resolution, file format, brightness, Gamma correction simultaneously providing the preview. Device command set using ASPI( Advanced SCSI programming interface).
- Architected, designed and developed Windows NT kernel mode device driver for MPEG hardware. This encodes the real time video/audio into mpeg1/mpeg2 half D1. This involved downloading the micro code into the compression chips, usage of irq, fifo, programmed I/O and asynchronous calling to correctly handle the real time data flow.
- Also developed kernel mode library to partly implement ISA Plug and Play protocol to read the Resources assigned to the mpeg hardware above mentioned. This actually relies on the plug and play Bios for the conflict free assignment of resources.
- Developed an installable driver for YamahaCDR100 & Philips522 CD-Recorder and integrated it into Confidential encoding system. This involved correctly sequencing and timing between the device commands and asynchronous communication and multithreading in order to cater for various CD recording speeds (Win32, Visual IDE, and ASPI).