Embedded Software Engineer Resume
Wilton, CT
OBJECTIVE:
- A full - time or contract position in managing and designing business solutions to complex problems that requires entrepreneurial skills coupled with solid technical knowledge and program management experience.
SUMMARY:
- Design and development of embedded products for telecom and Industrial domain using C/C++
- Vast experience of Linux development and integration and testing
- Excellent analytical, problem solving, troubleshooting and debugging skills acquired in the course of my career
- Developed device drivers for I2C, SPI, RS232, RTC chip, ADC, DAC on RTOS and no RTOS based boards
- Developed firmware for socket programming, multithreaded programming, interprocess communication such as shared memory, message queues in Linux environment.
- Linux command line knowledge, viewing process memory, map file, strace etc.
- Experience with Gnu Tools, compilers and linkers, Makefiles
- Knowledge of networking protocols such as L2, L3, MPLS and TCP/IP. Has very good understanding of TCP/IP layer, spanning protocols, switches, routers, hub, and congestion control.
- Python programming.
- RF knowledge
- Have very good hands on handling digital oscilloscope, DMM.
- Good in understanding schematics and interacting with hardware team.
- Systems design, requirements specification, programming documentation and testing of real-time systems. Expert in microprocessor applications design and implementation.
- Visited countries like Sweden, China and USA also as part of business meetings and integration activities.
TECHNICAL SKILLS:
Programming: C/C++,python
Operating Systems: Integrity, CMX RTOS, Linux, Windows CE 7.0, linux
Processors/Platforms: TI Hercules TMS570, Freescale i.MX53, i.MX28, TI LM3S series, FREESCALE coldfire MCF bit, FREESCALE HCS12 MC9S12DG bit processor, SOCs, ARM micro processors
Tools: IAR workbench, Code Composer studio, Metroworks, Microsoft visual studio, Eclipse tools, TI HALCOGEN, Source insight, Xilinx SDK, GNU toolset, Greenhills MUlTI, TI UNIFLASH, VI editor, putty, GDB, strace, wireshark, putty, hyperterminal, tera term, vmware, virtual box
Scripting: Python, shell scripting
Version Control Tools: Clear Case, Clear Quest (bug tracking), SVN
PROFESSIONAL EXPERIENCE:
Embedded Software Engineer
Confidential, Wilton, CT
Responsibilities:
- Development of linux modules such as AS and SF application drivers
- Developing the python modules for testing software components for SMASH, RH and RS.
Tehnical Lead
Confidential
Environment: TI HERCULES TMS570 processor, IAR workbench ARM cross compiler and editor, TI UNI flash flashing tools, TI JTAG debugger, Code is written C++.
Responsibilities:
- Did Proof of Concept to prove selected processor and AD ASIC chip works for our universal IO. Doing a POC helped company in evaluating the new processor and ASIC chip, since this processor was not used by Confidential previously in any of the projects, so there was so much of pressure on proving that this processor selection is the right choice. As a BSP engineer for this board, I am responsible for the go ahead with the proto board design after proving that this processor works well with our design.
- Board bring up after first prototype. This involves in checking all the peripherals on the board especially two ASIC chips, LED controller and I2C communication.
- Accuracy of AI/AO/DI/DO. This is the main goal of the product. The goal is to achieve digital signal should be read in 2 msec and an analog IO should be read in 20 msec. This goal is achieved in phases. It involved lot of tuning of all the tasks we have designed.
- Developed a simple software scheduler, which simulated an RTOS. It is a simple NON-PREMPTIE based OS scheduler wrote since this board doesn’t has space for RTOS image. So team decided to go ahead without any RTOS and with a simulated scheduler for scheduling each task. This is achieved using a timer module from TI processor in combination with function pointers.
- Checking processor peripherals like SPI towards backplane, towards ASIC, LED, Watchdog, On Board voltages monitor via on chip ADC
- Driver for ASIC Module. This is critical in tuning the IO cycle time for digital and analog IO channels.
- Did unit testing using python scripts. At this time, processor board is not fully integrated with this board, so we needed a way to test all the functionality of backplane communication. Entire backplane communication between the main processor board and this UIO board was tested with python scripts.
- Integration of UIO board with processor board, this integration activity happened at Shanghai, China. I have travelled to shanghai for integration and resolved most of the integration issues.
- Command based utility to check each peripheral, since at factory they needed a quick way to check first few boards from lot production and the people at factory are not engineers so they needed a simple command based utility to verify the peripherals of board.
- Involved in class design discussions for the application
Confidential
Environment: Freescale imx53 ARM controller
Responsibilities:
- Removal of secondary processor from the main board and remap all the IOs from the secondary processor to main processor.
- Rewritten SPI driver to match new IO mapping
- Touch controller issue: Marketing team raised issue that sometimes touch was not smooth and some buttons are not felt like they have been touched. I did analysis on the touch driver and tweaked to improve the smoothness of the touch feel.
- Obsolete display or new display panel: This project needed a new display for the product as its form factor has reduced from other models of the same existing series. Tweaked the display driver to accommodate the new display.
- Fixed the blur issue of display while the unit is booting. There is blur screen for few seconds between Confidential logo and appearance of desktop. Marketing team seriously raised a critical bug on this as this is the look and feel is bad. I have fixed this issue by tuning the display driver. Fix is given by powering on and off the display line till a valid input data is driver from display driver.
Confidential
Environment: Freescale imx53 ARM controller
Responsibilities:
- Fixed few IOMUX issues that caused conflict between NAND flash IO lines and secondary processor access IO lines.
- Implementation of external RTC MCP79412 driver over I2C
- Time lag issue of 5 seconds: In some of the units after the product is run for 1 month or so then there is a 5 seconds time lag is observed. This issue analysis went for over months and finally root cause is found that RTC chip is showing the time difference over a time period, solution was to with more accurate RTC chip.
Confidential
Environment: TI LM3S series processor, CCSv editor and compiler, TI JTAG debugger and uniflash flash tool
Responsibilities:
- Interrupts were not handled in this project by legacy firmware, so interrupt routines were reviewed
- Implementation of firmware upgrade
Senior Software Engineer
Confidential
Environment: C
Responsibilities:
- Got involved in the development of board support package activities.
- Developed drivers for IO expanders
- SMUI protocol support
- Developed download functionality support for composite and individual image download through
- Integration testing of RRH with BTS.
- Played key role in the integration with other teams.
Confidential
Software Engineer - II
Environment: C
Responsibilities:
- Configuring and programming Marvell 7 port ethernet switch 88E6176. As part of POC we have taken radio head product processor board and development board for 88E6176 and connected them by taking the Ethernet lines out. Driver is developed to communicate with PHY module of this Ethernet switch. Though it was not failed attempt, the driver was useful.
- Drivers for Attenuators, ADCs and DACs. Attenuators and AD/DA converters drivers were reused from previous projects, so they are ported to this project source code.
- Ethernet Interface with PH, Debug Port, Extension Box.
- I2c modules PSU, PA, VSWR, Extension board and POE.
Confidential
Software Engineer - II
Environment: C
Responsibilities:
- Design and development of Serial interface for communicating SMUI protocol commands. This involved writing serial driver, configuring Tx, Rx ports and writing interrupt handler for handling Rx data. Development of SMUI commands, SMUI is our internal data format protocol defined as per Powerwave standards.
- Developed I2C slave driver. I2c communication is used as an interface to Repeater.
- AD4360 Synthesizer driver porting. This involves writing driver for ADF4360 and this is on SPI bus
- Alarm module development like defining alarms, set alarms and clear alarms routines.
- Modifications to loop convergence algorithm
- Implemented gain vs Temperature Vs Frequency table
Confidential
Software Engineer
Environment: C
Responsibilities:
- Involved in development of different modules like APC, alarms, ATE interface and loop convergence.AD4360 Synthesizer driver porting. This involves writing driver for ADF4360 and this is on SPI bus
- Alarm module development like defining alarms, set alarms and clear alarms routines.
- Modifications to loop convergence algorithm
- Implemented APC derating controlling over voltage
- Implemented auto downloading functionality
- Allow or diallow APC setting from shelf
- Upgradation of velocity MCPA from Diablo shelf
Confidential
Software Engineer
Environment: C
Responsibilities:
- Ethernet packets handling task: Mirage repeater has main processor board where linux and web services will reside. This processor board communicates with RCM module over Ethernet. The Ethernet packet handling is main task of RCM module to execute all the commands send by the administrator/web module.
- This task is very critical w.r.t handling since we should process each command i.e each Ethernet packet, validate the packet and send it to command processing task. It is important to keep this task at high priority and at the same time we should give time for processing task to process the commands sent by main processor board.
- Developed temperature compensation tables for all the interfacing modules like FFA, VSWR, LNA and RCMRF
- Gain table implementation for FFA
Confidential
Software Engineer-II
Environment: C
Responsibilities:
- Web Server based Interface
- Powerwave’s Maintenance Terminal debug interface
- SMUI Test Interface
- MCPA communications
- Filter communications
- Splitter control - Set path gains
- Combiner Control
- Alarms
- General analog and digital hardware control
- Temperature monitoring
- Pre-Amp alarm simulation (pulses) and alarm monitoring
Confidential
Responsibilities:
- Worked for Development team in protocols like STP,RSTP and MSTP.
- Later moved to PS-NEC a customer of Confidential . This project is to design and develop a multi service switch by integrating IP Infusions ZebOS MPLS Solution with NEC’s CX2600. The CX2600 uses Broadcom EZRider 5660x switching chipset for MPLS and Ethernet switching. The ZebOS MPLS consists of IP/MPLS protocols for the VxWorks 5.4 operating system