
Ankit Tuteja
- Sr. Python Developer
- Seattle, WA
- Member Since Jun 12, 2023
Ankit Tuteja
Professional Summary:
· 12 years of experience in software development with experience in Application, System and Embedded software design/development using Python, C and C++ on Linux and Unix platforms. Thorough experience in software development life cycle.
· Worked on user space system programming on Linux, AIX.
· Proficient in Python, C and C++ programming.
· Developing HP-UX cloud solution using Openstack.
· Used various IPC mechanisms like signals, pipes, shared memory and socket Programming.
· Knowledge of advanced level programming including thread synchronization,
Multithreading, multi-processing, concurrency.
· Knowledge of cloud computing and virtualization including KVM, HPVM and Dockers.
· Writing a plugin driver in python than runs as part of nova component of openstack.
· Experience with Shell Scripting(bash).
· Knowledge of PowerPC processor and assembly language.
· Knowledge of Linux internals and device drivers.
· Knowledge of JSON, REST APIs and web services.
· Experience with Core Java and C#.
· Experience in configuration management tools i.e. Ansible.
· Good Knowledge Objected Oriented Concepts, Standard Template Library and Data Structures.
· Worked with various version control systems such as git, svn, clearcase.
· Knowledge of RDBMS concepts and experience with writing SQL query, Stored Procedures, Triggers etc.
· Good Troubleshooting and Technical support abilities
· Worked with debugging tools like pdb, gdb, dbx and profiling tools like tprof.
· Knowledge of Waterfall and Agile Methodologies (Scrum).
· Experience with Continuous Integration(CI)/Deployment(CD) tools like CruiseControl, Jenkins.
· Experienced in writing High Level and Low level design documents for feature development.
· Experienced in maintaining technical documentation for projects.
· Experienced with leading junior colleagues and mentoring new joiners.
· Good analytical and problem solving skills and ability to work on own besides being a valuable and contributing team player, strong interpersonal communication skills.
Technical Skills:
Languages |
C, C++, Python 2.7, Bash, shell scripting, exposure to C# |
Cloud Frameworks |
Openstack, Helion. |
Debugging Tools |
Gdb, dbx, Python Debugger. |
Processors |
PowerPC, x86 |
Profiling tools |
tprof, gprof, Valgrind |
Databases |
Oracle, MySQL. |
Version Control Systems |
Clearcase, Subversion, GIT, github. |
CI/CD tools |
CruiseControl, Jenkins |
Deployment / IDE tools |
Ansible, PyCharm. Visual Studio |
Operating Systems |
Linux - Ubuntu and RHEL, AIX, HP-UX, Windows, LynxOS(RTOS). |
Virtualization Platforms |
KVM, HPVM, Dockers. |
Professional Experience:
Client - Huawei Technologies Inc, Seattle WA 03/2017 - till date
Project - Cloud stress tool development -
The aim of the tool is to stress a cloud environment/framework such as Openstack by injecting various faults into a running instance of Openstack
and have the cloud instance ready for actual failures much before they really occur.
Development Environment - Python, Linux, Windows, Flask, Openstack.
Role and Responsibilities -
· Develop and Enhance the infrastructure of the product/tool to add capabilities for fault injection.
· Develop the component responsible for doing fault injection and monitoring the effect of the faults.
· Add multi user and load bearing capabilities to Flask web framework being used.
· Handle performance issues and improve performance of the application.
· Do code reviews for existing and new code and suggest improvements wherever possible.
· Bug fixing and maintenance of the application.
Client: Hewlett-Packard, Alpharetta, GA 03/2015 – 02/2017
Project: Cloud based solution for HPUX deployment on HP Integrity servers using OpenStack.
Role: Senior Python Developer
Description : This project provides a cloud solution for creating and managing virtual machines on HP-UX using openstack as base framework. HP-UX provides a hypervisor called HPVM. HPVM machines can be enrolled using this solution into a openstack setup. Provisioning and managing virtual machine becomes automated and cloud based with this solution.
Responsibilities:
· Developing driver in python that runs as part of nova-compute service and interacts with HPVM hypervisor for creating/managing virtual machines.
· Developing python based library that is used by the driver to interact with HPVM hypervisor.
· Baselining code with different openstack releases and testing compatibility.
· Identifying distribution and packaging mechanism for the python package of the solution.
· Setup up devstack or Helion Openstack for development environment.
· Demonstrate the solution to different prospective clients.
· Document the setup and steps to install/use the solution.
· Leading and mentoring junior colleagues in the team.
· Bug fixing various issues discovered in testing.
Environment: Python, Linux, Openstack, GIT.
Project: Integration of HP-UX Cloud solution with Helion Openstack.
Role: Senior Python and Ansible Developer.
Description : This project involves integrating HP-UX Cloud solution with Helion Openstack framework for as the solution would be used by end users with Helion Openstack framework due to its features and advantages. The HP-UX cloud solution code deployments on HOS framework happens using ansible playbooks. HP Helion Openstack which is standard private cloud offering from HP.
Responsibilities:
· Writing ansible playbooks to deploy and integrate the HP-UX Cloud solution with Helion Openstack.
· The ansible playbooks would be used to bind the solution with HOS framework and give users ansible playbooks to run for deploying HP-UX cloud.
· Integrating and testing the solution with Helion Openstack framework.
· Identifying changes required to HOS framework for adding a new hypervisor support.
· Setup and bring up of Helion Openstack with the required configuration/services.
· Document the setup and steps to install/use the solution.
· Bug fixing various issues discovered in testing.
Environment: Ansible, Python, Linux, Openstack, GIT.
Company: Dell, Bangalore 06/2014 – 03/2015
Project: Sockets API layer development.
Role: C, C++ Developer
Description: The product provides re-hosting solution i.e mainframe emulation on Unix Systems at a much lower cost. Users can run their mainframe applications such as Cobol applications directly on Unix systems with this product. This activity involves developing a layer that is common for both Unix and Windows. The layer would provide socket APIs that would be used by application. The layer would abstract Unix and Windows socket related calls based on the platform.
Responsibilities
· Worked as part of Unikix product development team.
· Developing a new abstraction layer/APIs that provides platform independence.
· Doing a proof of concept and finalizing the design for the project.
· Changing application code to use new APIs instead of direct socket calls.
· Bug fixing for various other product issues that are raised by end users/clients.
Environment: C, C++, Linux, Python, SUA/Windows.
Company: IBM, Bangalore. 11/2011 – 03/2014
Project: Cache coherency Component Development.
Role: C/C++ and Python Developer
Description: This module/component is meant to stress/validate cache coherency in Power Systems. The module creates multiple threads bound to different cores and runs the different threads in synchronization such that they hit the same cache line (false sharing) at the same time thereby stressing the cache controller wrt to coherency.
Responsibilities
· Rewrote cache coherency exerciser on a new framework
· Adding thread synchronization logic for multiple threads to run together and one at a time.
· Adding new instructions support in exerciser for newer generations of processor.
· Owning the component in terms of design, development and maintenance.
· Port changes to simulator environment in Python.
· Designing and developing features in this module.
· Providing support for defects and other issues to teams who use the module.
· Unit testing the feature.
Environment: C, C++, Python, Linux, AIX.
Project: PowerPC Core Component Development.
Role: C Developer
Description: Working on module that test the core by creating different load/stress scenarios by mixing and randomizing instructions that are appropriate to stress a particular unit of core such as load/store unit, fixed point unit etc.
Responsibilities:
· Component ownership in terms of design, development and maintenance.
· Enabled module to support 8 threads to run on smt 8(simultaneous multi threading).
· Add support for new instructions added for next gen processor.
· Develop code for features to support new processor specific stress scenarios.
· Unit testing new features.
· Providing support for defects and other issues to teams who use the module
Environment: C, Linux, AIX.
Project: Provide Support for defects raised against the tool.
Role: C Developer
Description: This activity involved screening all defects raised against the any component/module of the tool. The goal is to analyse the defects and isolate actual code issues from setup issues or other environment related bugs like Operating system issues.
Responsibilities:
· Gain code and setup knowledge on almost all modules of the tool.
· Provide analysis and resolution for the defects.
· Unblock the testing teams from various issues with their setup.
· Interacting with testers, other team members and coordinating the bug resolution.
Environment: Linux, AIX.
Company: Hewlett-Packard, Bangalore. 01/2007 – 07/2011
Project: Bow and Tilt, product: Garnet Laser Jet SFP
Role: C and C++ Developer
Description: To reduce the cost of the printer low cost optics (mirror assembly) is used. The laser beam scans in a bow shaped curve with a tilt instead of a straight line due to the defects in the mirror assembly. The resolution of this issue is done in software. This product caters to medium business market segment with output at 30 pages per minute.
Responsibilities:
· Implemented feature Bow and tilt for improving image quality on the above mentioned product.
· Worked on driver and Application modules that work together to control the data and image printing process.
· Worked on embedded application development for Multi-Function and Single Function Laser Jet Printers.
· Fixed defects related to the Video area that controls image and data printing.
· Implemented the feature on Linux codebase.
· Porting the feature to Windows codebase.
Environment: Linux, LynxOS.
Project: Tray Overfill reporting, Media Size/Type support, product: Scarlet Laser Jet MFP.
Role: C and C++ Developer
Description: Each tray on a printer has a capacity for holding sheets of paper/media. If the tray is overfilled it lead to jams in Paper path of the printer. The aim of the project was to provide information to the user when a tray is overfill and avoid paper jams
Responsibilities:
· Analyzed requirement and wrote design documents for the feature.
· Designed and Implement changes for reporting tray overfilled condition and excluding the tray from media source selection to avoid paper jams.
· Fixed defects for the product and coordinated with other partners.
· Mentored and trained new and subordinate engineers.
Environment: Linux, LynxOS, Simulator, Emulator.
Project: Size/Type popup refactoring, product: Kauai Laser Jet MFP.
Role: C and C++ Developer
Description: The user is prompted to confirm/change the media size/type in a tray for example when paper/media is loaded in a tray. This feature changed the behavior of presenting the user a single size/type prompt instead of two prompts, one each for size and type as earlier. This product caters to enterprise market segment and supports large volume printing at high speed.
Responsibilities:
· Analyzed requirement and wrote design document for the feature.
· Worked on similar feature in paper handling area which deals with selection of source and destination of printing media and posting of messages to user for various conditions such as paper out or mismatch.
· Implementing the code changes for the feature.
· Fixed defects related to the feature and other areas.
Environment: C, C++, Linux, Simulator and Emulator.
Company: Infosys Technologies, Bangalore. 09/2004 – 01/2007
Project: Limits Module Enhancement and Support. Worked for Finacle Treasury product development which caters to treasury market banking.
Role: C++ Developer.
Description: Limits Module is used by middle office tier of banks for risk management. Limits Module is a part of Finacle Treasury. Limits module of Finacle Treasury enhanced to support the exposures based on the original exposure method for forex, forwards and swap deals.
Responsibilities:
· Analyzing the changes required for adding new features/enhancements to the module.
· Implementing code changes for the enhancement.
· Designed and Implemented views for limit types addition and modification which was earlier done directly to db.
· Fixed defects related to enhancement found during internal testing and during support phase.
Environment: C++, Unix, Oracle Database.
Project: Reuters Dealing Server and live Support.
Role: C++ and Core Java Developer.
Description: There is a manual work involved in entering the deal information in Finacle Treasury. This enhancement eliminates the manual intervention of creating deal by automatically creating the deal in Finacle Treasury as soon as it is done in Reuters Dealing system.
Responsibilities:
· Analyze the changes required for the enhancement.
· Implementing the code changes for the enhancement.
· Unit testing the enhancement and fixing defects related to the enhancement.
· Providing support of the module for customer issues and change requests.
Environment: C++, Unix, Core Java.
Education:
· B.E (Information Technology), Maharishi Dayanand University, Rohtak, India (2000 – 2004)