Jason Lee

Java Champion • Principal Software Engineer at IBM

I'm a Java Champion and Principal Software Engineer at IBM with over 25 years of experience building enterprise-grade applications. I've been a professional developer since 1997, using a variety of languages, including Java, Kotlin, C/C++, JavaScript, PHP, Python, Delphi, C#, and even a bit of COBOL and JCL. I currently work for IBM on the WildFly/EAP team, where, among other things, I maintain integrations for OpenTelemetry and MicroProfile Telemetry, Micrometer, Bean Validation, and Jakarta Faces.

As President of the Oklahoma City JUG, I'm passionate about community building, mentoring developers, and advancing the Java ecosystem. I am a frequent speaker at our local JUG, as well as at a variety of technical conferences across the country.

Latest Blog Entries

Testing Your Multiplatform App

We’ve put a lot of effort into our app so far, and we’re almost 'done' with it, but there’s a pretty obvious (I hope) gap: testing is completely manual, and that’s fine at first. At some point, though, it would be nice to be able to stop tapping and typing every time we make a change. The good news is that time is now. In this post, we’ll create an.....

Read More ›

Releasing with JReleaser

One of the less glamorous parts of maintaining a software project is release management. A release might include creating application bundles, signing artifacts, pushing to stores like Maven Central or Homebrew, creating GitHub releases, and announcing the release. The more complex a project’s release requirements are, the more opportunities for error. JReleaser helps streamline this process. In this post, we’ll take a quick look at what the tool is and see a fairly.....

Read More ›

Securing Claude Code: Guardrails for AI-Assisted Development by Jim Manico

In a presentation to OWASP London, Jim Manico, founder of Manicode Security, presents how he uses Claude Code to bootstrap projects safely using Claude Code and carefully scripted prompts and inputs. Using the approach he demos, developers won’t just vibe code sloppy, insecure software, but will set up their projects to get deterministic, high quality results. Manico begins by starting Claude and having it create a new repository on GitHub. Once the repository.....

Read More ›

Koin: The Way Object Handling Was Mint to Be

Sharp-eyed readers of this series may have noticed something…​suboptimal: Up until this point, we’ve been creating certain objects as global variables. They’re immutable, so that may be technically OK, but those of a certain age have been taught for years how wrong that is, so technically OK or not, it just feels gross. In this post, we’re going to fix that with by implementing inversion of control with Koin...

Read More ›

Moar Data!

In the last entry, we looked at how to read data from the device’s local database using Room and display it on the screen, but we did so using dummy data. In this entry, we’ll look at how to use Room in our components to persist user-entered data in our SQLite database...

Read More ›

Decompose and Data. Let's See What You Got

In the last post — months ago (and, yes, I hand typed the em dash, not some soulless AI :) — we added support for the Room database API, so now we can store data, but we have no way of seeing what we’ve saved. We also have no way of giving it data to save. In this post, we’ll tackle the first part by creating views to show what we have, then loading the database.....

Read More ›

About Me

In addtion to the above, I have published Java 9 Programming Blueprints, and actively contribute to several major open-source projects, including WildFly, Undertow, and Arquillian.

I am a life-long learner who loves to apply what I've learned to real-world business problems to find a solution to make employers and customers alike happy. My favorite place to be is slightly out of my depth as I strive to grow while bringing value to the project.

On the personal side, I'm active in my church and enjoy bass guitar, running, fishing, and a variety of martial arts. I'm also married to a beautiful woman and have two boys, who, thankfully, look like their mother.