Module Lead - Systems Resume
Houston, TX
PROFESSIONAL SUMMARY:
- 8+ years of software engineering research and development experience.
- Experienced in full software life cycle including product development, new projects, redesign projects, maintenance projects, and new feature development in Agile environments using procedural, OOD, SOLID, design patterns, CI, continuous integration, TDD, and BDD.
- Experienced in C and C++ development in cross platform Windows and Linux multithreaded and multiprocessor environments including register level hardware development for device drivers and storage controllers, filter drivers, client - server, n-trier, and distributed systems as consultant, senior, and lead.
- Experienced leading software projects and teams.
- Experienced in Java, C# .Net development.
- Experienced in security including public key and symmetric key authentication and encryption for transmission and storage.
- Also interested in applied mathematics, statistics, big data, machine learning, parsing, language engineering, compiler engineering, erasure coding, and systems engineering.
TECHNICAL SKILLS:
Languages: C, C++, C#, Java, Shell Scripts, Regular Expressions, JSON, XML API's: POSIX, Win32, .Net, WDK, Sockets (POSIX, Berkley, Winsock), OpenGL
Libraries: boost, ASIO, STL, Crypto++, Confidential Threading Building Blocks.
Networking: IPv4 (TCP, UDP), IPv6, HTTP
Concepts: SDLC, OOD, AOD, OOP, SOLID, TDD, BDD, Design Patterns, Service Oriented Architecture, SOA, SOAP, REST, Distributed Systems, Cloud Services, Microservices, Containers, Multithreading, Cryptography (Asymmetric Public/Private Key, Symmetric Key), ECC (Error Correction Codes), Windows Services, Deamons, Machine Learning
Operating Systems: UNIX (Linux, FreeBSD, SLES10, SLES11, Debian, Ubuntu), Windows (2000 Pro, XP, 7, 8, 10) Windows Server (2000, 2003, 2008, Active Directory)
Software: Visual Studio (6, 2003, 2008, 2010, 2012, 2013, 2015, 2017), NASM, GAS, GCC, GDB, gmake, GIT, Subversion, Perforce, VMware, MS Office.
Database: Microsoft SQL Server, PostgreSQL, MySQL, Sqlite, SQL
PROFESSIONAL EXPERIENCE:
Confidential, Houston, TX
Module Lead - Systems
Responsibilities:
- Diagnosed architectural and functional design and issues with ThreadX based MIPS C and C++ SAS expander and drive enclosure firmware with I2C attached ARM micro controller, SPI flashing, and associated I2C and GPIO state machines, I2C TWI driver; and ThreadX locking, threading, interrupts, application timers.
- Created test SAS expander firmware to stress and diagnose SAS expanders.
- Maintenance support for HPE SAS Switches and Enclosures.
Environment: Embedded, RTOS, ThreadX, SCSI, SAS Expanders, SAS Switches, SAS Enclosures, REST, C, C++, ARM, MIPS, SPI, I2C, TWI, Multithreading, Interrupts, Real Time, Green Hills Software C++ Compiler MULTI v5.1.7D MIPS, PMC SAS Expander SDK, Linux, CMake 2.8.7, Python 2.7.3
Confidential, Houston, TX
Software Engineer
Responsibilities:
- Created Linux PCI device driver for proprietary engineering hardware, and command line program to control and interact with driver and PCI hardware.
Environment: Waterfall, OOD, OOP, SOLID, design patterns, TDD, BDD, C, C++, STL, gcc, gdb, gmake, PCI, Programmed IO, PIO, Asynchronous IO, Direct Memory Access, DMA, ioctl, POSIX, multithreading, Linux Kernel Modules, Linux Device Driver, Red Hat Linux
Confidential, Charlotte, NC
Systems Architect
Responsibilities:
- Setup new Visual Studio 2005 and 2012 compiler solutions and configurations including support for cross version runtime mixing.
- Refactored and resolved issues with ant build including adding support for multiple java version builds (Java 6 and Java 8), integrating new Visual Studio solutions, and circular dependencies.
- Refactored and resolved issues for quant cross language bindings library and code generator. Refactored and documented existing code generator and its processes. Support for C++, C#, Java 6, JNI.
- Diagnosed, resolved, and demonstrated performance and issues with quant cross language bindings library and quant library.
- Resolve year long performance issues with quant library, doubling performance.
- Resolve long standing issues in quant library including fixing skewed numbers for linear optimization, and mortgage calculations.
- Designed and developed new Java 8 bindings between cross language bindings quant library and new in house consumer producer Java 8 pipeline processor library.
- Technical phone interviewing new staff candidates and hires.
- Triage and training of staff and management in building and distribution of Linux distribution independent binaries.
- Triage and training of staff and management in Linux, Windows, C++, Java, C#, Visual Studio, Eclipse.
Environment: OOD, OOP, SOLID, TDD, BDD, CI, continuous integration, Hudson, Maven, Java 6, Java 8, JNI, C, C++, Managed C++, C#, .Net, Eclipse, Maven, Ant, Visual Studio 2005, Visual Studio 2012, gcc, gdb, Subversion, SVN, Git, Linux, Windows.
Confidential, Santa Clara, California
Lead Software Developer
Responsibilities:
- Designed file sharing appliance providing NFS and CIFS shares based on distributed system concepts to share files stored fully encrypted, compressed, and deduplicated in cloud based object storage with hierarchal storage, caching, locking and transactional storage between both appliances and cloud object storage.
- Simplified design for a Proof Of Concept (POC) implementation by an offshore Indian team using OpenDedup, Samba, and NFS-Ganesha as a starting basis. Surveyed OpenDedup code base and provided design and feasibility feedback. Provided additional documentation and training to team. Assisted Sales Engineer in communicating requirements and design between management.
- Integrated existing Confidential products in design such as Wind River OVP, DPDK, ISL, QuickAssist, and other unreleased products. Provided improved interface for QuickAssist to Confidential .
Environment: OOD, SOLID, design patterns, TDD, BDD, Java, Spring, JNI, C, C++, SOA, multithreading, Eclipse, Maven, Visual Studio 2010, gcc, gdb, make, cryptography, authentication, encryption, AES, Zlib, deduplication (fixed and variable size), hypervisors (Linux, QEMU, Wind River), web services, cloud storage (Amazon Web Services, AWS, Microsoft Azure, Google Cloud Services, OpenStack), DevOps, distributed systems, transaction processing, NoSQL, SQL, REST, CIFS, NFS, FUSE, POSIX, Linux Kernel Modules, Linux, Ubuntu, Wind River Linux OVP, Confidential QuickAssist, Confidential DPDK, Confidential ISL, Subversion, SVN
Confidential, Folsom, California
Graphics Software Engineer
Responsibilities:
- Added support for MSSQL database PHP backend to in house version of open source project Meeting Room Booking System (MRBS)
- ITP posted and screened, validated, and ran execution on Broadwell silicon parts.
- Assisted junior collegue with modifications to C# .Net WPF project.
Environment: C#, PHP, SQL, .Net, WPF, XAML, UI, Visual Studio 2010, Microsoft SQL Server, Windows Drivers
Confidential, Houston, Texas
Software Engineer
Responsibilities:
- Designed and implemented cross-platform Linux, Solaris, and Windows application library for hardware and system data access for use by Intelligent Provisioning. Provides layered interfaces for CMOS, IO space IPMI, PCI Configuration Space MBARs and IOBARs, physical memory, SMBIOS, ILO CHIF/SMIF, PCI Registers, System NVRAM, and Compaq/HP ROM EVs.
- Redesigned and rewrote command line utilities in Smart Start Scripting Toolkit such as conrep and other in house utilities to use new library, provide better error handling, be more maintainable, unit testable, multiprocessor safe, and support 64 bit Linux binaries.
Environment: Agile, Waterfall, OOD, OOP, SOLID, design patterns, TDD, BDD, C, C++, multithreading, boost, STL, CMOS, IO space, IPMI, PCI Configuration Space, PCI MBARs and IOBARs, PCI Registers, physical memory, SMBIOS, ILO CHIF/SMIF, System NVRAM, Compaq/HP ROM EVs, gcc, gdb, gmake, cygwin, Windows Drivers, Linux Kernel Modules, Visual Studio 2010, Linux, SLES10, Subversion, SVN
Confidential, Houston, Texas
Software Engineer
Responsibilities:
- Lead 3 month heads down cross platform Windows and Linux agent codebase review and revamp for official version 3 product launch. Implemented best practices for C and C++ and migration to OOD, design patterns, and unit testing. Eliminated majority of both known and unknown codebase defects significantly improved codebase for future features, improvements, and error reporting. Doubled agent IO speeds.
- Resolved agent and server issues including multithreading and locking, client server communication, asynchronous IO, consumer producer pipelines, buffer management, server connection management, and agent denial of service management.
- Designed and implemented cross platform Linux and Windows agent transactional backup processes.
- Revamped agent gmake and Visual Studio build processes eliminating build issues, significantly improving executable size and speed, and reducing build times by over half.
- Designed and implemented agent and server cross platform file system path handling with support for both Unicode and non-Unicode code pages in Linux.
- Designed and implemented block storage encryption using XTS-AES256 with standards based implementation of XTS block cipher in C++ and Java, asymmetric public private key based client server authentication and session key exchange, and user password encrypted symmetric cipher keys.
- Refactored and eliminated issues with Windows WDM storage filter drivers.
- Designed and frameworked agent processes for concurrent transactional multi disk backup.
- Assisted in development of Windows MFC and Win32 based agent installer.
- Provided consultation for fellow developers on C and C++ development, multithreading and locking, networking, encryption, debugging, agent processes, and design issues.
Environment: Agile, SCRUM, OOD, OOP, SOLID, design patterns, unit testing, TDD, BDD, CI, continuous integration, Jenkins, C, C++, C#, .Net, Java, Hibernate, Spring, Tomcat, Log4J, PHP, Bash, SQL, SOA, client-server, N-tier, cryptography, authentication, encryption, asymmetric encryption, symmetric encryption, public key private key, password encryption, encryption key management, XTS block mode, AES, OpenSSL, Crypto++, Bouncy Castle, performance, multithreading, asynchronous IO, consumer-producer pipeline, transaction processing, Win32, Component Object Model, COM, MFC, Volume Shadow Services - VSS, Windows Driver Kit, WDK, Visual Studio 2008, Eclipse, Ant, gcc, gdb, gmake, ccache, valgrind, STL, boost, ASIO, Confidential Thread Building Blocks, Google Protocol Buffers - protobufs, TCP, UDP, IPv4, HTTP, UI, HTML, JSON, XML, MBR, GPT, EFI, Linux, Debian, VMWare, ESXi, Subversion, Denial of Service, DOS
Confidential, Houston, Texas
Software Engineer
Responsibilities:
- Developed redesigned HP Insight Diagnostics storage hardware discovery and testing module, including unit tests with TUT framework.
- Debugging, refactoring, unit testing, and development of HP Insight Diagnostics running on Windows and Linux 32 and 64 bit systems
Environment: Agile, SCRUM, Sprints, OOD, OOP. SOLID, design patterns, unit testing, TDD, BDD, CI, continuous integration, C, C++, PHP, Bash, x86 and AMD64/EMT64 assembly, Scripting, Regular Expressions, nasm, gas, gcc, gmake, gdb, Visual Studio 2003, boost, HTTP, HTML5, CSS, PHP, JavaScript, AJAX, XML, INI, STL, storage protocols, ATA, SATA, SAS, SCSI, BMIC, CISS, CSMI, LAMP stack, Linux, SLES9, SLES10, Solaris, Subversion, SVN