Talks Summary

A list of the majority of the popular talks I’ve done in the last few years. Mostly with slides.  The slides for an individual talk evolve over time so each outing is a little different. A representative slide deck is attached.

The Anatomy of Java Vulnerabilities

Devoxx UK 2017, Geecon 2017

Java is everywhere. According to Oracle it’s on 3 billion devices and counting. We also know that Java is one of the most popular vehicles for delivering malware. But that’s just the plugin right? Well maybe not. Java on the server can be just at risk as the client.

In this talk we’ll cover all aspects of Java Vulnerabilities. We’ll explain why Java has this dubious reputation, what’s being done to address the issues and what you have to do to reduce your exposure. You’ll learn about Java vulnerabilities in general: how they are reported, managed and fixed as well as learning about the specifics of attack vectors and just what a ‘vulnerability’ actually is. With the continuing increase in cybercrime it’s time you knew how to defend your code. With examples and code this talk will help you become more effective in tacking security issues in Java.

Java & the GPU – all you need to know


Graphic processing units (GPUs) are not just for playing games. They play a huge role in accelerating applications that have a large number of parallelizable tasks such as machine learning, data analysis or similar. Learn how Java can exploit the power of GPUs to optimize high-performance computing applications, through both explicit GPU programming and letting the Java JIT compiler transparently off-load work to the GPU. This presentation covers the principles and considerations for GPU programming from Java and looks at the software stack and developer tools available. From laptops to the cloud GPUs are turning up everywhere.After this talk you will be ready to extract the full power of these GPUs from your own application.

Succeeding in the Cloud – the guidebook of Fail

Jax Devops 2017

Many have gone before you along this path. Many have failed. A few have succeeded. All have scars. Although the journey is different for everyone there are common aspects to them all. In this talk we will cover our experiences in moving applications into the Cloud. What you must do. What you must not. What matters, what doesn’t.

In moving to the cloud there is no try.

In this talk:

* We’ll cover the core aspects of how the cloud differs from local data centers in terms of application design, runtime characteristics and operational considerations.
* We’ll explain through various real life examples where things worked and where they didnt
* We end with a summary of the key elements to success and the major pitfalls to avoid.


North America IoT 2017

Skynet? Really? How close are we to self aware, self replicating machines? In this fun session learn some of what computers can do and what they can’t. You think you know. You may be surprised.
The emerging focus on Cognitive computing, general AI, Computer Vision, Internet of Things, etc. signpost the way to new opportunities and new challenges for computers and humans alike. We decided to see how far we could get in building our own version of an all powerful controlling entity.
In this session we’ll cover how we did it, what we learned and answer those important questions like: “Can we build a Skynet yet?”, “Can my computer be my best friend?”, ”Will I ever able to program without a keyboard?”, ”Can a computer read my mind?” and the all important “will drones be able to deliver beer at the right temperature?”

Ten Simple Rules for Writing Great Testcases

Devoxx US 2017

We’ve all been there: debugging problems in a test case and silently screaming into the dark. (Sometimes not even silently.) Poor test case design can cost you significant time and effort let alone impact the quality of your application or product. Testing is vitally important, but so is having a test suite you can use effectively and can rely on. This session will take you through the top ten rules for writing effective and reliable testcases.

The new kids on the block such as Cloud or Docker and general “Infrastructure as Code” style solutions may make you believe old rules are just old. This talk will make you think again. Knowledge gained from personal experience is always best. Learn from these old masters how to design great test cases and maybe you’ll never have to visit the dark side again.

Docker in 30 minutes

Linuxing In London,  Data Analytics Meetup

(This talk is aimed at technical people who have heard of Docker but not used it yet.)

Docker is the new way to package, distribute and run your application or microservice. It’s the bees-knees. It’s the best thing since sliced bread. It’s the kings pajamas etc, etc. In this short but packed talk I’ll explain what Docker actually is and how it works. I’ll show you how much of the hype is real and give a practical demo or two to illustrate the power of Docker. Is Docker the panacea for all ills? This talk will help you make up your mind.

Cybercrime and the Developer: How to Start Defending Against the Darker Side

JavaOne 2016,  JaxLondon 2016,  Java2Days 2016 , Devnexus 2017, ProgsCon 2017

In the world of DevOps and the cloud, most developers have to learn new technologies and methodologies. The focus tends to be on adding capabilities such as resilience and scaling to an application. One critical aspect consistently overlooked is security. In this session, learn about a few of the simple actions you can take (and some behaviors you must change) to create a more secure Java application for the cloud. The world of the cybercriminal is closer than you realize. Hear how at risk your application may be, see practical examples of how you can inadvertently leave the doors open, and understand what you can do to make your Java solution more secure.

All Change! How the new economics of Cloud will make you think differently about Java

Devoxx 2015  , JavaOne 2015 , Java2Days 2016

How far have you got with learning about Cloud? Got your head around Platform as a Service? Understand what IaaS means? Can spell Docker? Working in a DevOps mode? It’s easy to focus on learning new technology but it’s time to take a step back and look at what the technical implications are when an application is heading to the cloud. In the world of the cloud the benefits are high but the economics (financial and technical) can be radically different. Learn more about these new realities and how they can change application design, deployment and support The introduction of Cloud technologies and its rapid adoption creates new opportunities and challenges. Whether designer, developer or tester, this talk will help you to start thinking differently about Java and the Cloud

