Curriculum Vitae – Shrinivas Margam
Fremont CA **539, 224-***-****, ***********@*****.***, www.linkedin.com/in/margams Brief Introduction:
• I am seeking a suitable opportunity in software development and software project management.
• I have expert-level knowledge and coding experience in C/C++ including modern C++ and am proficient in computer vision, machine learning, AI, cloud-native application development, cybersecurity, and cloud security.
• I am a U.S. citizen, eligible to work anywhere in the United States. Expertise Overview:
• Software development for robotics vision, Application Programming Interface (API), software library and framework development, market data system, trading platform development, and real-time embedded PoS software development.
• Software engineering, software design and architecture, Object-Oriented Software Design
(OOD), and Object-Oriented Software Programming (OOP).
• Scalable, high-performance, and secure software development, experience with open-source, large, and complex codebases.
• Experience in multithreaded programming and Inter-Process Communication (IPC) methodologies, with strong problem-solving, debugging, and troubleshooting skills.
• Cybersecurity principles, Cloud-native software application development, Cloud computing technologies, and Container technologies.
• Customer-focused, dedicated to meeting customer satisfaction and needs, committed to collaboration, responsibility, and continuous self-improvement.
• Quick learner, capable of quickly mastering and implementing new technologies and domain expertise. Self-motivated team player with strong communication skills. Educational qualifications:
• Master of Technology in Computer Science and Engineering from Manipal Institute of Technology, Mangalore University, India.
• Master of Science in Statistics from Annamalai University, India. Recent accomplishments in software technologies:
• I have been awarded the Certified in Cybersecurity by the International Information System Security Certification Consortium (ISC2) for the Certification Cycle of Jan 2024-Dec 2026.
• I have completed the AWS Machine Learning Scholarship course at Udacity and received a course completion certificate.
• I have completed "The Complete Agile Scrum Fundamentals" course on Udemy and received a course completion certificate.
• I have completed the course "The Complete Business Analysis Fundamentals" on Udemy and received the course completion certificate.
• I have completed the Fanuc Robotics training course organized by the Career Technical Education.
• Attended numerous webinars in computer vision, AI, machine learning, cloud-native application development, cybersecurity, and cloud security. Software technology skills:
• OS: Linux Ubuntu, UNIX, Windows
• Computer Programming and Scripting Languages, Libraries, Frameworks, API: C, C++, C+
+ 11, C++14, C++ 17, C++ 20, STL, Bash, Python, JavaScript, HTML, CSS, JSON, HALCON, OpenCV, JetPack, CUDA, OpenSSL
• Development and Design Methodologies and Tools: Object-Oriented Design (OOD), Object- Oriented Programming (OOP), Multi-threaded programming, Inter Process Communication
(IPC), TCP/IP, UDP, Eclipse, Visual Studio, VS Code, Jupyter Notebook, Spyder, UML, GTest, GMock, CMake, Git, GitHub, Agile, Waterfall
• Databases and DB API: SQL, My SQL, MongoDB, Mongo-C, GridFS Career Summary
• Jan 2022-to date: JOB GAP MEDICAL, LEARNING, and TRAINING with the latest technologies like Computer Vision, Machine Learning, AI, cloud-native application development, Cybersecurity, Cloud-security, and Quantum Computing by doing certification, online courses, and attending webinars.
• Jul 2017-Dec 2021: ABB INC. San Jose, CA as an Innovation Senior Software Engineer and Architect.
• Jan 2015-Jun 2017: COGNIZANT TECHNOLOGY SOLUTIONS, as a Manager Projects. Aug 2014-Jan 2015: COGNIZANT TECHNOLOGY SOLUTIONS, as a contractor. Software Development Experience
Jul 2017-Dec 2021 ABB INC. San Jose, CA, USA
Jul 2017 – Sep 2019 Colider V1
Descriptions: 3D vision system for general purpose Vision Guided Robotics (VGR) application development for ABB Robotics. Images captured using the 3D camera are processed by the vision algorithms using OpenCV, and PCL libraries, and the output is sent to the VGR application to manipulate the Robot.
Software and Hardware Requirements for this project include Vision system Nvidia Jetson Tx2- aarch64, Intel RealSense, FRAMOS, SICK cameras, GNU/Linux Ubuntu, JetPack, CUDA, Cmake, OpenSSL, C/C++, Python, Node.js, MongoDB, MongoDB-C, GridFS, REDIS, hiredis, RabbitMQ, AMQP-CPP, Nginx, PCL, OpenCV, VTK, JSON,
My Contributions:
• I developed modules with various API interfaces to covert the captured images from one format to another format like Mesh to Mesh (STL, VTK, obj, ply) File saving, Mesh (STL, VTK, obj, ply) to PCD File saving or boost pcl::PointCloud pointer, PCD to Mesh (STL, VTK, obj, ply) File saving or boost pcl::PolygonMesh pointer.
• I developed modules with various API interfaces for Image Registration and ROI calculation for various regular geometric shapes or irregular shapes.
• I developed modules with various API interfaces to store and retrieve various types of objects to and from the Redis database and MongoDB.
• I developed a module to provide an environment within the vision software to execute a Python script and returning the results back to the vision software using the OLE (Object Linking and Embedding) technique.
• I developed modules with various API interfaces to monitor the configured computer resources (CPU, RAM, DISK, NETWORK, TEMPERATURE, and POWER) to check whether it is out of the configured limit level. If any of the resources are out of the configured limit, an alarm message will be sent to the GUI. Each resource could be monitored in its individual configured time interval. The time interval for each resource could be set in the option filed in MongoDB. Each resource could be individually turned on or off for monitoring its usage limit.
• I developed modules for vision system administrations like backup, restore, patching, software install, update, start, stop, restart component services, alarms, and audit logs. Skills and Expertise I used: Linux Ubuntu, C/C++/C++ 11, Python, CMake, MongoDB, MongoDB-C, GridFS, PCL, OpenCV, VTK, JSON,
Oct 2019 – Dec 2019 New Concept and Methodologies proposals for new project development Descriptions: I proposed the following new concepts, methodologies, and system architecture for implementing the Colider-V2. I also developed a working proof-of-concept and demonstrated it.
• Collaborative Services-Oriented Architecture: In this architecture, the Components collaboratively implement an application solution, Each Component offers and/or consumes a specific service, Components should respond within a specified time limit, and Components should operate within a restricted resource limit. A software component is a unit of composition with contractually specified interfaces and meets characteristics of Reusable, Compose-able, Independent, Encapsulated, Enhanceable, Time and resource constraints, and Comprehensive/Complete.
• Implementation of abstraction layer in software system development: In software, abstraction is the process of generalization by implementing the “is-a” relationship between objects by grouping different similar objects and generalizing its functionalities as an interface for the use of the outside world. By implementing the abstraction layer the common functionalities of different objects are implemented only once, code re-usability is enforced, and implementation is separated from the interface, making the interface independent of any changes that occurs in the implementation.
My Contributions: I designed, developed proof-of-concept, and demonstrated. Skills and Expertise I used: My software design and system architecture knowledge. Linux Ubuntu, C/C++/C++ 11, CMake, JSON.
Jan 2020 – Mar 2021 Colider-V2 / Tahoe
Descriptions: Colider-V1 is completely re-designed using component and state-machine model architecture and HALCON vision library to develop a 3D Vision system for general purpose Vision Guided Robotics (VGR) application development for ABB Robotics. Images captured using the 3D camera are processed using the HALCON vision software and the output is sent to the VGR application to manipulate the Robot.
My Contributions: I designed and developed the framework. I developed the camera component for various cameras, like Intel, SICK, and FRAMOS. I developed the storage component and the HALCON interface component.
Skills and Expertise I used: Linux Ubuntu, C/C++/C++ 11, CMake, MongoDB, JSON, HALCON Apr 2021 – Sep 2021 Inline Predictive Maintenance (IPM) Descriptions: Inline Predictive Maintenance is a predictive analytics module that uses an unsupervised machine learning algorithm to predict the aging of the mechanical axis of robots and raise an alarm sufficiently ahead of time to prevent the failure(s) of the robot. My Contributions: I refactored the IPM code for high-performance, modular, easy-to-understand, and quality code, which includes Modular code, Configurable parameters, Storing & Retrieving as JSON format, Implementation of logging mechanism, Different level of logging, Error checking, Exception handling, Code organization and packaging. Skills and Expertise I used: Linux Ubuntu, Python, JSON, Jupyter Notebook, Spyder, Oct 2021 – Dec 2021 Vision System
Descriptions: Yet another software system for machine vision. My Contributions: I designed and developed a reusable component with APIs to call HALCON functionality, like calling HALCON scripts and procedures within C++ code. I developed a HALCON wrapper for various camera components. Developed extension package for HALCON libraries using the Extension Package Interface to support camera natively with HALCON. Enhanced the camera component, to support multiple cameras, to support JSON format parameter passing, and to run the camera component as a daemon.
Skills and Expertise I used: Linux Ubuntu, C/C++/C++ 11, CMake, JSON, HALCON Aug 2014-Jun 2017 COGNIZANT TECHNOLOGY SOLUTIONS, USA Jul 2016 – Jun 2017 Data-HQ (Data High Quality), CoreLogic, San Diego, CA Description: Data-HQ is a core component that serves many other distributed suites of products to produce various credit services, fraud and compliance solutions for mortgage lenders, mortgage brokers, banks, automobile dealers, and any other businesses in need of credit service. My Contribution: I was involved in code development to implement the new feature “Validation of Military Status to comply with Military Lending Act requirements (VOMS MLA)” in the backend server. I was also involved in code review, testing, and bug fixing. I was also involved as a liaison between the offshore and onsite teams to coordinate the development. Skills I Used: C, C++, TCP/IP, CORBA, Rogue Wave C++ Library, SQL Developer, AIX UNIX, Bash, Windows, Eclipse, SVN, TeamForge
Jan 2015 – Jul 2016 Point Of Sale (POS) Payment Processing Terminal Embedded System, First Data, Atlanta, GA
Description: The Point Of Sale (POS) Payment Processing System is a software application running in the POS terminal. The responsibility of this software application is to authorize and authenticate the payment and facilitate the transaction.
My Contribution: I was involved in integrating the Omaha and Bypass payment process into the Unity application and modified it to be compatible with EMV specifications. Skills I Used: C/C++, WIN-CE API, TCP/IP, GSM, CDMA, Visual Studio, TFS, GIT, JIRA, WINDOWS Aug 2014 – Jan 2015 Pharmacy Management System, Walgreens, Deer Field IL Description: A Pharmacy Management system is a collection of many different components developed using different technologies and residing in different hardware and software platforms to manage daily pharmacy operations.
My Contribution: I was involved in code development, to modify and enhance the prescription scanning modules to support new scanner types, deprecating old scanner models, adding new scanner models, and upgrading the scanner software and scanner drivers. I also modified the code to use the latest version of Kofax VirtualReScan (VRS). I was also involved in bug analysis and fixing issues, further I was involved in off-shore software development coordination. Skills I Used: C/C++, Pro*C, STL, TCP/IP, Visual Studio, WINDOWS, UNIX, Bash OTHER MAJOR SOFTWARE DEVELOPMENT INVOLVED
Royal Bank of Canada Capital Market, USA: Reuters Foundation class library API Adapter, Market Data System, Trade Surveillance System Contributor. CommVault Systems Inc, USA: Enterprise Information Protection & Archive Management System. Reuters America Inc, USA: Web Foundation & Dynamic Distribution System, Platform Independent Framework for Authorization and Authentication System, Line/Feed Handlers development.