About Me


Hello and welcome to my personal bragging page! To learn a little about me:

I currently work as a Lead Technical Analyst for Oshkosh Corporation, working on their Enterprise Middleware team. This position has been pretty interesting, giving me a wealth of interesting project work and challenging initiatives, such as:

  • Docker
  • Kubernetes
  • Ansible

All while working remotely!

I studied Software Engineering from the University of Wisconsin – Platteville, where we dove as deep as assembly and analog electronics development all the way up to hand-written source code interpreters. I have always had a huge interest in automating out everything with an eye towards performance, code brevity, and simplicity in design.

A second, more modest career is in being an active, drilling member of the United States Army Reserves. I “drill” there monthly, so while not working on servers, DevOps, automation or tooling at work, I’m generally helping other Soldiers get trained and maintain readiness to be deployed at a moment’s notice. I don’t do this for technical skills, money, or prestige. Rather, it provides me an innumerable set of intangible skills in terms of comraderie, teamwork, and the general feeling you get doing something for a cause greater than your own.

If that weren’t enough, when not working (at home) I am a father and husband, raising four young boys in between all of the above committments. My wife, Katrina is an incredible force in her own right, by being supportive, talented, and busy on her own. I can’t claim any of my achievements without recognizing the incredible effort and support that she has provided me.



DevOps

I am a very big fan of DevOps as a cultural shift, and I’ve recently discovered that my own skillset is a great fit for Ops+Software Development than simply making new apps. With that, these are some of the following trends and practices that I promote:

  1. Release Pipelines
  2. Infrastructure as Code
  3. Version control of assets
  4. Promoting “The Three Ways” of DevOps practices
  5. Containerization of everything (Docker, Kubernetes)

…amongst other interests. I’m a big proponent of applying software craftsmanship towards infrastructure. With the increased flexibility of cloud-based architectures, this isn’t even an option anymore, so the further you can take this “Infrastructure as Code” aspect forward, the more likely you’ll be able to keep pace with your competitors.


Coding / Languages

Unfortunately, there’s a lot of code I cannot share due to restrictions from previous employers, but I do still code on the side any projects that I find would probably be better served in the public space. If you look at my current Github Repo, I have a number of languages I’ve written code for. I’m no expert, but languages don’t really freak me out the way they used to. I’ve written code in at least the following languages:

Anyways, life is short, so this is merely what I have free time to contribute to when I’m not otherwise occupied saving the world (Army), my family (4 kids under 10), or working.


Ansible

I would say I spend most of my time working in either Ansible for server management, patching, migration of services, etc., and work on writing other internal modules for proprietery systems that I’m unfortunately not allowed to share. I’m a huge fan of Ansible and have been using it in earnest to manage most aspects of my job. I also am working on some internal training, documentation, and evangelism of the tool (and Ansible Tower/AWX) as part of my interest in pushing DevOps as a culture and set of practices forward in my company.

Some of the things I’ve used Ansible for:

  • Complete deployment of a Fusion Middleware 12c domain from bare-server to fully deployed
    • Includes SSL (not self-signed or demo certs),
    • LDAP authentication,
    • RBAC,
  • Rolling, zero-downtime server restarts
  • Zero downtime patching 11g WLS servers (bsu.sh)
  • Module development
    • Wrote a sudo_action.py to get around limitations with privileged method chaining (see the second and third notes for details on this limitation)
    • oracle_inventory and oracle_registry to parse and provide details on the inventories of the servers themselves.
    • node_number - for simple management of getting an arbitrary number from a cluster of servers
    • oracle_inventory - to parse out locations of various Oracle-branded /etc/oraInventory/-based XML files.
  • API transaction migration, management, cleanup

Plus all the /normal/ things you expect someone familiar with Ansbile to be able to do.


System Administration of WebLogic and Fusion Middleware

I’ve been working with Oracle’s Fusion Middleware Suite for about two years now. In that time, I’ve learned quite a bit about the following:

  • Weblogic Server 11g (10.3.6.*), 12c (12.1.3, 12.2.1)
    • NodeManager
    • WebLogic Scripting Tool (WLST)
  • Fusion Middleware 12c (WebLogic Server)
  • Service Bus 11g (OSB)
  • SOA Suite 11g (SOA)
  • Business Transaction Management 12c (BTM)
  • Oracle Enterprise Manager Cloud Control (OEMCC) 12c/13c
  • Oracle API Gateway
  • Nexus Repository Manager (including auto-upgrades through Ansible)

If you have a question about the toolset, developing in it, maintaining it, or otherwise trying to get something going with that, feel free to reach out.

Stay In Touch: