Post Job Free
Sign in

Software Engineer Lead Senior

Location:
Lynchburg, VA
Posted:
May 16, 2023

Contact this candidate

Resume:

Sean Kruger

+1-720-***-****

***********@*****.***

Centennial, Colorado

BS Computer Science, 1996

Univ. North Carolina at Chapel Hill

C++11, C++14, C++17, C++20 STL, Boost multi-threading/concurrency

build: CMake

OO design patterns

test: GTest/GMock, AspectC++

networking: Boost Asio, WebSocket

video processing: FFmpeg/libav, OpenCV, GStreamer

machine learning: TensorFlow neural networks

Linux/UNIX, RTOS, Windows

RDK Central GCS February 2022 – December 2022 end of project

Senior Software Engineer, contract

Set-top box firmware

C++ RDK-V Git, Gerrit, CMake, BitBake Red Hat Linux, Yocto, Docker.

Managed pointer implementation controlling heap object lifetime using stack, templated with interface and object types.

Processor cycle counting on ARM processor.

Flashing firmware changes written onto various set-top box architectures.

Refactoring production code to abstract code common to different platforms.

Refactoring Design Pattern review, documentation and example coding, including: Dependency Injection (DI), Service Locator, Mixin, Policy-based, Template Method, traits, modules, Runtime Polymorphism.

Owl Cyber Defense March 2021 – July 2021 end of project

Senior Software Engineer, contract

Cybersecurity networking

C++20, Ranges, STL, iostreams, type traits Boost Multiprecision, Serialization, Filesystem, PropertyTree, Regex crypto++ Red Hat Linux, Docker.

Random device reading using continuation to seed random number and cryptographic hash using template specializations.

Secret key seed entropy image sourcing, secret key generation in secure memory, secret key transport, secret key sharing.

Numeric handling using Boost Multiprecision, Boost Serialization, bitsets, standard and Ranges Views algorithms.

Tuple and parameter pack template metaprogramming iteration to calculate data set layouts and member types for message broker message parameter specification verified automation.

File parsing. Key-value and JSON file parsing using file stream iterator, template with members of field types, and Boost PropertyTree.

Filesystem iteration and structure validation using Boost Filesystem and Boost Regex.

Compile-time string concatenation for static assertion logging using template metaprogramming.

Dependency Injection (DI) design pattern by interface means to conform production code architecture with test mocking.

CollabNow, Denver, CO Mar 2020 – Nov 2020 end of project

Senior Software Engineer, contract

Video Conferencing

Linux GStreamer, Video4Linux, v4l2loopback kernel module C++ Boost Asio(networking).

Video capture from various sources: camera, virtual(from file), screen capture(of application being edited), browser tab using Chrome script.

Video player tiling and textual overlay of metadata.

GStreamer pipeline nodes: video capture, conversion, scaling, encoding/decoding, de/muxing, queueing, teeing, de/packetization, sinking …

Networking of video client and server and evaluation of numerous video/media transport and security protocols including WebRTC.

Video stream buffering and tuning.

Charter/Spectrum Communications, Denver, CO Nov 2019 – Feb 2020 entire project outsourced offshore

Senior Software Engineer, contract

Web Server, Cloud and Embedded system, GRE Tunnel

Web server (HTTP) and Constrained Application Protocol (CoAP) server evaluation for embedded IoT system. Extensively documented many Web server technologies, their behavior, functionality, scripting, database and REST APIs: Apache, Nginx, CppREST, Busybox httpd, GNU libmicrohttpd and libhttpserver, Eidheim’s Web server, WebSocket++, Pistache REST, ngrest and ORM, Boost Beast and BeastHttp REST, Ripcord libhttpserver, Lighttpd, OpenWrt uHTTPd, Restinio, restclient-cpp, LibHTTP, Poco::RemotingNG, http-server, Ulfius, restdbxx, nettyplusplus, Wangle, proxygen; CoAP and HTTP <-> CoAP proxy.

Cloud and embedded system. Formal training in the OpenSync cloud infrastructure, including their MQTT, IPv4/v6, DHCP and DNS handling, and routing, bridging, gateways, wireless access points.

