Senior software engineer and technology professional with over a decade of software development experience, and a total 19+ years of diverse technology experience. Proven software/systems architecture and engineering abilities, both maintaining existing systems and developing multiple new systems. Broad variety of skills across multiple platforms and languages, learns and adapts quickly. Experience in Fortune 500 and startup environments, comfortable communicating with senior management and executives. Enjoys volunteering to help kids with challenges and special needs improve their lives through technology like programming and robotics. Passionate about delivering great solutions that help companies succeed and people improve their lives.
* Systems and software architecture, engineering, and development
* Project and team leadership, mentoring, coaching
* Agile and pragmatic object oriented analysis, design, and development
* Requirements discovery and analysis, problem domain research and modeling, UML
* Experience applying architecture and design patterns effectively
* Full-stack, back-end, front-end, user interface (UI, GUI)
* Data access development, object relational mapping, schema design, database change control, stored procedures, triggers
* Concurrency, multithreaded programming
* Clustering, distributed computing, cloud computing
Skills:
* Multiple Languages: Java, C# .NET, PHP, C/C++, Bash shell script, Windows batch script
* Web Development: HTML, CSS, XML, HTTP, JavaScript, AJAX, XML-RPC, JSON, Sockets
* Multiple Platforms: Windows, Linux (Ubuntu, Red Hat, CentOS), UNIX, Mainframe z/OS, WebSphere, Tomcat, LAMP, Apache HTTPD
* Virtualization: VMware, QEMU/KVM, VirtualBox, libvirt
* Database: SQL, relational databases (MySQL, SQL Server, DB2, Oracle), NoSQL key/value data stores (RIAK)
* Tools: Eclipse, NetBeans, Visual Studio, Atom, vi, Git, GitHub, Subversion, JUnit, NUnit, ANT, NAnt, GNU Make (makefile), Maven, JIRA, CruiseControl, Jenkins
Senior Software Developer @ Provided advanced engineering and software development primarily on a Linux platform, using RIAK NoSQL data store, Corosync and Pacemaker clustering, Sheepdog shared storage, QEMU/KVM hypervisor, and a PHP web interface. Participated in architecture, product planning, security, and systems development groups to explore problems and recommend solutions. Full-stack development. Windows platform subject matter expert. Held multiple positions.
* Performed advanced research and development, exploring new technologies for possible integration into products, or building out advanced strategic features.
* Researched integration of distributed shared storage such as Sheepdog into the platform to tune and improve stability, reliability, and performance.
* Helped support customers running Windows on the NIMBOXX MeshOS platform by debugging problems, exploring performance issues, and analyzing kernel dumps. Researched open source communities regarding issues related to Windows VM malfunctions, from CPU microcode and the Linux stack to the QEMU hypervisor and Windows VirtIO drivers.
* Performed software development for multiple back-end and front-end features in PHP, Bash scripting, and C/C++. Maintained GNU Make makefile build scripts.
* Web UI development with HTML, CSS, and JavaScript. Utilized AJAX (Asynchronous JavaScript and XML), XML-RPC, JSON, and frameworks like jQuery.
* Improved Windows guest VM stability and performance on the Linux QEMU/KVM hypervisor by investigating C kernel module and QEMU code and Windows C/C++ VirtIO drivers, in order to properly tune the hypervisor stack.
* Developed techniques and solutions to seamlessly integrate Windows guest virtual machines (VM) into the Linux QEMU/KVM hypervisor environment, by automatically installing drivers and other support software. From June 2014 to September 2015 (1 year 4 months) Assistant Vice President / Software Engineering @ Provided software architecture and development, and multi-tier systems design. Responsible for multiple internal enterprise systems, such as global on-call scheduling and notification system for critical incidents and problems. Managed tool chain config for team (Eclipse, Rational / RAD, Visual Studio, Java JDK, .NET), work tracking (Scarab, TestLink), version control (Subversion), continuous integration (CruiseControl), and builds (ANT, NAnt).
* Languages: .NET, Java, PHP, scripting.
Platforms: Windows, Linux, WebSphere, Tomcat, LAMP, MySQL, DB2, Oracle.
* Remediated several Visual Basic 6 apps, converting to Visual Basic .NET or rewriting in C#. Led small team for remediation/rewrite projects.
* Developed data analysis tools in C# with extensive use of regular expressions, capable of processing multiple gigabytes of raw data in minutes with extremely efficient resource utilization. Reduced processing time from an order of hours to minutes.
* Built custom multi-threaded network server in C# for socket connections with custom protocol, designed to reliably support connections from thousands of external systems. Socket server required construction of custom multithreading library due to high availability and reliability constraints, which were not met by existing .NET Framework threading libraries and Async patterns.
* Designed, engineered, and led small team developing multiple new internal-facing systems, using Java and Java Server Pages (JSP) and Servlets, Java Enterprise (J2EE/JEE), with database backends (MySQL, Oracle, DB2) and interfaced with mainframe systems (z/OS) over FTP and other protocols.
* Developed new web services (SOA) in Java/J2EE using SOAP and XML-RPC, which interfaced with multiple external groups.
* Wrote Java clients using various web service APIs and custom socket protocols.
* Successfully migrated several systems off legacy mainframe environments, converting them to modern three-tier Java/J2EE, Oracle database architecture. From January 2006 to June 2014 (8 years 6 months) Senior Officer, Mainframe Developer / Systems Engineer @ Transitioned from Windows Desktop Engineering to Mainframe Automation Support, learned z/OS platform and mainframe architecture, developed several projects to modernize legacy mainframe systems using Java and integration with distributed systems (Windows, Linux). Peer reviewed code changes prior to production deployment. Contributed to strategic system architecture and design decisions for the card processing and online banking systems. Frequently communicated with senior executives regarding technical information and system design.
* Developed proactive monitoring applications for critical online banking systems, networking native mainframe systems with a client-server Java system and desktop GUI client. Used custom XML socket protocols for mainframe/server communications. Applications were used by operations and other systems engineers during maintenance windows, and watched by senior executives, reducing costly outages due to human error.
* Integrated mainframe and distributed system applications by designing and developing modern Java / J2EE systems utilizing message queues (JMS, MDB) with WebSphere MQ for collaboration and mainframe DB2 database backend.
* Rewrote several legacy REXX scripts in Java, successfully porting logic from mainframe architecture to modern object-oriented design.
* Developed and maintained mainframe automation rules and scripts with AutoOPERATOR and REXX.
* Maintenance window and on-call support for critical production issues. From 2004 to 2006 (2 years) Senior Officer, Desktop Systems Engineer @ * Designed and developed a software distribution, installation, and maintenance system for a global Windows environment, consisting of over 20,000 workstations. All software was automatically distributed and maintained on-demand by users based on their roles.
* Designed and implemented a change management and control system for Windows group policies and scripts using CVS and Subversion.
* Automated the distribution and installation of various service packs, patches, and Internet applications for several thousand legacy Windows NT workstations. Installation included monitoring and reporting metrics, which were regularly delivered to executive management. From 2001 to 2004 (3 years) Senior PC Support Specialist @ * Developed solution to automate deployment of configuration settings to remote desktops, saving effort required to manually visit and update several thousand workstations.
* Provided end-user computer support. From 1999 to 2001 (2 years) Consultant @ Worked projects for multiple clients. Coordinated large software deployments and several large technical moves. Provided end-user computer support. From 1998 to 1999 (1 year) Consultant @ Built application packages and integrations for Windows 3.1 and Windows NT 4.0 environments. From 1996 to 1998 (2 years)
Jeremy Gaither is skilled in: Software Development, SQL, Troubleshooting, Java, Requirements Analysis, Unix, Enterprise Architecture, C++, HTML, Databases, System Administration, Agile Methodologies, .NET, DB2, XML
Websites:
http://jeremygaither.com/,
https://www.facebook.com/jeremygaither