Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Six and a half ridiculous things to do with Qua...

Six and a half ridiculous things to do with Quarkus

Let’s abuse the tools! Everyone knows Quarkus is computationally efficient, expressive, and rock-solid for production. But did you know that we can use Quarkus efficiency to build applications that shouldn’t go anywhere *near* production? In this demo-driven session, Holly will put the joy into “developer joy”. She’ll show you all sorts of things you can do with Quarkus that you probably shouldn’t:

- Build an LLM-powered app that’s *guaranteed* to hallucinate, because you can do more than you think with guardrails, and truth is so boring
- Write your business code in rockstarlang, because everything should be a hair metal ballad
- Use Minecraft as your observability client, because the LGTM stack doesn’t have enough explosions
- Write a CLI for generating memes faster, because everything is better on the command-line
- Benchmark an application against a grapefruit, because metric units aren’t tasty

Business value? Learning? If you insist. As well as absurd demos, you’ll leave this session with a deeper understanding of how to get the most out of Quarkus and Java. There will be new Java 25 language features, Quarkus best practices, powerful integrations, and nifty use cases alongside the silly explosions and grapefruit.

Avatar for Holly Cummins

Holly Cummins

October 07, 2025
Tweet

More Decks by Holly Cummins

Other Decks in Programming

Transcript

  1. 1

  2. 2

  3. tell your boss you learned… the dev ui now has

    assistants to help you write + debug code
  4. 3

  5. was this an easy demo? -friends don’t let friends write

    compilers -bytecode generation :( -parsing :( :(
  6. tell your boss you learned… -the quarkiverse is very welcoming

    to new extensions -writing a compiler is a bad idea (but if you do go there, use antlr)
  7. spec none, obvs spec (by dylan beattie) cost: 5 beers

    + 1 napkin time: 1 night implementation
  8. spec none, obvs spec (by dylan beattie) cost: 5 beers

    + 1 napkin time: 1 night implementation cost: $0
  9. spec none, obvs spec (by dylan beattie) cost: 5 beers

    + 1 napkin time: 1 night implementation cost: $0 time: 3 weeks
  10. spec none, obvs spec (by dylan beattie) cost: 5 beers

    + 1 napkin time: 1 night implementation cost: $0 time: 3 weeks
  11. spec none, obvs implementation spec (by dylan beattie) cost: 5

    beers + 1 napkin time: 1 night implementation cost: $0 time: 3 weeks
  12. spec none, obvs implementation cost: $36,312.03 spec (by dylan beattie)

    cost: 5 beers + 1 napkin time: 1 night implementation cost: $0 time: 3 weeks
  13. spec none, obvs implementation cost: $36,312.03 time: 3 months spec

    (by dylan beattie) cost: 5 beers + 1 napkin time: 1 night implementation cost: $0 time: 3 weeks
  14. was this an easy demo? -adding guardrails is simple -but

    … the demo needed -a prompt the llm would hallucinate about 50% of the time
  15. was this an easy demo? -adding guardrails is simple -but

    … the demo needed -a prompt the llm would hallucinate about 50% of the time -a reliable guardrail
  16. tell your boss you learned… -guardrails are important - llm-as-a-judge

    is still an llm -manage context wiseley - context cruft lowers response quality - context growth can cause problems
  17. application user code quarkus framework observability client client dev service

    (testcontainers) extensions observability stack BORING!
  18. application user code quarkus framework minecraft client client dev service

    (testcontainers) extensions minecraft server mod
  19. tell your boss you learned… -you can do a lot

    with interceptors -dev services are awesome
  20. was this an easy demo? -extension was easy, minecraft mod

    was hard -minecraft APIs -lack documentation
  21. was this an easy demo? -extension was easy, minecraft mod

    was hard -minecraft APIs -lack documentation -change between minor versions
  22. was this an easy demo? -extension was easy, minecraft mod

    was hard -minecraft APIs -lack documentation -change between minor versions -client-server sync of injected behaviour is hard
  23. tell your boss you learned… -typesafe objects are better than

    a chat box -… but small models may struggle with structured data -gen ai adds latency
  24. was this an easy demo? -writing the cli was easy

    -native compilation was easy -native compilation + awt + mac is very hard
  25. i tried: native awt on mac liberica vm mac +

    tuning of build-time and runtime classes
  26. i tried: native awt on mac liberica vm mac +

    tuning of build-time and runtime classes graalvm community container
  27. i tried: native awt on mac liberica vm mac +

    tuning of build-time and runtime classes graalvm community container mandrel container
  28. tell your boss you learned… •picocli + quarkus is cool

    •native is clever tech •…but native has dragons •only go native if you actually need it
  29. was this an easy demo? eric deandrea wrote the initial

    app and julien ponge wrote the scripts
  30. was this an easy demo? writing benchmarks is trivial …

    but writing good benchmarks is hard
  31. spring boot quarkus t3.nano $0.0052 40 586 req/s 17 209

    req/s 1 342 errors 2 vCPUs 0.5 GiB
  32. spring boot quarkus t3.nano $0.0052 40 586 req/s 17 209

    req/s 1 342 errors 2 vCPUs 2 GiB 2 vCPUs 0.5 GiB
  33. spring boot quarkus t3.nano $0.0052 t3.small $0.0208 40 586 req/s

    17 209 req/s 1 342 errors 2 vCPUs 2 GiB 2 vCPUs 0.5 GiB
  34. spring boot quarkus t3.nano $0.0052 t3.small $0.0208 40 586 req/s

    17 209 req/s 1 342 errors $3.87 a month 2 vCPUs 2 GiB 2 vCPUs 0.5 GiB
  35. spring boot quarkus t3.nano $0.0052 t3.small $0.0208 40 586 req/s

    17 209 req/s 1 342 errors $15.47 a month $3.87 a month 2 vCPUs 2 GiB 2 vCPUs 0.5 GiB
  36. spring boot quarkus t3.nano $0.0052 t3.small $0.0208 40 586 req/s

    17 209 req/s 1 342 errors $15.47 a month $3.87 a month x2 2 vCPUs 2 GiB 2 vCPUs 0.5 GiB
  37. spring boot quarkus t3.nano $0.0052 t3.small $0.0208 40 586 req/s

    17 209 req/s 1 342 errors $15.47 a month $3.87 a month $30.94 a month x2 2 vCPUs 2 GiB 2 vCPUs 0.5 GiB
  38. spring boot quarkus t3.nano $0.0052 t3.small $0.0208 40 586 req/s

    17 209 req/s 1 342 errors $15.47 a month $3.87 a month $30.94 a month x2 2 vCPUs 2 GiB 2 vCPUs 0.5 GiB
  39. spring boot quarkus t3.nano $0.0052 t3.small $0.0208 40 586 req/s

    17 209 req/s 1 342 errors $15.47 a month $3.87 a month $30.94 a month x2 2 vCPUs 2 GiB 2 vCPUs 0.5 GiB
  40. tell your boss you learned… -quarkus uses 2 - 8x

    fewer compute resources than spring -quarkus is 2 - 8x cheaper to run than spring
  41. t3.nano t3.small 2x t3.small Watts per hour 12.5 14 28

    Lemons per hour 17,857 20,000 40,000
  42. jbang wrk2@hyperfoil -t2 -c100 -d30s -R 200 --latency http:// localhost:8080/fruits

    jbang wrk@hyperfoil -t2 -c100 -d20s --timeout 1s http:// localhost:8080/fruits sudo powermetrics --samplers cpu_power,tasks --show-process- samp-norm --show-process-gpu --show-usage-summary -i 0 -o output.txt
  43. tell your boss you learned… -use wrk2 or hyperfoil for

    load testing -use powermetrics to measure energy by pid on mac
  44. was this an easy demo? -fitting 77 ,857 lemons on

    my desk is hard -our industry is still learning how to do energy measurement
  45. what have we done? 1. translated output with a filter

    2. transformed code with an extension
  46. what have we done? 1. translated output with a filter

    2. transformed code with an extension 3. compiled rock ballads to bytecode
  47. what have we done? 1. translated output with a filter

    2. transformed code with an extension 3. compiled rock ballads to bytecode 4. amplified hallucinations
  48. what have we done? 1. translated output with a filter

    2. transformed code with an extension 3. compiled rock ballads to bytecode 4. amplified hallucinations 5. used minecraft as an observability client
  49. what have we done? 1. translated output with a filter

    2. transformed code with an extension 3. compiled rock ballads to bytecode 4. amplified hallucinations 5. used minecraft as an observability client 6. made memes with a cli
  50. what have we done? 1. translated output with a filter

    2. transformed code with an extension 3. compiled rock ballads to bytecode 4. amplified hallucinations 5. used minecraft as an observability client 6. made memes with a cli 7 . confirmed quarkus does a lot with very few resources 6½.
  51. the value of a second opinion? chatgpt.com the statement we’re

    validating “oh yes, definitely true”
  52. the value of a second opinion? chatgpt.com the statement we’re

    validating “oh yes, definitely true” “what answer would you give?”
  53. the value of a second opinion? chatgpt.com the statement we’re

    validating “oh yes, definitely true” “what answer would you give?” but if you knew, why did you … ?
  54. "Okay, let’s tackle this! As of today, October 1st, 2025,

    there are approximately **12** “BS”s in the word “blueberry.” It’s a surprisingly common phenomenon! 😊 Do you want to explore why this happens?" gemma3 - 1 b parameters how many bs in blueberry?
  55. <think> Hmm, the user is asking about something related to

    20-30-0-3 but brexit, probably typo or20-10- something, correction. User meant brexit or2-1- meaning Brexit. Let me confirm that. User is20- user2 is inquiring about Brexit. UK leaving EU thing. But what time period20 2020-3 might be typo for20- 20 twenty021203. 20-20 or something. Perhaps20-202201. UK left. UK left EU. UK left20 on01 Jan201202022-021201021 I think22. Wait no1. Let me212012 January22202021. So January. Yes2 user might be21 probably20 asking about that. User22. Better2 just confirm. Brexit201 20 answer. Say20 simply22 date2. Not much else0 else0. Keep2 simple1 short1 friendly2. Okay2 polite2 user. </think> It seems you're asking about the date the Brexit, right? The UK left EU on 29th January21st of February2020221 deepseekr1- 1.5 b parameters when did brexit happen?