Embedded system build and deployment. Built embedded OpenWrt application and flashed code on router.

GRE tunnel. Evaluated implementations of GRE (Generic Routing Encapsulation) network Layer 3 tunnels and Layer 2 TAPs.

Build specification based on auxiliary makefiles, Git submodules and Gradle multi-project and composite builds.

CodeLathe, Denver, CO Aug 2019 – Oct 2019 project completed

Senior Software Engineer, contract

Lambda Architecture framework - Data Ingest, Real-time data store, Batch data, Data View management and Query processing layers.

Linux CMake C++, STL, iostreams, std::thread, Ranges, Boost Zip iterators.

Command shell. Repeatedly accepts user commands and invokes their handlers.

Multi-threading. Producer-consumer design shared queue with locks and inter-thread notifications, avoiding spurious wakes-up. Graceful thread termination: destroy thread_locals, unlock mutex, notify condition_variable, consumer thread joined in the producer thread which created it.

Data views and query. Amalgamated data sets from Real-time and Batch layers. Real-time data set derived either by temporarily pausing producer from inserting into producer-consumer queue or by creating new producer-consumer queue to continue accepting input and reading previous queue. Amalgamation effected by std::set_union or ranges views::join.

Pex, Denver, CO May 2019 – Jul 2019 project completed

Senior Software Engineer, contract

Video Transcoding

OpenCV, FFmpeg, libav, Vireo Linux C++, STL, iostreams, std::thread Boost: Filesystem, Function, Process, Asio(networking).

Video transcoding. Video keyframe extraction, analysis and transcoding.

Data piping. Wrote inter-process communication code to pipe data output from a process into consumer threads in memory.

NCR for Zelle, Denver, CO Oct 2018 – Apr 2019 end of contract

Lead Senior Software Engineer, contract

Payment Processing - Real-time Payment Processing bridging interfaces

Linux, Bash, SCP, Curl Perforce, Fortify, Crucible, CMake, Jenkins, Maven, Capistrano Jira, Confluence C++, JSON.

Real-time messaging. Broker architecture, REST calls, HTTP headers, message handlers, message transcoding to bridge interfaces.

Data handling. JSON parsing, composition.

State-machine. Framework message handling with cross-cutting logic of state transitions and continuations.

Shell scripting. Job control. Bash read and HERE document composing Curl commands with HTTP headers and JSON payload.

Ampex Intelligent Systems, Colorado Springs, CO Jan 2018 – Jun 2018 Chief Software Architect and Chief Engineer absented

Senior Software Engineer and Architect, contract

Machine Learning - TensorFlow Neural Networks for Deep Learning for Cybersecurity

Linux CMake, Bazel, Jupyter, Docker C++11, Python.

TensorFlow Neural Networks.

oImplemented various types of neural networks in Python and C++ for TensorFlow for network data anomaly detection Deep Learning Machine Learning for cybersecurity.

oPretrained neural network node layers which were extracted, deployed then included into another model.

oBuilt TensorFlow from C++ sources using CMake.

FireMon, Kansas City, KS Aug 2016 – Sep 2017 end of contract

Senior Software Engineer and Architect(replaced founding engineer), contract

Web Server - Distributed Processing with broadcast Web servers and clients (low-latency, high throughput, transactional, traffic, cloud, cybersecurity)

Linux CMake, Git C++11, STL, AspectC++, Boost, Regex Asio, WebSocket++, JavaScript WebSocket Web client TLS, SSL.

WebSocket servers and client.

oMulti-threaded, secure, state machine, keepalive, session management, flow control protocol. HTTP to TCP upgrade. Graceful server shutdown. 100,000 messages per second.

oC++ variadic templates and parameter pack expansion. Template method specializations. Template metaprogramming of type traits.

oAspect C++ aspect advice slice introduction into join points. Template method design pattern.

oReaders/writer lock. Producer/consumer queue with condition variables which properly handles spurious wake-up calls.

oCompilation firewall with dependent, double-templates and separate implementation files to preserve ABI.

oSecurity implemented using SSL/TLS for which I created an in-house certificate issuing authority.

