We provide IT Staff Augmentation Services!

Principal Software Engineer Resume

5.00/5 (Submit Your Rating)

SUMMARY

  • Experienced principal software engineering professional wif 20+ years of hands on experience.
  • Knowledgeable, friendly, and easy to work wif.
  • Believe in creating quality products and enjoy working wif various technologies, operating systems, programming languages, and architectures.
  • Internals background - Typically leverage dis skill set to create better software. dis combination will allow me to address issues that may stump other professionals.
  • Experience wif custom development, internals, addressing operating system idiosyncrasies, debugging, automating tasks, adding new functionality, interoperability between systems/applications, porting to various architectures, problem solving, improving performance, resolving system panics and application crashes, etc.
  • C, C++, Python, Awk, Perl, and Shell are my main programming languages. However, I has experience wif others as well.
  • Currently reside and seeking opportunities in the Seattle area, but I is also open to warm climate locations such as Texas (Austin, Houston), Arizona, Louisiana, Florida, Georgia, and South Carolina. Note, for all other locations I will only consider the role if working remotely is allowed.
  • Software Engineering wif C/C++ on Linux, Mac OSX, BSD, AIX, Solaris, and HP-UX
  • IPC, Posix, RPC, MPI, Socket Programming, Network Protocols, and Network Programming
  • Embedded Programming
  • Porting software to various CPU Architectures and Operating Systems
  • Systems and Applications Programming
  • User Space, Internals, Kernel, and Device Driver Programming

TECHNICAL SKILLS

Programming Languages: C, C++, Perl, Awk, Shells (Bash and Bourne), Assembly, Python, Java Script, and Java.

Software Development on the following UNIX/Linux based Operating Systems: Linux, Mac OSX, BSD, AIX, Solaris, SunOS, HP-UX, QNX, OpenServer, UnixWare, IRIX, and NCR.

Software Development on the following Operating Systems: DOS and Windows (3.1, 95, 98, ME, NT, 2000, 2003, 2008, XP, Vista, 7, 8)

Architectures: HPC, Distributed Computing, Cloud Computing, SMP, AMD, Intel, ARM, MIPS, Power and PowerPC, SPARC, PA-RISC, Alpha, Itanium, Cell Broadband / SpursEngine

Network Programming/Protocols: Protocols (UDP, TCP, HTTP, HTTPS, SSL, EFSR, ICMP, SNMP, UNICAST, MULTICAST, BROADCAST, DCE RPC, ONC/SUN RPC), and ZeroMQ.

IDE, Compilers, Debuggers, Profilers, Tools: Xcode, Eclipse, Code Blocks, Kdevelop, Anjuta, Confidential Visual Studio, GNU Tool chain and libraries, GAS, NASM, ELF Tool Chain, GCC, G++, LLVM, Intel Compiler, MAKE, Configure, LDD, AR, ODUMP, LINT, DDD, GDB, CRASH, TRUSS, STRACE, LTRACE, GPROF, SCCS, Perforce, CVS, GIT, Valgrind, Purify, Electric Fence, and Intel VTune.

Parallel Programming: Cuda, OpenCL, Intel Phi, SpursEngine (Cell Processor), and Posix Threads.

Systems/Internals/Kernel Programming: Multi-core, SMP, Pipes, Named Pipes, Signals, IPC, Shared Memory, Solaris Doors, Asynchronous IO (AIO), Message Queues, and Device drivers.

Message Queuing/Message Passing Programming: MQSeries, NQS, PBS, and MPI.

(UI) User Interface Programming: Curses, QT, GTK+, X Windows, wxWidgets, and Motif.

Communication Hardware: Infiniband, Ethernet, Fiber, Token-Ring, X.25, Wireless, Routers, and Serial Communication.

Databases: Sybase, Oracle, MySQL, and PostgreSQL

Virtualization/Hypervisors: VMware, Xen, and Confidential Virtual PC

Software/Applications: Source Code Analysis and Metrics (scitools), Clonezilla, Wireshark, Confidential Network Monitor, Samba, Exceed, NoMachine NX, X2Go, VNC, Remote Desktop, VPN, and Visio.

PROFESSIONAL EXPERIENCE

Confidential

Principal Software Engineer

Responsibilities:

  • Designed and developed network management software wif C/C++ and additional Linux specific tools.
  • Resolved issues and updated non-functioning 32 bit network management source code.
  • Ported network management source code to support 64 bit Intel architecture.
  • Revised source code to ensure 32 and 64 bit architectures will send/receive data across the network in correct formats and expected size.
  • dis software interoperates wif commercial enterprise routers to control configuration, threat management, and monitor security events.
  • Addressed source code issues related to functionality, interoperability wif network protocols, compression, inter-process communication, signal handling, threading, and security.
  • Ported network management software to run on multiple 32/64 bit distributions of Linux such as Debian, Centos, and Ubuntu.
  • Developed and revised unit tests to verify changes will function properly.
  • Created “init.d” and “upstart” network management services to gracefully obtain a status, start, and stop applications for particular run-levels. dis will also allow the end-user to manually do the same as well.
  • Mentored fellow team members regarding inter-process communication, Linux internals, debugging, and resolving Linux specific issues.
  • Designed and developed parallel applications using CUDA, OpenCL, C/C++ on Linux, Windows, Mac OSX.
  • Resolved Task and Data based parallelism bottlenecks wifin applications.
  • Created GPU related kernels and light-weight barrier threads that access global/shared memory to achieve application speedup.
  • Resolved library and makefile issues when compiling 32/64 bit applications.
  • Resolved the CUDA watchdog issue and implemented load balancing between GPGPU cards.
  • Researched and patched the SpursEngine 2.6 and 3.0 kernel modules to fix kernel compatibility issues.
  • Resolved issues wif the SpursEngine so it is compatible on a 64 bit Intel architecture.
  • Custom in-house HPC Linux cluster image processing applications required updates so I configured, compiled, and installed OpenCV, MongoDB, and ZeroMQ (all from scratch). Also developed a methodology for easy roll back in case of compatibility problems.
  • Researched and resolved random HPC production system hangs due to a memory leak and a very nasty IRQ interrupt race conditions wifin the Ubuntu Linux Kernel. The systems engineer was unable to pinpoint the problem so management asked me to resolve it.
  • Researched and fixed latency caused by Ethernet device driver problems.
  • Documented all procedures to avoid such issues from impacting additional systems.