DevOps and the cloud: all hail the (developer) king

JAX London 2015

Joint talk with Daniel Bryant


Mind Control to Major Tom: Is It Time to Put Your EEG Headset On?

JavaOne 2016

Using your mind to interact with computers is a long-standing desire. Advances in technology have made it more practical, but is it ready for prime time? This session presents practical examples and a walkthough of how to build a Java-based end-to-end system to drive a remote-controlled droid with nothing but the power of thought. Combining off-the-shelf EEG headsets with cloud technology and IoT, the presenters showcase what capabilities exist today. Beyond mind control (if there is such a concept), the session shows other ways to communicate with your computer besides the keyboard. It will help you understand the art of the possible and decide if it’s time to leave the capsule to communicate with your computer.

DevOps & the Dark Side10 ways to convince your team DevOps is a force for good

Jazoon 2014 , GeeCon 2015, JavaOne 2015

So you get DevOps. You like the idea and think it’s important. The trouble is others in your team don’t. This talk will help you understand how to convince your team of the benefits of DevOps. Packed with facts and figures this session will work through the common challenges that teams face when moving to a DevOps mode and outline how to address them.


Devoxx 2014

Joint talk with Daniel Bryant

DevOps – is it for you? Heard about the wonderful ways it could benefit your organisation, but put off by the scary stories? Can you really make the transition to DevOps, and is it worth it? Listen and learn from two DevOps practitioners about their hands-on experiences in making the change. Covering a range of real life examples, this talk will explain the real business benefits to be had from using DevOps techniques, as well as the technical and personal aspects involved. 

Whether it’s a small team within a startup or one of hundreds within a large organisation, this talk has practical advice on how to approach the challenge, what critical changes need to be considered, and what tools and processes are best suited for the situation. The adoption of DevOps is a game changing event for the industry. Learn why and learn how you can benefit from it too.

Packed Objects: Fast Talking Java Meets Native Code

JaxLondon 2013

Worried about the future of Java? Want to see it keep moving forward? Don’t be concerned. The transformation of Java is already underway. Driven by new technologies and new opportunities Java and the JVM are entering uncharted worlds and challenging old approaches. In this session learn about one such expedition in the form of an introductory talk to technology being developed by IBM. This experimental technology is exploring a new way to share data between the JVM and other runtimes. This new approach radically reduces the cost of data sharing and introduces new capabilities to Java that will benefit everyone, not just those interested in high speed interoperability. In a nutshell PackedObjects is designed to allow better control over the layout and form of fields within an Object. This approach provides better, faster, easier inter-op with native code. Would you like to be able to really share data with native applications? No copying, no special, arcane APIs. Just Java classes on one side, C style structures on the other and a lot less JNI. Even if you don’t directly work with JNI the platform level benefits are potentially enormous. Faster interoperability with any native code means faster networking performance, faster I/O and faster graphics rendering. Ever tried to write a 3D game in Java and been bottlenecked by OpenGL interoperability? PackedObjects can help eliminate the performance pain point. Come to this session and see PackedObjects in action.

JVM Support for Multitenant Applications

JaxLondon 2013, Geecon 2013

Per-tenant resource management can help ensure that collocated tenants peacefully share computational resources based on individual quotas. This session begins with a comparison of deployment models (shared: hardware, OS, middleware, everything) to motivate the multitenant approach. The main topic is an exploration of experimental data isolation and resource management primitives in IBM’s JDK that combine to help make multitenant applications smaller and more predictable. Highlights include: A fine-grained tenant API; Per-tenant resource quotas based on the JSR 284 API; Tenant-aware JRE: run existing apps in a shared JVM without code changes; Challenges: handling misbehaved tenants, safe finalization, monitoring.

Compact Off-Heap Structures in the Java Language

Geecon 2013

Whilst Java is a feature rich, there are still areas where it looks enviously at other languages. Native languages like C boast the ability to specify arrays of structures which has the benefit of being able to have compact representation of data and allow for the fast conversion of data into a stream of bytes (ie. serialization). It’s possible to achieve the same things in Java by carrying out direct memory management yourself through the use of the Unsafe class, but as the name suggests this can be perilous. This session will introduce the concept of bringing C like structures to Java through a proposed Java Language change, and show the improvements possible for the memory footprint and performance of applications.

Rock Art and Rockets – Why Java needs you more than ever

Keynote:  JaxLondon 2012

This talk discusses why having the right mix of business and open source participation in the development of Java benefits everyone. It will explain why competition matters and why the Java community needs to take a larger role in driving the future. We’ll look at early Java, examine some of the reasons behind its amazing adoption rate and why similar evolutionary pressures could now leave Java wanting. In most keynotes there is a statement of direction: in this talk we’ll explain why the future of Java lies in the hands of the community and why, in a world of cavemen and scientists, spectators and Olympians – it’s easy to get involved….

Serialization: Tips, Tricks, and Techniques

JavaOne 2011

Understanding, using and debugging Reference Objects

JavaOne 2011