The Curious Engineer

All blogs / Java / JVM

Around IT in 256 seconds

nurkiewicz.com

Podcast for developers, testers, SREs… and their managers. I explain complex and convoluted technologies in a clear way, avoiding buzzwords and hype. Never longer than 4 minutes and 16 seconds.

Java / JVMCompilersGo

Posts
344 from 1 Sep 2008 to 27 Sep 2026
Posting
monthly (12 in the last year)
Kind
personal blog
Feed
https://nurkiewicz.com/feeds/posts/default

2026 11

  1. Interoperability with Java: Write yourself a compiler, Part VI
  2. Interview with Big Data engineer in 2026
  3. Generating Java bytecode: Write yourself a compiler, Part V
  4. Your First Virtual Machine: Write yourself a compiler, Part IV
  5. Compiling to intermediate representation: Write yourself a compiler, Part III
  6. mastodon.social Archive
  7. Arithmetic interpreter: Write yourself a compiler, Part II
  8. The simplest interpreter: Write yourself a compiler, Part I
  9. Rewriting my 2005 C++/OpenGL game in Go
  10. OpenTelemetry glossary: 30 terms you should know
  11. Podcast everything

2025 1

  1. Public transit heatmap of warsaw

2024 1

  1. Return await in javascript

2023 5

  1. Bgp
  2. Ruby
  3. K means
  4. Scala
  5. Sqlite

2022 32

  1. Podcasts i listen to
  2. Twitter archive
  3. Mastodon
  4. Asynchronous communication
  5. Clojure
  6. Sla
  7. Rabbitmq
  8. Genetic algorithms
  9. Proof of stake
  10. Artificial neural networks
  11. Quarkus
  12. Mongodb
  13. Rtb
  14. Nft
  15. Ethereum
  16. 12th factor part2
  17. Ddos
  18. Stuxnet
  19. Quic
  20. Reactjs
  21. Neo4j
  22. Soap
  23. 12th factor part1
  24. Crdt
  25. Erlang
  26. Acid transactions
  27. Devops
  28. Typescript
  29. Zero downtime deployment
  30. Slack pro tips
  31. Aspect oriented programming
  32. Version control

2021 41

  1. Haskell
  2. Spring framework
  3. Orm
  4. Logging
  5. Tdd
  6. Kotlin
  7. Consumer driven contracts
  8. How compilers work
  9. How computers work
  10. Cdn
  11. Immutability
  12. Percentages
  13. The missing readme book review
  14. Distributed tracing
  15. Functional programming
  16. Property based testing
  17. Cloud computing
  18. Onerrorcontinue reactor
  19. Json streaming in webflux
  20. Error handling in json streaming with webflux
  21. Terraform
  22. Backpressure
  23. Public key cryptography
  24. Restful apis
  25. Nodejs
  26. Reactor eager concurrent
  27. Kubernetes
  28. Dns
  29. Docker
  30. Unicode
  31. Reactive programming
  32. Microservices
  33. Fallacies of distributed computing
  34. Http cookies
  35. Redis
  36. Hash function
  37. Oauth2
  38. Sql join
  39. Event sourcing
  40. Time synchronization
  41. Linear regression

2020 30

  1. Garbage collection
  2. Service discovery
  3. High frequency trading
  4. Blockchain
  5. Proof of work
  6. Sse websockets
  7. Moores law
  8. Bpm
  9. Jit
  10. Graalvm
  11. Chaos engineering
  12. Type systems
  13. Mutation testing
  14. Akka
  15. Mapreduce
  16. Continuous integration delivery deployment
  17. Cassandra
  18. Speed of light
  19. Kafka design
  20. Retrying failures
  21. Http
  22. Graphql
  23. Serverless
  24. Asmjs and webassembly
  25. Littles law
  26. Circuit breaker
  27. Service mesh
  28. Meta
  29. Graphql server in java part iii
  30. See how google is tracking your

2019 6

  1. Graphql server in java part i basics
  2. Graphql server in java part ii
  3. Fallbacks are overrated architecting
  4. Mapmerge one method to rule them all
  5. Rxjava vs reactor
  6. Designing data intensive applications

2018 10

  1. Thread pool self induced deadlocks
  2. Brute forcing seemingly simple number
  3. Sneak peek at spring cloud function
  4. Reactive emoji tracker with webclient
  5. Reactive emoji tracker with webclient 7
  6. Spring reactor and elasticsearch from
  7. Spring reactor and elasticsearch
  8. Monitoring and measuring reactive
  9. Spring boot 2 migrating from dropwizard
  10. Spring boot 2 fluxes from elasticsearch

2017 12

  1. Streaming large json file with jackson
  2. Fixed rate vs fixed delay rxjava faq
  3. Detecting and testing stalled stream
  4. Idiomatic concurrency flatmap vs
  5. Flatmap vs concatmap vs concatmapeager
  6. Flatmap and order of events rxjava faq
  7. 1x to 2x migration observable vs
  8. Generating backpressure aware streams
  9. Loading files with backpressure rxjava
  10. Eager subscription rxjava faq
  11. Beware of slow transaction callbacks in
  12. Thoughts after jcrete unconference

2016 5

  1. Small scale stream processing kata part
  2. Small scale stream processing kata part 13
  3. Reactive programming with rxjava book
  4. Guide to time and date in java
  5. Functor and monad examples in plain java

2015 23

  1. Which thread executes
  2. Spock vw writing custom spock framework
  3. Geecon programming contest answers
  4. Displaying progress of spring
  5. Dependency injection syntax sugar over
  6. Writing download server part iv
  7. Writing download server part v throttle
  8. Writing download server part vi
  9. Consuming javautilconcurrentblockingque
  10. Restful considered harmful
  11. Notes after goto amsterdam
  12. Server sent events with rxjava and
  13. How longaccumulator and
  14. Writing download server part i always
  15. Writing download server part ii headers
  16. Writing download server part iii
  17. Notes after springio barcelona
  18. Biological computer simulation of
  19. Spring injecting lists maps optionals
  20. Completablefuture cant be interrupted
  21. Storing months of historical metrics
  22. Retry after http header in practice
  23. Journey to idempotency and temporal

2014 27

  1. Benchmarking impact of batching in
  2. Accessing meetups streaming api with
  3. Hazelcast member discovery using
  4. Asynchronous timeouts with
  5. Batching collapsing requests in hystrix
  6. Executorservice 10 tips and tricks
  7. Converting between completablefuture
  8. Java performance definitive guide review
  9. Property based testing with spock
  10. Property based testing with scalacheck
  11. Hazelcasts maploader pitfalls
  12. Url shortener service in 42 lines of
  13. Turning recursive file system traversal
  14. Introduction to writing custom
  15. Grouping sampling and batching custom
  16. Building extremely large in memory
  17. Testing code for excessively large
  18. Option.fold() considered unreadable
  19. Clojure for Machine Learning book review
  20. InterruptedException and interrupting threads explained
  21. Simplifying trading system with Akka
  22. HashMap performance improvements in Java 8
  23. Simplifying ReadWriteLock with Java 8 and lambdas
  24. Automated bug finding with git bisect and mvn test
  25. Custom Spring namespaces made easier with JAXB
  26. Turning Twitter4J into RxJava’s Observable
  27. Three flavours of request-response pattern in Akka

2013 42

  1. Playing with Scala futures
  2. Promises and CompletableFuture
  3. Proxies done right with Guava’s AbstractInvocationHandler
  4. brainfuck in Clojure. Part II: compiler
  5. “Beginning Java EE 7” by Antonio Goncalves review
  6. brainfuck in Clojure. Part I: interpreter
  7. instanceof operator and Visitor pattern replacement in Java 8
  8. Optional in Java 8 cheat sheet
  9. Macro lifecycle in Clojure
  10. Fake system clock pattern in Scala with implicit parameters
  11. Managing congested actors in Akka
  12. Asynchronous retry pattern
  13. Mapping enums done right with @Convert in JPA 2.1
  14. Clojure macros for beginners
  15. su and sudo in Spring Security applications
  16. Lazy sequences in Scala and Clojure
  17. Synchronising Multithreaded Integration Tests revisited
  18. Java 8: Definitive guide to CompletableFuture
  19. Java 8: CompletableFuture in action
  20. Lazy sequences implementation for Java 8
  21. Null safety in Kotlin
  22. Scala traits implementation and interoperability. Part I: Basics
  23. Scala traits implementation and interoperability. Part II: Traits linearization
  24. WatchService combined with Akka actors
  25. SiftingAppender: logging different threads to different log files
  26. DeferredResult - asynchronous processing in Spring MVC
  27. Futures in Akka with Scala
  28. Promises and Deferred objects in jQuery and AngularJS
  29. Promises and futures in Clojure
  30. FitNesse your ScalaTest with custom Scala DSL
  31. Synchronizing transactions with asynchronous events in Spring
  32. Breaking build is not a crime
  33. Don’t rely on unit tests alone
  34. java.util.concurrent.Future basics
  35. Implementing custom Future
  36. ExecutorCompletionService in practice
  37. ListenableFuture in Guava
  38. Advanced ListenableFuture capabilities
  39. Probability distribution for programmers
  40. @Cacheable overhead in Spring
  41. Spring Data JDBC generic DAO implementation - most lightweight ORM ever
  42. How aggressive is method inlining in JVM?

2012 30

  1. Two actors - discovering Akka
  2. become/unbecome - discovering Akka
  3. Non-blocking I/O - discovering Akka
  4. Remote actors - discovering Akka
  5. Parallelization of a simple use case explained
  6. Standalone web application with executable Tomcat
  7. Forcing Tomcat to log through SLF4J/Logback
  8. Where do the stack traces come from?
  9. Java Coding Conventions considered harmful
  10. Testing Quartz Cron expressions
  11. Java features applicability
  12. Your first message - discovering Akka
  13. Request and response - discovering Akka
  14. Accessing clipboard in Linux terminal
  15. Confitura 2012 - podziękowanie i uwagi
  16. RateLimiter - discovering Google Guava
  17. Which Java thread consumes my CPU?
  18. String memory internals
  19. javax.servlet.AsyncContext.start() limited usefulness
  20. Integrating with reCAPTCHA using… Spring Integration
  21. Oslo coderetreat summer 2012 - in Scala
  22. Configuring Quartz with JDBCJobStore in Spring
  23. Quartz scheduler plugins - hidden treasure
  24. eta-expansion (internals) in Scala explained
  25. Quartz scheduler misfire instructions explained
  26. Secret powers of foldLeft() in Scala
  27. Filtering irrelevant stack trace lines in logs
  28. Automatically generating WADL in Spring MVC REST application
  29. Client-side server monitoring with Jolokia and JMX
  30. Gentle introduction to WADL (in Java)

2011 14

  1. Enabling JMX in Hibernate, EhCache, Quartz, DBCP and Spring
  2. Spring pitfalls: transactional tests considered harmful
  3. Spring pitfalls: proxying
  4. The evolution of Spring dependency injection techniques
  5. Logging exceptions root cause first
  6. What features of Java have been dropped in Scala?
  7. Poor man’s CRUD: jqGrid, REST, AJAX, and Spring MVC in one house
  8. EJB 3.1 Cookbook by Richard Reese review
  9. Enabling load balancing and failover in Apache CXF
  10. MongoDB and recording appenders for Logback
  11. Tenfold increase in server throughput with Servlet 3.0 asynchronous processing
  12. Jolokia + Highcharts = JMX for human beings
  13. Activiti processes and executions explained
  14. Spring framework without XML… At all!

2010 21

  1. Speeding up Spring integration tests
  2. Functional Java Developers’ Day 2010
  3. JavaScript dynamic language support in Spring framework
  4. Testing for exceptions in JUnit revised
  5. Few words after Javarsovia 2010
  6. Creating prototype Spring beans on demand using lookup-method
  7. Hades: DRY principle in JPA/Spring development
  8. Clean code, clean logs: use appropriate tools (1/10)
  9. Clean code, clean logs: logging levels are there for you (2/10)
  10. Clean code, clean logs: do you know what you are logging? (3/10)
  11. Clean code, clean logs: avoid side effects (4/10)
  12. Clean code, clean logs: concise and descriptive (5/10)
  13. Clean code, clean logs: tune your pattern (6/10)
  14. Clean code, clean logs: log method arguments and return values (7/10)
  15. Impressions after GeeCON 2010
  16. Clean code, clean logs: watch out for external systems (8/10)
  17. Clean code, clean logs: log exceptions properly (9/10)
  18. Clean code, clean logs: easy to read, easy to parse (10/10)
  19. Elegance vs. simplicity
  20. Logback-feed: publish your application logs using Atom/RSS feed
  21. Writing custom FreeMarker template loaders in Spring

2009 26

  1. Chain of responsibility pattern meets Spring, JPA, Wicket and Apache CXF part 2/2
  2. Adapter pattern revised
  3. Chain of responsibility pattern meets Spring, JPA, Wicket and Apache CXF part 1/2
  4. DDD in Spring made easy with AspectJ
  5. Compile- vs load-time weaving performance in Spring
  6. My first open source contribution
  7. Injecting methods at runtime to Java class in Groovy
  8. Adapter pattern: accesing Ehcache via Map interface
  9. Spring AOP riddle demystified
  10. State pattern: introducing domain-driven design
  11. 10 reasons why I don’t like EJB3
  12. Invoking secured remote EJB in JBoss 5
  13. Spring AOP riddle
  14. Short review of “Java Concurrency in Practice” and others…
  15. Podsumowanie Javarsovia 2009
  16. Sun Certified Web Component Developer - refleksje
  17. Logika biznesowa w Groovy ze Springiem i JPA część 1/2
  18. Logika biznesowa w Groovy ze Springiem i JPA część 2/2
  19. Relacja z GeeCON 2009 w Krakowie
  20. Skrypty Groovy na żądanie w Springu
  21. Wzorzec Visitor - realny przykład
  22. Wstrzykiwanie EJB do akcji Struts2 z @EJB
  23. Freemarker - pierwsze kroki
  24. SCJD - Sun Certified Java Developer zdobyty!
  25. Elegancki CRUD w jednej akcji Struts2 część 1/2
  26. Elegancki CRUD w jednej akcji Struts2 część 2/2

2008 7

  1. Wzorzec Command - elastyczny protokół sieciowy
  2. Strumienie w Javie - cheat sheet
  3. Tomcat z JavaRebel i aplikacja Struts2
  4. Log4j bez konfiguracji
  5. java.lang.reflect.Proxy czyli prawie AOP za prawie darmo
  6. Relacja z Java Developers’ Day 2008
  7. Generyczne testy z adnotacją Parameters w JUnit 4