Software Engineer Resume
Wilton, CT
PROFESSIONAL SUMMARY:
- 12+ years of experience in Software development.
- Expertise in C++, C, Python, Linux, Unix, RTOS, POSIX API, Linux Device Drivers, Linux Kernel Module programming, TCP/IP Network Programming, IPC and Multi - threaded programming.
- Experience in Kernel and User Space programming for Ethernet, WiFi, USB, I2C and SPI.
- Experience in customizing and building Linux images including Linux tool chains, BSPs, and libraries.
- Familiar with Python, Shell Scripting languages for Build and Test automation.
- Expertise in debugging and resolving software system issues.
- Experience in User Interface design and development.
- Contributions to cppcheck (Static Code Analysis tool).
TECHNICAL SKILLS:
Languages: C (C99, GNU C Extensions, C11), C++ (C++98, C++03, C++11, C++14), Python, ARM/x86 Assembly Language, Shell Scripting, PERL.
Operating Systems: Linux (RHEL, SLES, Fedora, Ubuntu, Embedded), Android, Solaris, HP-UX, OpenBSD, VxWorks, ThreadX, Mac OS, Windows.
Databases: SQLite 3, MySQL, MS SQL Server.
GUI Libraries: Qt4/Qt5, MFC.
Network Protocols: TCP/IP, HTTP, SNMP, FTP, WebDAV, IPsec, SMTP, UPnP, IPP, LPD, MDNS, SSH.
Embedded Interfacing: USB, SPI, I2C, GPIO, UART.
Analyzers/Debuggers: gdb, valgrind, gcov, gprof, Bullseye Coverage, Coverity Prevent, DUMA, cppcheck
Development Tools: Source Insight, cscope, Eclipse, Visual Studio, KDevelop, geany, Brackets, WindRiver WorkBench, Pycharm, Android Studio.
Network Tools: Wireshark, tcpdump, netstat, SOAP-UI, ApacheBench.
Unit Testing: Google Test, Python unittest, CppUnit.
BugTracking Tools: Jira, Bugzilla, Trac, Rational ClearQuest.
Libraries and Frameworks: Boost, STL, libCurl, libzip, libssl, libjpeg, libpcre, libnetsnmp, libssh.
Software Configuration Management: SVN, git, Perforce, IBM ClearCase.
Build Systems: BuildRoot, Yocto, OpenEmbedded, Custom Makefiles, CMake.
Continuous Integration Tools: Hudson, Jenkins, Travis CI.
Modelling Tools: StarUML, MS Visio, IBM Rhapsodi
Development Methodologies: Waterfall, Scrum/ Agile
Web: JavaScript, HTML5, XML, CGI, SOAP, REST, WSDL, JSON
Advanced Programming: Embedded System Development, Linux Driver Development and Porting, Linux Kernel Optimization, Network Programming, Test Automation, Linux USB, Data Visualisation, DTV/STB Middleware, Service Oriented Architecture, UPnP, DLNA, High Performance Computing, Digital Imaging, Digital Printing Protocols.
PROFESSIONAL EXPERIENCE:
Confidential, Wilton, CT
Software Engineer
Role & Responsibility:
- Fixed the inline calibration algorithm for Reticle pre-alignment. (C/C++, Linux)
- Developed Unit Test modules using GoogleTest. (C++)
- Developed code to simulate quad cell measurements for inline calibration. (C/C++, Linux)
- Developed interface to read Pre-Alignment specific machine constants through RPC interface.
- Developed CPD software test implementation for IP based Bar Code Reader. (C/C++, Linux, Network Programming)
- Improved the Robot driver to gracefully handle the failures. (C/C++, RPC, Linux, VxWorks)
- Developed Auto-Testers using Python Unit test to verify implemented/fixed features and to improve the overall code coverage. (Python, XML)
- Refactored Reticle handler’s Turret module written in C to C++.
Environment: Wind River Linux, VxWorks, C, C++, Custom RPC, Python Unittest, Google Test, XML, Test Driven Development
Confidential
Software Engineer
Role & Responsibility:
- Developed Network port filter module in C++ to block/unblock network ports using iptables.
- Developed Server-Side Session Management in C++ for Web monitor.
- Developed email sender in C to support Scan-to-email/Fax-to-email feature.
- Developed POP3/IMAP emails download and email header/attachment extraction interface in C to support Internet Fax.
- Developed interface in C/C++ to send/receive email delivery notifications (MDN/DSN) for Internet Fax.
- Developed WebDAV upload interface in C to support Scan-to-WebDAV/Fax-to-WebDAV.
- Developed FTP upload interface in C to support Scan-to-FTP/Fax-to-FTP.
- Developed SMB upload interface in C to support Scan-to-SMB/Fax-to-SMB.
- Developed SMB Browser interface in C++ to support Samba Browser functionality.
- Developed Connection Test API in C++ for FTP, SMB and WebDAV.
- Ported ASIX USBNET driver to printer board. (C, Linux Kernel)
- Implemented LPD (Line Printer Daemon) Protocol in C.
- Investigated and fixed ping latency on printer Wi-Fi interface. (Wireless Tools)
- Customised Web Server (lighttpd) to enable HTTPS, WebDAV and authentication from database. (C, HTTP Authentication Protocols)
- Developed Address Book for WebMonitor. (C, HTML, JavaScript, CSS)
- Developed Web Print feature to enable driverless printing. (C, HTML, JavaScript, CSS)
- Implemented IPP (Internet Printing Protocol) request parsing in C to enable Android Mobile Printing.
- Developed IPP Scan for MFP in C to enable Android Mobile Scan.
- Developed interface in C to check authenticity of consumables using I2C based smartIC.
- Added user space interface to watch for events from MFP keys. (C, Linux Kernel, UIO Drivers)
- Developed Touch Event injection module in C++ to enable remote control over Printer Touch panel.
- Fixed bugs and performance issues in Apple Airprint support. (C, Unirast)
- Integrated video playback support using GStreamer. (C, GNU AutoConf)
- Integrated Mesa-3D OpenGL library in QtWebkit to enable advance features in Web Browser.
- Ported Network Card Authentication support with PaperCut code written in Python to C.
- Optimised DB access routines. (C, sqlite3)
- Deployed cron daemon in MFP board to perform routine tasks. Wrote cron jobs for desired routine tasks.
- Ported CUPS based print filter to Solaris 10. (C, GNU AutoConf)
- Ported GDB on ARM based Printer Board. (C, GNU AutoConf, Makefiles)
- Fixed bugs and performance issues in Touch Panel Driver. (C, Linux Kernel)
- Developed interface in C++ to configure SNMPv1/v2c/v3 for Printer.
- Enabled IPSec Support in Linux Kernel and Ported IPSec tools to ARM Board. (Linux Kernel Configuration, GNU AutoConf, Makefiles)
- Developed interface to encode Scan/Fax data and embed it into JSON for securely sending it over HTTPS. (C, JSON, REST)
- Fixed the security issues identified by Acunetix (Web application security scanner) in Web Monitor.
- Performed Microsoft WHQL (HCK) Driver Certification tests on Printer Driver.
Environment: Linux 3.2, ARM, C, C++, JavaScript, HTML5, SQLite3, Qt5, STL, Python, Marvell 88PA6170 SOC
- Confidential .
- Developed Network Manager in C/C++ to control the network interfaces.
- Developed gcode Downloader/Decoder/Extractor/ to enable AWS based Cloud Print Support.
- Developed WiFi connection manager in C/C++.
- Customized Web Server (lighttpd) to use it as proxy to get Camera images/Video stream from streaming server.
- Fixed latency issues in 3D object’s video streaming server written in C.
- Developed CGI scripts in C to interact with 3D Printer through Web Interface.
- Integrated open source libraries in 3D printer SDK. (openssl, net-snmp, curl etc)
- Developed sub agent in C to retrieve 3D Printer status information using net-snmp.
- Developed API in C to capture and send 3D object snapshot and print status over email.
- Enhanced the performance HTML5 based GUI by applying standard optimization methods.
- Fixed performance issues in Qt Webkit based Embedded Web Browser. (C++, Qt5)
- Added device tree entries for I2C/SPI devices. (Kernel Configuration)
- Ported Display and Touch Panel driver to Android for Printer Board.
Environment: Linux 3.2, ARM, C, C++, JavaScript, HTML5, SQLite3, Qt5, STL, Python, Marvell 88PA6170 SOC
Confidential
Lead Engineer-II
Role & Responsibility:
- Developed UPnP - Scheduled Recording Service in C++.
- Developed UPnP - Connection Manager Service in C++.
- Fixed interoperability issues with Cisco and Motorola devices.
- Fixed performance issues with database manager module written in Embedded SQL with C++.
- Fixed issues reported by UPnP and DLNA CTT.
- Configured Ethernet over USB and modified dropbear to enable ssh login to ediary. (C, Kernel Configuration)
- Developed eDiary photo viewer GUI and backend functions in C++.
- Developed XML parser for reading chart XML file in C++.
- Ported Charting library written in libgdi to C++ based Samsung Proprietary GUI library for LFD/DTV.
- Developed linear gradient fill algorithm in C for shapes, charts and table element.
- Modified uncrustify code beautifier for auto insertion of comments in C/C++ source code as per Samsung Coding Guidelines. (C++)
- Developed Embedded Web Browser in C++, Qt4.
- Developed XML based UI Customisation feature in C++.
- Developed Screen Sharing feature in C++, Qt4.
- Fixed image streaming performance by applying image quality adaptation.
- Confidential
- Developed Copy application in C to make legal copies of Blue-ray Disk in Blue-ray Player.
- Designed and developed GUI and MP4 sanity checker in C++ for DECE Content Packager.
- Developed interface in C++ to upload the packaged MP4 file onto DECE content Server.
- Fixed performance issues in copy application.
- Confidential
- Developed EPG (Electronic Program Guide) Application for Hotel TV in C++.
- Developed Image Transition effects for Digital Photo Frame in C++.
- Implemented RSS feed downloader and reader application in C++.
- Developed boot progress indicator in C for Digital Photo Frame.(C, Linux Kernel)
- Developed firmware downloader and update manager in C/C++ for Digital Photo Frame.
- Implemented a module in C++ to extract metadata information from photos and music files in Digital Photo Frame. Additionally this module builds the SQLite database of information extracted from files.
- Ported I2C based Touch Panel Driver to Digital Photo Frame. (C, Linux Kernel)
Environment: Linux 2.6/3.2, ARM, MIPS, C, C++, SQLite3, Qt4/Qt5, MFC, Proprietary/Broadcom/Marvell SoC, CppUnit
Confidential
Member Technical Staff
Role & Responsibility:
- Developed Utility in C to parse Linux Kernel Patch files and prepare a HTML report.
- Developed GUI in C++, Qt3 for Automated Migration Tool.
- Developed PERL scripts for automated migration from RHEL 2.1 to SLES 9.0.
- Developed a patch to virtually increase the memory up to 511 GB on IA-64 Linux machine.
- Customized kernel configuration to reduce kernel image size.
- Analysed kernel patches of the distributions like RHEL (2.1, 3.0, and 4.0), SLES (9.0) and Miracle Linux.
- Performed investigation over the HPC products offered by IBM (iSeries pSeries, xSeries, BladeCenter and System Cluster series).
- Performed investigation for fast booting in Linux.
Environment: Linux 2.6, IA-64, C, C++, Qt3, MySQL, NEC HPC Servers