Confidential

Lead Software Engineer

Responsibilities:

  • Designed, developed, and ported Confidential Windows network protocols to Linux wif C/C++, Remote Procedure Calls, etc. Reviewed RFCs and assisted Confidential in revising specifications to create interoperable network protocols and applications between Windows clients and Linux servers.
  • The goal is to validate interoperability between Windows and Linux (wifout Samba) by developing our own Linux Server implementations from scratch.
  • Many protocols required expertise wif systems/internals programming, network programming, inter-process communicationand Remote Procedure Calls. For example: Confidential EFSR (Encrypting file system Remote), Netlogon, Directory Replication, Remote Desktop, and SMB just to name a few
  • .Resolvedseveral RPC related compatibility issues between Windows and Linux.
  • Developed a RPC lookup utility that allowed in-house implementation of the SMB protocol to automatically locate the correct port/transport and deliver a data payload to any RPC based application.
  • Debugged and reversed engineered several network protocols wif Wireshark and Netmon including Blob formats, payloads, sequence call order, encryption algorithms, etc.
  • Produced presentations to address topics such as project status, issues, and design/functionality tradeoffs.

Confidential

Sr. Unix Software Engineer

Responsibilities:

  • Developed and ported “Smartcard” applications for Schlumberger to Linux and Solaris. dis entailed C/C++ expertise, UNIX internals development, PTHREADS development, and network programming.
  • Redesigned PC/SC middleware to use sockets instead of shared memory to address a security exploit in Linux.
  • Developed a Graphical User Interface (GUI) in QT to navigate and quickly retrieve and update information wifin a smartcard.
  • Modified PC/SC middleware source code and device drivers to work wif Schlumberger and SUN Microsystems smartcard readers.

Confidential

Sr. Unix Software Engineer

Responsibilities:

  • Due to frequent crashes, I was asked to mentor the development team and address bugs in the source to improve software reliability. After my involvement crashes stopped.
  • Developed and optimized distributed and parallel applications. These applications written in C/C++ also use threads, sockets, and MPI for processing geophysical/seismic data in a heterogeneous UNIX environment of over 100+ compute nodes.
  • Ported applications from Linux (Intel) to Alpha, IRIX, AIX, HP-UX and Solaris.

Confidential

Sr. Unix Software Engineer

Responsibilities:

  • Optimized performance by designing applications to execute on a cluster of Linux systems using C/C++, NQS, PBS, PVM, and MPI.
  • Developed software for commercial license management in C.
  • Developed commercial software, from scratch, for Compaq in C/C++, XML, and Motif that simplified updating device drivers and firmware for end-users.
  • Designed and developed a commercial SNMP agent, from scratch, in C wif a UDP socket. Ported the agent to Linux, AIX, Solaris, HP-UX, and Unixware.
  • Developed client-server programs using (TCP sockets, C, and Perl) that calculated (UNIX) CPU seconds while processing seismic data.
  • Developed distributed applications using MQSeries and C/C++. Also created channels, queues, trigger monitors, etc.
  • Resolved application and system hangs by fixing a major memory leak wifin a Linux application.
  • Developed middleware software using Remote Procedure Calls (RPC) in a C and UNIX environment. The Solaris system executes various functions and returns a structure back to the client RPC running on SunOS. The Solaris RPC server uses multitasking to avoid blocking while servicing client requests. dis allows multiple clients to connect to the server wifout waiting for previous client requests to complete.
  • Ported RPC applications from SunOS to Solaris and AIX. Debugged socket file descriptor limit problem.
  • Created RPC functions that are transparent to the programmer. dis allows other programmers to issue RPC function calls wifout having to deal wif the low level details of RPC and Network Programming.
  • Stress tested the RPC server by simulating user workloads from client RPC programs.
  • Educated application programmers to create, modify and troubleshoot RPC programs.
  • Developed applications that monitored and reported UNIX security violations.
  • Designed and developed multithreaded (Posix and Kernel ) client-server programs using TCP Sockets, C, C++ and Oracle SQL .

Confidential

Sr. Unix Software Engineer/Performance Capacity Planner

Responsibilities:

  • Developed multi-threaded client-server and middleware applications for a trading system. These applications were developed in C, C++, PERL, and require inter-process communication (IPC).
  • Developed a Perl program in that generated a transaction summary for each trader.
  • Trained team members to resolve inter-process communication, middleware, and system problems. dis included detecting memory leaks, creating efficient programs, and finding solutions to programming problems.
  • Developed client-server programs that synchronized UNIX system clocks wif a MVS system (using Sybase MDI Gateway, SNA, and TCP sockets).
  • Ported applications from AIX to SunOS and Solaris. Resolved socket descriptor problems and reviewed UNIX system dumps wif crash and KDB.
  • Designed and developed stress tests that simulated user workloads and measured performance.

We'd love your feedback!