Jonathan Putney (@putneyio) header
Jonathan Putney (@putneyio) profile picture

VP of Technology @ Noverant LMS Java / Python / AWS / Kubernetes

Raleigh, NC, USA
Joined April 2026
Photo by Jonathan Putney (@putneyio)Photo by Jonathan Putney (@putneyio)Photo by Jonathan Putney (@putneyio)Photo by Jonathan Putney (@putneyio)
Jonathan Putney retweeted
Tonight, the American people sent a clear message — they want a politics that brings people together rather than divides them, and leaders who offer concrete solutions to the challenges they face. These results were only possible because outstanding candidates stepped forward in every region of the country — including in areas once considered long shots. They came from different backgrounds and represented a range of political perspectives, but were united by shared values, a belief in public service, and a commitment to putting the people of their districts and states first. We also owe a debt of gratitude to the thousands of election officials and volunteers from both parties who helped ensure a smooth election and carried out one of the most essential functions of our democracy. While this administration has another two years in office, our job now is to roll up our sleeves, make changes wherever we have the power to do so, prevent further damage, and lay the groundwork for the future.
9,358
55,441
2,661
390,101
7,701,397
Ratchet 0.5.0 is out. My job scheduler now runs on Spring Boot 3.5 and 4.1, on the JVM or as a native image. Inject one service and pass it a method reference. If the transaction rolls back, the job goes with it.
1
3
Persistent jobs, retries, cron, workflows. Your database is the queue. Works with Postgres, MySQL, Oracle, SQL Server and MongoDB.
1
1
Jonathan Putney retweeted
The "whiteboard defense:" I should be able to pull you aside at any moment and ask you to explain any customer-facing system you've shipped. You should be able to clearly explain how it works and defend the decisions you made. This is my benchmark for responsible AI usage. I don't expect line-level familiarity with the code. I don't care if you remember the exact function name or implementation detail. You may not even know it. I don't care. But if I ask "why did you do X instead of Y?", "what happens if this actor behaves maliciously?", "what data structure did you use here and why?", or "where does this fail?" you should be able to answer confidently. For PoCs, demos, experiments, whatever: I don't care. Generate 100% of it and understand none of it. Speed over quality every time in those specific scenarios. But if you're shipping customer-facing work, you can't be shipping things you don't understand at a high level.
234
1,028
199
9,533
494,781
3,204
20,242
1,257
187,466
4,622,773
Jonathan Putney retweeted
Spencer is delivering on our promise for the fully agentic OS of The Future. This is even running off a local Qwen 27B model! We'll be shipping a version of this in Omarchy 4.1. GET READY TO ACCELERATE! 🤖🚀
Using an "Agentic Ready OS" is changing the way I use computers… Today I'm releasing the first alpha of the OmaPilot plugin for @OmarchyLinux and looking for more testers to iron out the Omarchy harness.
64
66
10
1,458
129,937
Jonathan Putney retweeted
I've made javadocs.dev even more agent friendly with some MCP name/description tuning, JavaDoc parsing fallbacks for older libraries, MCP 2026-07-28 compat, some .well-known additions for skills & MCP, and a new RESTish API: javadocs.dev/api/doc Hope it gives your agent everything it needs for Java, Kotlin, and Scala library usage :)
2
4
14
1,557
Ratchet 0.3.1: the CDI-native job scheduler now runs on Quarkus, JVM and GraalVM native. Method-reference jobs survive the closed-world compile. Plus Oracle + SQL Server stores, encryption at rest, cluster coordinators. Apache 2.0, no paid tier. github.com/ratchet-run/ratch…
17
Jonathan Putney retweeted
This is the most accurate anyone has ever described Elon Musk.
1,335
16,818
226
128,988
2,028,701
Ratchet workflows can branch on the previous step's result. Each step is a persistent job, so if the server dies halfway through, execution resumes where it stopped after restart. If step 3 fails, steps 1 and 2 are not rerun because they are already complete. ratchet.run/concepts/workflo… #Java #JakartaEE
6
Jonathan Putney retweeted
We heard you. And we agree. In light of recent developments in physical media, GitHub is proud to announce that you can now obtain your public repo on CD-ROM. Keep it. Lend it to friends. Pass it on to your children. Your code is physically yours, forever. Until you lose it, let's be real. Order yours today. gh.io/cd
1,307
3,367
1,460
35,343
5,900,971
Jonathan Putney retweeted
We’ve received notice that the Department of Commerce has lifted export controls on Claude Fable 5 and Mythos 5. We'll begin restoring access tomorrow, and will share an update soon. We’re grateful to our users for their patience, and to everyone who worked with us on redeploying the models.
3,992
12,599
7,035
83,552
15,191,356
Calling a language model from a request thread is a trap. The call is slow, it fails in ways ordinary code doesn't (a 429, a socket timeout, a model that's briefly overloaded), and an agent rarely makes just one call. Ratchet isn't an AI framework, and it ships no model client. It's the layer underneath. It persists the call before it runs, retries with backoff, trips a breaker when the provider goes down, and resumes a half-finished workflow after a crash. You bring the model client. On Jakarta EE, langchain4j-cdi hands you one as an injectable bean. ratchet.run
4
Jonathan Putney retweeted
I'm super grateful to @sonatype for all they have provided to the Java, Kotlin, and Scala OSS developer communities via Maven Central over many years! As someone with a significant number of libraries under my purview, and as a heavy user, I'm not opposed to helping cover some of their monumental cost burden. My only concern is the uncertainty of what this will cost the JVM OSS contributor community. Today I have no idea. Will I have to shutdown things like @WebJars because I can't afford it? Currently it is unclear.
2
9
39
4,058
Some work shouldn't move without a person saying go: refunds over a threshold, an expense above a limit, anything an agent drafted that you're not ready to send unattended. Built on @JakartaEE, Ratchet jobs can park in WAITING until an answer arrives. `awaitSignal(...)` holds it as a row in the database - no thread held, nothing spinning - and a deadline that can't be forgotten. `scheduler.deliverSignal(jobId, decision)` wakes it with the payload. One method, one row, and a timeout so nothing waits forever. ratchet.run/use-cases/human-…
5
Jonathan Putney retweeted
Now it’s official. JetBrains remains the last big independent player in developer tooling. Our job is to deliver the most cost-efficient, deeply integrated, and genuinely enjoyable AI experience across our IDEs and beyond. We’re on it. Stay tuned.
We're excited to join forces with @SpaceX to advance the frontier of useful AI. Expect significant improvements to Cursor soon.
233
106
39
3,485
382,676
Why did so many languages copy async/await from C#? Anders Hejlsberg(@ahejlsberg) - creator of TypeScript, C# & Turbo Pascal - on what they got right with the design: #1 - async/await was designed to solve a common problem in the event-loop model: "A lot of languages are built around cooperative multitasking in the sense that they have an event loop that sits and dispatches events. Then you handle the event and then you yield back to the event handler loop. And it all runs in a single thread cooperatively. The problem with that is if you then want to do some long running work: how do I stop in the middle of this piece of long running work and yield back to the event loop cooperatively? And then when my result is ready, I can come back and continue executing here." #2 - state machines are the solution, but hard to build: "Well, in order to do that in an inverted architecture like that, you have to build a state machine. State machines are notoriously hard for people to implement because you've got to move all of your state off of the stack into objects. And then you have this big case statement that envelopes your entire logic. It's a nightmare to figure out. But, the transformation from serially executing code into a state machine, its continuation-passing-style translation is actually one that you can do in a machine-based fashion." #3 - compilers are good at writing state machines: "You can have the compiler write the state machine if you introduce syntax that allows you to indicate where you want to yield. And that's what await is. Await is basically saying, I want to yield here, and I want to yield this promise, and then when the promise completes, I want you to come back here and continue executing. Then the compiler writes a state machine around it and it actually turns it into this big switch statement and moves all of the state that survives across the await into something that's heap allocated. So it can be brought back. And doing all of that work is something that compilers are great at. And so that was sort of the idea that we have this new style of programming where we're using promises or the equivalent of promises and the ability to yield and then we have callbacks. But trying to write your program in that style, that's also what JavaScript suffered from a lot. It's like all this callback style stuff. With Async and Await, you get the illusion that you're just writing normal sequential code and then the compiler does the painful transformation for you. That turns out to be really useful."
5
15
3
119
13,374
Jonathan Putney retweeted
My AI code assistant calls the javadocs.dev MCP server hundreds sometimes thousands of times a day whether I'm working on Java, Kotlin, or Scala projects. This has been much more efficient than the default JAR extracting & grepping approach!
3
5
1
39
3,119
Jonathan Putney retweeted
Announcing mattpocock/skills v1 - Achieved a 63% reduction in token cost for skill descriptions - Split skills into model-invocable and user-invocable skills, adding /codebase-design, /domain-modeling, and /grilling - (UPDATED) /writing-great-skills - rewritten from the ground up, encoding my skill-writing best practices - (UPDATED) /diagnose -> /diagnosing-bugs - now model-invocable, awesome for fixing hard bugs - (NEW) /ask-matt: a router skill that teaches you how all the engineering skills work together
108
395
49
4,482
432,513