#34 - 06.06.2017
#34 Mutants, Xenomorphs and Bytecode
0: getstatic #2
3: ldc #3
5: invokevirtual #4
If these things don’t mean anything to you, but at the same time you have this strange feeling deep inside you, that you should know it by heart, come to this talk. Do you want to understand how component scan works in Spring? What nasty things does Hibernate do to your lovely entity classes? And how does AspectJ work underneath? If the answer to any of the above questions is “yes”, you should feel welcome to the journey through bytecode, stacks, local variable tables and class file format. I am going to unveil some of the JVM bytecode fundamentals, explain how everything works and why some things seem weird as well as to present a few tools that allow you to play with bytecode in a warmth of your desk. I promise not to hurt any animal during my presentation, except ASM, ByteBuddy and Byteman. And yes, I did it a few times in production, for better good of humanity.
For more than 20 years in the IT industry, as a database administrator, programmer, architect, manager and "onsite disaster engineer". At the moment, working at Neo4j as performance engineer, enjoying the way of code, and exploring dungeons of JVM and OS, after few years as chief architect in SaaS business and teach lead in Allegro.pl. I took part in small, medium and large projects nonsense, under the principles of "Waterfall", Agile and in the absence of any methodologies, always with the same effect. What led me to the conclusion that no matter what you do, as long how you do it well, in the simplest possible way and use appropriate tools that do the work for you. In the meantime, I fell in love in the ideas of TDD and Software Craftsmanship, to the limits exploring beautiful in its simplicity ideas as REST and NoSQL, only to abandon them to explore the secrets of "systems thinking" and admire the strength that brings "metaphor" and discover that we are all objects in an eternal virtual machine. Humble follower of the church of JVM, bytecode and JIT researcher, exploring all sorts of parsers, interpreters and compilers. From time to time you can hear my low-quality jokes about architecture conferences in Poland. I am also author of a blog on http://geekyprimitives.wordpress.com/ and self-proclaimed dictator in the program committee at SegFault ,CoreDump, 4Developers and JDD conferences.