Shameek Chakraborty
address: Pleasanton, CA *****
email: *********@*****.***, *******.***********@*****.***
phone: 507-***-****, 925-***-****
Systems Software Engineer
Software Engineer with highly specialized knowledge of Storage Systems, and Enterprise Servers; working for fortune 500
companies with 12+ years of US experience. Strong quantitative and programming skills as well as a system-level approach to
design and development allow me to tackle new problem spaces and make valuable contributions with minimal ramp-up time.
SUMMARY
- Very strong system programming background with C/C++ for large enterprise class software
- Expert level debugging skills in multi-threaded and clustered environment. Debugging skills include analysis of
application core dump, stack corruption, memory leaks. Very good knowledge of System Dump & Hang Analysis using Kernel Debugger
(kdb) - memory corruption, system hang, kernel panic, race conditions and server level issues.
- Very good knowledge of UNIX/Linux User Space, Kernel and Device Driver structure and operations. Good problem solving
skills at system level.Highlyexperienced in debugging device driver related issues.
- Worked on design/maintenance of various types of systems software components like Logical Volume Manager, DNS, telecom
and networking test automation platform, Embedded Systems Software components, Firmware
- 8+ years of experiencein UNIX/Linux internals: File I/O, IPCs,Socket Programming, Semaphores, OS Signal Handlers, Multi
-threaded programming, software development for Multi-processor systems
- Experienced engineer with expertise in Storage firmware design/implementation and debug on HDD, SSD. Implemented complex
features like Firmware Download, Interface Firmware components (SAS/PCIe drivers).
- 8+ years of experience on embedded software/firmware development.Very good experiencein programming at the hardware
level. Experienced with System primitives such as timers, DMA, interrupts, cache configuration and device registration.
- Low level software design, development, debug skills
- Very goodexperience with Embedded Linux running on microcontrollers (PowerPC/MIPS)
- Very good knowledge of ARM, PowerPCprocessor
- Very good grasp of Storage Domain, technologies such as SAS, PCIe, I/O subsystem
- Knowledge of Security Embedded Software development environment
- In-depth knowledge of protocol state machines, telecom and networking systems software (OSS), protocols like ISDN/SS7,
TCP-IP/X.25
- 5+ years of experience in developing solutions for telecommunications and networking systems software involving call
processing software and protocol state machines
EDUCATION: B.Tech. Electrical Engineering, 1995
IIT (BHU) Varanasi, India
TRAINING:
Six months of intensive class-room/lab training at Infosys Bangalore, India in Software Engineering.
TECHNICAL SKILLS
Hardware: IBM POWER7Servers, ARM-based SoC, PowerPC-based Microcontrollers
(PowerPC 405), MIPS, JTAG, In-circuit emulator (ICE), Dialogic Voice Boards
Operating Systems: UNIX/LINUX, Embedded LINUX, HP-UNIX, DEC, and Embedded Systems RTOS
Telecom/Datacom Protocols: ISDN/SS7, Q.931, TCP/IP, and X.25
I/O Interface: SAS (Serial Attached SCSI), PCIe, Fibre Channel
Application Protocols: DNS, LDAP
Systems Software Knowledge: UNIX Kernel (I/O Stack), Device Drivers, UNIX Internals, UNIX Network Programming, Multithreaded
programming, Multi-processor systems
Languages: C/C++, Perl, ARM Assembly, Shell Scripting
Functional Knowledge: UNIX Systems Programming, Embedded Software, Server Firmware, Cryptography, Storage Firmware
(HDD/SSD),IBM POWER Systems, LVM, UNIX Kernel/Drivers, Datacom Protocols, Telecom/Networking-based Systems (OSS), and SS7
Network
AWARDS
- Employee Recognition Award from Seagate for HDD firmware feature development
- Awards from IBM for troubleshootingLinux related issues and feature development
- Employee Recognition Award from HP for automation of Network System Testing
- Customer Satisfaction award from Infosys
EXPERIENCE SUMMARY
Employer Name: Trustonic
Address: Santa Clara, CA
Position: Sr. Software Engineer
Date: 2014
Description:
Trusted Execution Environment – TEE is a secure area that resides in the application processor of a mobile device. Support
integration of TEE into silicon partners' SoC
Environment: C/C++, Embedded Linux, Cryptography, Android, ARM Cortex
Responsibilities:
- Verification of Trusted OS and drivers through testcase implementation on different chipsets.
- Port Trusted OS on different hardware like Broadcom chipsets and debug issues –mainly linux, boot code, power
management.
- Write prototype for customers for Mobile security environment eg. AES encryption, RSA sign/verification etc.
Employer Name: IBM
Address: 11501 Burnet Rd, Austin, TX 78758
Position: Systems Advisor (Contract)
Date: 2011 – 2013
Description:
The Logical Volume Manager controls disk resources by mapping data between a simple and flexible logical view of storage space
and the actual physical disks.My role was to provide development support (backend support) for AIX kernel – Logical Volume
Manager for premium IBM customers.
Environment:C, AIX kernel, KDB, DBX, Multithreading, Unix internals, Shell scripts,awk, sed, AIX kernel components - LVM, File
Systems, VMM, POWER Servers
Responsibilities:
- Debug customer reported problems in C source code of AIX user space/kernel, file bug reports and implement code fixes
for customers in LVM component.Provide quick workaround and solutions for demanding customers.
- Debug system crashes (kernel dumps) and system hangs.
- Analyzed kernel traces for tracking I/O flow in various layers of AIX I/O stack
- Troubleshoot Storage related issues that cause LVM operations to fail.
- Provide workarounds to recover from system failure.
- Fixed core dumps, memory errors in C code for the LVM binaries and LVM library
- Debug customer issues on GLVM component thatextends LVM mirroring function across TCP/IP network
Employer Name: Qualcomm
Address: 9600 N MoPac Expwy, Austin, TX 78759
Position: Application Engineer (Contract)
Date: 2010 – 2011
Description:
This position involves providing engineering support for the tool chain running on Qualcomm’s DSP processor for Qualcomm’s
internal customers. The tool chain includes GNU compiler, linker, assembler, debugger and QDSP Instruction Set Simulator.
Operating systems being supported include a Qualcomm specific RTOS. Also provide support formultimedia test framework on QDSP
processor.
Environment:C, GNU tools (compiler, linker, assembler, debugger i.e. gcc, ld, gdb, binutils etc), Qualcomm DSP Core (Hexagon),
Instruction Set Simulator, Qualcomm’s RTOS, Multimedia Test Framework
Employer Name: Cavium Networks
Address: 805 E Middlefield Road, Mountain View, CA 94043
Position: Application Engineer (Software)
Date: 2010
Description:
Provide engineering support to end customers for software running on Cavium chips (Octeon). Octeon is MIPS64 based multi-core
processor that offer high performance low power solutions for packet switching applications. Cavium specific software includes
embedded Linux (user space, GNU tools, Ethernet drivers, u-boot, PCIe/DMA drivers etc) Cavium SDK, APIs etc.
Environment: Embedded Linux, C, GNU tools, Linux drivers, Cavium drivers, MIPS, PCIe, Emulators (JTAG), TCP/IP, IP-Sec.
Employer Name: Seagate Technologies
Address:1280 Disc Drive, Shakopee, MN 55379
Position:Sr. Firmware Engineer
Date: 2005 – 2010
Description:
This position involves collecting requirements, design, and implementation of disc drive controller firmware for an embedded ARM
SoC. This firmware controls every aspect of the drive’s behavior from interface to the host (Serial Attached SCSI, Fibre
Channel) to writing data on the media and reading it back. My area was to work on Interface Firmware development (SAS), Firmware
Diagnostics like Factory commands, Media Scan Tests and Embedded Systems Kernel.
Environment:C,ARM assembly based software, ARM based SoC, SAS, PCIe, Fibre Channel,Emulators (JTAG/ICE), debuggers, ASIC
simulation,Perl, Windows based cross-compiler and Perforce
Responsibilities:
- Firmware feature development and bug fixing on the interface side of disk drives involving the SAS (Serial Attached
SCSI) Protocol. Been involved in debugging assert failures, timeouts, protocol violation.Locate hardware issues atASIC leveland
provide workaround in the firmware.
- Design/implementation ofQuick and Robust Download for SAS interface. Feature development and bug fixing on download
microcode & reset code, firmware initialization area. Creatememory maps, firmware image file formats, flash layouts, memory
layouts of the target firmware for different Seagate products. Debugging code download/software reset and hardware
initialization
- Design/implementation of embedded systems kernel for SSD
- Design/implementation of PCIe software driver for SSD
- Design/implementation of Factory Command Features for HDD.
- Design/implementation of features involving Media Scan Tests, DST for HDD
- Debugged issues involving shared data problem between kernel tasks and IRQ handlers, memory corruption, deadlocks, race
conditions, task starvation and other areas. Developed extensive experience in debugging memory corruption incorrect programming
of hardware, thread safety problems, Re-entrancy issues, Instruction Area corruption etc.
- Been extensively involved in Configuration Management activity involving firmware verification/integration, releasing
code, build activities etc.
Employer Name: IBM
Address: 3605 Hwy 52 N, Rochester, MN 55901
Position: Software Engineer (Contract)
Date: 2002 – 2005
Description:
FSP (Flexible Service Processor) boots up the main operating system of the iSeries and pSeries machines, carries out the initial
hardware diagnostics and initialization and helps the system to isolate run time problems. It also allows connectivity to the
server through HMC, helps in configuring the servers (for example create logical partitions).
Environment:C/C++/Linux, Linux Shared Libraries, UNIX internals, LinuxDevice Drivers (DMA), Power PC, Microcontroller, Multi-
threaded applications,Linux Systems Software,ELF
Responsibilities:
- Provide Linux expertise and help in DMA and PowerPC interface software related areas.
- Design/implemented PERC (process error context) which is a thread safe Linux shared library that captures the stack of
the application during core dump and allows error logging.
- Design/implementation/testing of Linux shared library for providing DMA (Direct Memory Access) to and from the
microcontroller address space to the host address space. DMA APIs interact with the DMA device driver to transfer data between
the host and the microcontroller address space using IBM’s I/O Bridge.
- Maintenance/testingof DMA device driver.
- Design, implementation of CEC Term. This allows FSP to reboot the system.
- Testingof CPU controls.This allows user to dump microprocessor registers, setup break points, step through instructions
etc.
- Testing of CuOD (Capacity On Demand). This is IBM’s “on demand” technology offered on its mainframes and AIX servers.
- Provide engineeringsupport to internal & customer testing of eServers through analyzing and fixing problems in the
embedded systems software. Debug software related issues like memory errors, configuration issues, system software issues,
device driver issues, microprocessor and hardware related issues (specially debugging hardware issues involved in DMA
transfers).
- Testing of mailbox - it is a daemon/device driver package which runs on Linux and allows message passing between
different partitions of an IBMeServer.
EARLIER CAREER
Telcordia Technologies, Piscataway, NJ
Software Engineer (Contract)
Design and implementation of call processing software(ISDN-PRI).
Hewlett Packard – India Software Operations, Bangalore, India
Sr. Software Engineer
Provide sustenance/feature development of HP-UNIX DNS server/client.
Infosys, Bangalore, India
Systems Analyst
OCTAVE is a telecom/datacom test platform developed by Nortel Networks for testing various functionalities of a DMS 100 Switch.I
did feature development that's part of OCTAVE platform like enhancing OCTAVE to support various protocols X.25, ISUP, interface
with Soft-switch etc.