RAVALI CHOWDARY
Contact No: 438-***-**** Email ID: ******************@*****.***
WORK SUMMARY:
Over 5+ years of experience in Embedded real-time Analysis, Design, Development, Implementation, Debugging and Testing of applications using Embedded C and C++ languages.
Extensive experience in design, development, enhancements and maintenance of the industrial automation applications.
Good exposure to each of the phases of Software Development Life Cycle (SDLC), developing projects from stage of concept to full implementation.
Strong hands-on fundamentals in Boost, STL Data Structures, Templates and algorithms.
Sound Proficiency in Object oriented concepts (Virtual functions, UML, Abstraction, Encapsulation, Inheritance, Polymorphism etc.).
Hands on Experience in C Programming (Pointers, DMA and Data Structures, Bit operations) etc.
Expert knowledge in C++, STL, Design Patterns and Multi-threading.
Expertise in the OOPS, Multi-threading, String pool, C++ Packages, Exception-Handling & Collections.
Development experience with XML, JSON, TCP/IP, UDP/IP, SSL/TLS, HTTP and Multithreaded application using IPC mechanism.
Experience working on a wide range of microcontrollers/microprocessors such as 8051, 8086, ARM, PIC on embedded devices.
Good understanding of SDLC processes, AGILE-SCRUM and waterfall methodologies.
Led the migration of historical data to client; fine-tuned SQL & database, generated reports for management, etc.
Design and develop solutions using C, C++, Multi-Threaded, Shell Scripting.
Using PVCS Version Manager as code repository and PVCS Tracker as Defect management system. Using Oracle SQL Developer for Database Activities.
Peer reviews of the Design and Source Code (C, C++, and Shell Scripts).
Worked extensively on multi-threaded codes using embedded RTOS environments.
Experience with serial communications including RS232, RS485, I2C, SPI and I2S.
Strong experience in automating system test and production tasks using Shell Scripting and Python.
OOPS & Design Architecture: Knowledge of patterns. Came across some patterns like Factory, Singleton pattern while working with the project architecture.
Expert knowledge in development and debugging tools using Visual Studio & GCC.
Experience with working on Databases, SQL Server.
Experience in using IDEs – Eclipse, Pycharm, Visual Studio, GNAT programming studio and Code Composer Studio.
Proficient in developing user level requirement collection, coding, bug fixing, and Unit testing.
Proficient in using Debugging tools like gdb, dbx, pdb and other code analysis tools Coverity, cppCheck, Valgrind, gprof.
Strong understanding of Data Structures, IPC, Multithreading, Socket Programming and Memory management.
Hands on experience in developing using Linux (Internals of Linux, debugging tools, mutex, semaphore, make files, Libraries).
Hands in Project using Concepts (Storage classes, Preprocessor, String handling, Arrays, Functions, structures, Data structure, Function pointer, Dynamic memory allocation. Etc.).
Strong understanding of the Linux networking stack and the communication mechanisms and interfaces between the different components in the system.
TECHNICAL SUMMARY:
Programming Languages & Scripts
C, C++, Python, Shell scripting, Core Java
Operating Systems
Ubuntu, Windows, Sun Solaris, RHEL, IBM AIX.
Protocols
TCP/IP, UDP, RTP, CAN, I2C, SPI, 802.11 Standards, SNMP, KWP2000, LIN, RS 232, GMLAN, KWP.
Databases
Oracle, MySQL, Microsoft SQL Server, MongoDB.
Tools
GNU emacs, Code Compare, eclipse, UML tools, MS-Office, splunk, Jira, OpenGrok, Valgrind, gprof, Coverity, cppCheck, gdb, pdb, dbx, Jenkins, Wireshark and Charles debugging.
Libraries& Frameworks
STL, Boost, BDE, IPC, multithreading, sockets, SOAP web services, Software Design OOP/OOD, Design Patterns, Apache Active MQ.
Version Controls
Bit Bucket, GIT/GitHub, SVN, CVS.
WORK HISTORY:
Nordia, Montreal, QC Sept 2018 – Till Date
Role: Embedded Software Developer
Responsibilities:
Rudy products are targeted primarily Pre-aggression Router needs including core-to-edge enterprise implementations and the edge of service provider networks. L2VPN essentially transports Layer 2 data over MPLS Network by creating Pseudowire which is point-to-point tunnel between two PE Routers. I have got the opportunity to develop software and resolve some critical issues in High Availability (Redundancy) Architecture in L2VPN Area. I have learnt many Layer 2 and Layer 3 Protocols as part of this development and Unit testing the features. I have been working closely with our team and Remote teams to get the things done in time.
Responsibility
Developed software for new card RS-232 on Rudy (Pre-aggression Router).
oWorked on memory management
oFirmware Synchronization and State machine sync between IOS and iomd.
Developed software feature for POS (Packet over Sonet) with OC3 bandwidth 155.4 Mbps
Developed software feature of OC12 bandwidth 622 Mbps for SDH/SONET DS1, DS3 and POS.
Developed the python-based scripts for automated the testing and find issues with regular basis.
Developed the python-based scripts for testing for vehicle protocol and CAN network.
Firmware development on the BMS (battery management system)
Develop BMS control program on the PIC microcontroller.
Develop peripherals on CAN, RS232/485, SPI, and I2C.
Developed a software feature for Serial interface (HDLC/PPP) in oc12 mode.
Developed a software feature for debugging the console log of MRT ouput
Find and fix the root cause of insufficient power supply voltage of board and unreliable usb cable issue.
Rebuild ADB from open source code, modify code to work with massive amount of android devices simultaneously.
The console output of MIPS processor and winpath is redirected to iomd log of PPC.
Developed software in C- Coding, Unit testing and many issues have been fixed once features delivered to Testing. Features have been stabilized to the large extent.
Developed media streaming packaging/segmentation - utilizing HLS and MPEG-DASH adaptive streaming mechanisms - for embedded Linux Gateways.
Implemented AES encryption/decryption for the company proprietary streaming solution, support of hardware acceleration for cryptographic features.
Refactored and utilized open source libraries (i.e. Shaka-Packager, Cereal, ZeroMQ, Bson, etc.)
Embedded Xilinx Zynq application for high throughput and low latency communication including RTL design (Vivado), High level coding (HLS), and C/C++ programming for the embedded A53 ARM Processors (SDK).
Implemented DVB-S2 transceiver on several SDR Hardwares such as Ettus (or Nation Instrument) USRP B210 and RTL SDR devices.
Implemented the synchronization process of an LTE user device with the LTE downlink signal by partly implementation of its receiver on Xilinx ZC706 Evaluation board.
Developed a serially programmable high speed IO expander for control applications on Digilent ZYBO Evaluation Kit.
Environment: C, C++, Python, Matlab, MFC, API, Autosar, CAN, GNU, MAC, Design Patterns, STL, multi-threading, Linux, HLS, MPEG-DASH, embedded Xilinx Zynq, embedded A53 ARM, LTE, Xilinx ZC706, Digilent ZYBO.
SED Systems, Saskatoon, SK Jun 2016 – Aug 2018
Role: Embedded Software Developer
Responsibilities:
Responsible in writing the different object-oriented PC programming concepts in simulating the various microcontrollers.
Designed Microcontroller based systems to automate various tasks.
Implemented drivers to make Labview and MicroBlaze CPU communicating via SPI bus. The drivers are developed with C and Labview programming languages.
Developed drivers with C to read write to DAC chipset (AD8390) and ADC chipset(DDC1128).
Implemented optical path routing algorithm with C, running on MicroBlaze soft core.
Implemented driver with C for AD5390 to collect sensor data from 768 photon detectors, over SPI/I2C bus.
Implemented user interfaces with Labview to control optical switch prototype calibration, configuration, over SPI/I2C bus.
Implemented PCI device driver in MicroBlaze to communicate customized optical chipset.
Worked with hardware engineer and FPGA developers, debug existing hardware and FPGA platform, at chipset input/output signal and pin voltage level, pinpoint issue and provide solutions.
Configured the MicroBlaze CPU and DDR to optimize memory usage and paging.
Supported in creating system test cases, debug firmware and embedded application code.
Presented weekly progress report and interim report when important issues found or solved
Responsible in writing the codes in Embedded C and C++, debugged the microcontrollers and checked various circuits for the desired results.
Responsible in writing the object-oriented programming such as C & C++ to design, code, test and troubleshoot the embedded software subsystems.
Validated the code using the embedded communication protocol RS 232.
Worked on digital designing the ARM & Cortex M microcontrollers.
Modified existing software to correct errors upgrade interfaces and improve performances.
Develop new programs, enhancements, modifications, and corrections to existing embedded applications and operating system level software.
Document the software change description document; design UML diagrams needed to better notdescribe the code changes in the feature implementation.
Environment: C, C++, Design Patterns, SQL, Python, bash, ksh, Linux, POSIX Threads, SVN, git, Github, OOAD, BOOST libraries, gdb, pdb, dbx, OpenGrok, Jira, Labview, JTAG, SPI/I2C, FPGA, DDR and EEPROM, Xilinx MicroBlaze.
Vasek Automation Pvt Ltd, India Sept 2014 – Apr 2016
Role: Embedded C Developer
Responsibilities:
Analyzed and understand new system features based on underlying requirement specifications and standards.
Ported Embedded C code to new SDK versions in order to incorporate new fixes
Handled different embedded communication buses (UART, USART and CAN).
Effectively implemented various protocols (MQTT, TCP/IP, URP, SIP and CMIP).
Developed modular Embedded Software for 8/16/32 bit microprocessors/microcontrollers.
Developed asynchronous event model for processing and tracking rescue protocols using MQTT.
Prepared Embedded C code using Linux environment for speed control system.
Worked with Programming 8/16/32bit micro controllers using embedded C and Communication Protocols.
Developed a test system using Freescale evaluation board using embedded C, C++ to provide synchronization and start up node emulation to the Engine module test system.
Used algorithms, various data structures and design patterns in software design like Singleton for database connections & Observer pattern for processing events.
Use of JTAG/SWD debugger to single step in the code.
Debugged and troubleshooted production issues, enforced, documented and implemented C++ standard guidelines.
Developed communication protocols such as FIX over TCP/IP, SSL/TLS and HTTP for applications.
Created embedded applications matching client's requirement.
Participating in product review/ demo meetings with clients, stake holders and suggest new tools and development methodologies that may help the current release and the project.
Environment: Embedded C, C++, Design Patterns, SQL, git bash, Net beans, Linux Ubuntu, POSIX Threads, SVN, git, github, shell scripting, OOAD, BOOST libraries, gdb, Bit Bucket, Jira, Confluence.