Summary
I’m a hands-on Senior Lead Software Engineer who is interested in new technologies and innovative ideas. Here are some things I bring to the table:
- passion
- quality
- accuracy
- code
- humor
- …food
I believe that the best code is a product of a fun environment and an amazing team.
My colleagues and mentees alike always say they have learned a lot from me, especially as a result of my passion and patience.
Education
Experience
- Contributed to event-driven login/authentication messaging (decommissioned)
- Contributed to enterprise-wide enrollments, offering technical expertise in microservices design and implementation.
- Influenced my organization regarding “shift-left” best practices.
- Resolved multiple performance and vulnerability issues through cross-team collaboration.
- Fixed an internal enterprise Spring library’s performance degradation related to error caching (again, Caffeine cache) that impacted every application using the library.
- Influenced engineering patterns and practices through contributions to internal tooling, by better aligning their implementations with industry best practices; e.g. requiring branch protections on critical release branches and avoiding unnecessary re-deployments to development environments.
- Designed and led my team in the implementation of a tool adopted by enterprise as the preferred tool for migrating applications to ECS Fargate. This tool reads AWS configurations regardless of the application’s original CI tool and outputs the configurations necessary for the enterprise’s standard CI/CD pipeline (internal).
- Led my team of SMEs to support 30+ teams within my organization related to our internal CI/CD pipeline and its plugins, the enterprise-preferred internal Spring library, general AWS guidance, Java/Go/Groovy/Jenkins questions, and other best practices.
- Analyzed and defined organization guidance for Log4Shell vulnerability and remediation.
- Mentored multiple engineers, on my team and outside of it.
- Implemented an OpenRewrite module for various migrations of internal applications, especially in relation to Java 17 and SpringBoot 3.x upgrades forced by the end-of-support of SpringBoot 2.x.
- Inactive since March 2020
- Help lead and maintain a community fork of Swagger Codegen
- Collaborate with OpenAPI Generator community
- Initial implementation of Gradle Plugin for OpenAPI Generator
- Ongoing investigation into process improvement (tooling, pipeline, publishing)
- Participated in the design and construction of Microservices Architecture for new project(s)
- Created reusable developer tools to increase developer productivity (sbt plugin, docker composed network)
- Mentored Junior and Senior level developers on best practices, processes, and SOLID principles
- Provided process improvement suggestions and strategies for new team construction
- Lead refactoring efforts in database migration from MySQL to PostgreSQL
- Lead multiple workstreams (Spark Pipeline/DevOps, new API development, legacy API management)
- Team contributed to Spark Structured Streaming distributed data processing pipeline
- Contributed to project until cofounding the community fork of OpenAPI Generator in 2018
- Maintained C# client and ASP.NET Core server generators
- Collaborated with Swagger Codegen community via issues and pull requests
- Provided initial implementation of .swagger-codegen-ignore processing
- Bug fixes in areas outside the responsibilities of my generators (Maven Plugin)
- Contributed alpine-based Docker image, reducing image size from ~700MB to ~200MB
- Moderately sized refactoring efforts, requiring distributed coordination with core team and community
- Provided initial implementation of Kotlin client (Java/Android) and Kotlin server (ktor framework) generators
- Provided initial implementation of ASP.NET Core server generator
- Provided initial implementation of Scala server (Finch framework) generator
- Mentored Junior and Senior level developers on best practices, processes, and SOLID principles
- Lead refactoring efforts of Business Intelligence product’s presentation layer from tightly coupled and loosely organized MVC/jQuery to a Single Page Application with AngularJS and MVC as a RESTful API
- Designed and implemented a messaging and external processing framework on top of SQL Server Service Broker (External Activation) to offload numerous long-running processes from ASP.NET web applications (Message Bus). Implementations included: compiling and printing statements, payment processing, triggered database deployments, configuration
- Integrated Hangfire for short, non-essential batch processing both in-proc in ASP.NET and as external self-hosted Windows services
- Helped design and lead refactoring efforts to introduce Inversion of Control into an existing multi-layered architecture, enabling the configuration-driven transfer of data through the same domain stack to multiple backend systems (i.e. Adapter Pattern for part of SqlCommand)
- Advocated automation testing and provided guidance on testing best practices to improve stability and maintainability of code
- Performed software construction and maintenance using ASP.NET MVC, AngularJS, Kendo UI, SQL Server 2008/2012
- Drove code quality through training, testing, and awareness
- Promoted reusable code via NuGet on an internally accessible repository
- Provided guidance in the conversion of my own test helpers into a shareable testing platform
- Advocated for process improvements within multiple Scrum teams
- Refactored node.js api which acts as a facade for other services
- Analyzed performance and memory of node.js/JavaScript
- Provided expertise of node.js framework and third-party modules to help implement a solid unit test and functional test bed
- Designed maintainable solutions for parameter validation within express.js application
- Created reusable automation utilities for maintenance of node.js application (e.g. generate swagger documentation from custom JSDoc comments)
- Improved bash scripts used for build and deployment; automatically verify and install dependencies before build, allow for multiple build profiles
- Helped with feature improvement and maintenance of now legacy PHP system (API and Frontend)
- Drove development and architecture of new REST API and UI using Scala, SBT, Scalatra, and AngularJS
- Mentored interns and newer developers
- Team master of using and teaching others git
- Interviewed numerous mid-level and senior-level candidates for the team
- Played a huge role in process improvement (git workflow, code review, peer programming, Scrum processes)
- Member of development team for call center-centric telephony suite, CallRex
- Maintained and developed documentation and examples for CallRex SDK using Sandcastle for documentation and code written using C#, ASP.NET, Windows Forms
- Performed custom application development on a per customer basis using Windows Forms, ASP.NET, and WCF
- Created maintenance patches of legacy software using C++, particularly related to VoIP packet processing using SIP, SKINNY (SCCP), and RTP
- Created a unit-testing and functional-testing process to integrate into the build using MSBuild 4.0
- Created an MSBuild task wrapper around the VIX API to integrate build with VMware Virtual Machines and control full system installation, call bootstrapping (packet playback), and data verification as a means of integration and regression testing
- Performed analysis and review of customer support issues which generally involved log parsing, packet analysis using Wireshark, and occasionally analysis of Windows dump files
- Regularly interacted with customers to resolve issues and deploy custom applications or patches
- Provided an in-depth and expert-level knowledge of C# and ASP.NET in the design process for the conversion of legacy (native C++) code into managed code
- Discovered Unicode bug in sip packet header which could corrupt a Windows environment’s unmanaged memory at kernel or user space
- Designed and development of software and web applications using Microsoft .NET 3.5 Framework
- Created custom, reusable controls and frameworks for reporting on large data sets
- Owned configuration, setup, and maintenance of collaborative Drupal CMS for global client organization
- DevOps: Linux system administration on dedicated server hosting Drupal CMS
- Instrumental in the interview process for Senior .NET Software Developer Engineers
- Researched available technology solutions in a variety of areas: localization, performance monitoring, logging
- Team: prepared a demonstration application using ASP.NET MVC 2.0 (Web Forms View Engine)
- Team: scalable, high-availability public-facing web application using ASP.NET MVC 3.0 (Razor View Engine)
- Involved in a majority of the construction phase for B2B site
- Researched and implemented automated UI end-to-end testing using Gallio/MbUnit
- Performed major enhancements and added functionality to a grants/budget management web application using ASP.NET/C# and Oracle 9i
- Upgraded the grants/budget management web application from .NET 1.1 to .NET 3.5 SP1
- Complied with coding and security standards for Federal Government client
- Designed and developed application architecture and data access components
- Interacted directly with Federal Government clients
- Involved in entire Software Development Lifecycle
- Interned beginning with Agility Healthcare Solutions, which was acquired by GE Healthcare
- Performed bug fixes and application enhancements in an HL7-compliant Rich Internet Application using ASP.NET 3.5 and C#
- Worked with development team as part of a mixed Agile and Scrum methodology
- Provided feedback on application complexity and usability to team leader
- Evaluated build process using CruiseControl.NET, MSBuild, Windows Installer XML Toolset (WiX)
Projects
I have been active in Open Source officially since 2008, although I dabbled in coding for 20 years before that. College awoke an interest in me to share my code and creations with others.
The following is only a subset of the 150+ open source projects I have created.
New Tab Redirect!
A Google Chrome extension which allows the user to override the browser’s new tab page.
jimschubert/changelog
A CLI written in Go which allows for customizable changelog generation from local or remote (GitHub) repositories.
I also distribute this tool as a GitHub Action called beast-changelog.
jimschubert/answer
A Go module providing “bubbles” (bubbletea models) which provide terminal interface functionality to replace the deprecated github.com/AlecAivazis/survey.
jimschubert/venom
A documentation command for your CLIs built on top of cobra. I wrote this to output proper documentation for
commands with
/
in their names. I had contributed a fix to cobra
and waited a year without merge before implementing my own library to solve the problem.OpenAPI Generator Plugin
An extension for Jetbrains based IDEs which provides a GUI wrapper around OpenAPI Generator.
Publications
I extend my dedication to developer productivity into writing and performing technical reviews of written works.
Your First App: Node.js by Jim Schubert
I self published this book about the development life cycle of a full-stack node.js application, using Express/Angular/MongoDB.
Deploying Node.js by Sandro Pasquali
I was a technical reviewer for this book, which focused on the building, testing, deploying, monitoring, and maintenance of node.js applications.