Regex. Identified network traffic using regular expressions. Libraries tested include C++ std::regex, Boost Regex, Perl Compatible Regular Expressions (PCRE), RE2(nondeterministic finite automaton).

Art and Logic, Denver, CO Jun 2015 – Aug 2016 end of projects

Senior Software Engineer, contract

Process and Thread Monitor

Linux CMake C++11 multithreading incl. monitor comprising conditional variables and mutexes, lambda expressions, callables, double and variadic templates, STL Boost: MultiIndex, Coroutine, FileSystem, Program Options.

Uses system info, system time, process filesystem.

Idioms used include generic callables and their binding, lambda expressions.

Extensive C++ template usage including double, variadic and recursive templates, tuples with vector to tuple moving, callables.

Multiple indexes into in-memory storage using Boost MultiIndex.

Multithreading by means of threads, atomics, futures, condition variables, mutexes and locks, coroutines.

Uses an interval timer and a state machine.

File parsing and regex-based string tokenizing.

Data Codec (encoding/decoding)

Message parsing. State Machine management.

Data bounding, transforms and 2D rotations.

Linux C++11, STL Boost Program Options CMake.

Bitwise operations for data encoding/decoding between custom binary layout and hexadecimal.

Message parsing according to grammar.

Class and method template specialization.

Multiple state variables maintained in state machine.

Data bounding, transforms and 2D horizontal and vertical rotations.

Test using Boost Program Options.

Big Data Handling and Searching

Linux C++11 move semantics, lambda expressions, STL.

C++11 concurrency, Boost Threads, Google Concurrency Lib. for C++, GCC GNU Offloading and Multi Processing Runtime Library, OpenMP Multi-Processing/Parallel Library

Map/reduce. Data partitioning, multithreaded/multiprocess handling, results assembly.

Search using partial sort and red/black tree.

Multiple threads joined using a latch.

MasterCard/Brighterion, San Francisco, CA Sep 2014 – Apr 2015 end of contract

Lead Senior Software Engineer, contract

Big Data Search Engine - AI searching, analysis, scoring and ranking

Linux, Windows C++, multithreading, STL GDB debugger, Google C++ Testing Framework.

Analysis and design. Wrote 75 page application logic analysis and design document including call graphs and algorithms and 25 page test tool usage and test plan.

Application configuration and data ingest. XML application configuration files parsed into in-memory data structures.

Data transformation. Data cleaning and transformation.

Data indexing using phonetic algorithms to produce keys for multiply indexed data containing millions of indexed values.

Data searching, analysis, scoring and ranking according to complex algorithms and AI techniques.

Algorithm optimization. Parsing and rule evaluation. Recoded and restructured algorithms for performance improvement.

Google Test. Wrote extension predicate and formatter for floating point comparison both near to zero and away from zero.

Wrote test harnesses, environments, test fixtures and value-parameterized tests. Automated tests. Handled failure propagation.

Signal and exception handling. Wrote common handler for signal and exception handling with safe stack management.

HOMER Energy, Boulder, CO Apr 2013 – Dec 2013 contract vestment

Senior Software Engineer, contract

Power Systems Optimization Modeling

Linux, Windows C++, CppCMS(C++ REST), JavaScript(JSON) GDB, CppUnit, Google Test, Valgrind, Visual Leak Detector, Fiddler.

Data abstraction. Algorithm for transforming data structure(template specialization and template method for handling different schemas), and populating with values of several degrees of statistical deviation.

C++ REST framework Build under Linux. IDE configuration under Windows. REST messaging. JSON parsing and serialization.

C++11 Move semantics for vectors to save copying. SI units handling for type-safety.

Application Binary Interface (ABI) Designed and wrote ABI to allow DLL code interoperability across VisualC++ and gcc/g++.

Floating point Comparison using relative and absolute epsilon. Rounding to specified number of places.

Build mastery Built software tools including Boost. Setup virtual machinery. Automated tools. Build, signing and install scripts.

Unit testing Parse files into complex data structures using templates specialized per schema; complex algorithms for test cases.



Contact this candidate