At Expedia Group Java is a core part of our technology stack running through everything we do. Our tech teams are always keen to share what we do so others can learn from them, and we want others to come in and share so we can learn from them too.
Our annual Java meetup is going to be held on Wednesday 27th March at the Expedia Group offices in Angel. On the evening we have a wide range of talks from Jack Shirazi, Gayathri Thiyagarajan and Steve Poole. There will be food, drink and lots of opportunity to chat to fellow engineers keen to learn and share.
Food, Drinks and Networking
First Speaker – Gayathri Thiyagarajan, Tech Lead, Hotels.com brand
‘I am an experienced Technical Lead, Open Source Cloud Engineer, DDD Expert and Agile practitioner. I have a wide business and technical experience, and worked with and led teams to solve business problems effectively. I am experienced in building large scale open source, distributed, anti-fragile applications; leading teams that deliver software solutions using Agile delivery methods and practices; software engineering excellence; software architecture; enterprise applications integration; a wide range of open source frameworks and middleware; training, mentoring and coaching; pre-sales; facilitating workshops; hosting Unconferences and building and maintaining client relationship.’
‘Harnessing Domain Driven Design in building Distributed Systems’
Eric Evan's Domain Driven Design is a core text for all developers and it's experiencing a renaissance due to the rise of Microservices. But are most of us really applying DDD when we're "doing" distributed systems development? I would argue that we're not. But we should be. We need to recalibrate. I'll begin by laying out what DDD means to us, based on experiences I've had building Microservices with distributed teams over the last 2 years. I'll touch lightly on the well-understood elements such as "ubiquitous language", "intention revealing interfaces" and "hands on architects", before spending more time clarifying and explaining the much mis-applied concept of "bounded contexts". Finally I'll draw up in front of the largely ignored ones such as the many patterns for inter-team communication which derive from "context maps". As I move away from the well-understood to the disregarded, I'll illustrate why these latter ones are by far the most important to successful Microservice-based projects. We'll explain why they matter, and the benefits you'll see from applying them. You will leave ready to apply the full power of DDD, and you'll have more fun as you do it.
Second Speaker – Steve Poole
Developer Advocate, DevOps practitioner (whatever that means) Long time IBM Java developer, leader and evangelist. I’ve been working on IBM Java SDKs and JVMs since Java was less than 1. Also had time to work on other things including representing IBM on various JSRs, being a committer on various open source projects including ones at Apache, Eclipse and OpenJDK. Also member of the Adopt OpenJDK group championing community involvement in OpenJDK. A seasoned speaker and regular presenter at JavaOne and other conferences on technical and software engineering topics.
‘Are you ready for Cloud Native Java?’
“Cloud Native”. It’s a great term, one that promises significant benefits for Java developers and Java applications. However there are traps for the unwary traveller undertaking this journey. It’s best to be prepared and forewarned. In this talk hear more about what Cloud Native Java looks like, and how it can differ from what you might be expecting. From application to JVM to hosting environment, there are challenges to face and obstacles to overcome before you’ve reached your goal. This talk will educate and remind you of the important points to be aware of, and will offer an opinionated view of the open technologies you should be including in your travel bag.
Whether a new starter or an old hand, this session will leave you thinking differently about Cloud Native Java!
Third Speaker – Jack Shirazi, Performance Engineer, Hotels.com brand
Jack Shirazi works in the Performance and Reliability team at Hotels.com. He is the founder of JavaPerformanceTuning.com and author of Java Performance Tuning (O'Reilly), and has been an official Java Champion since 2005.
Jack has worked at all levels and all stages of IT projects in several industries including for real-time, low latency and highly scaled applications. As well as authoring his popular book and contributing to several other books, Jack has published over 60 articles on Java performance for various sites and magazines; and has published over 200 newsletters for JavaPerformanceTuning.com over 15 years, and with these newsletters published around 10,000 Java performance and memory related tips.
‘Don’t Make it a Race: The Four Common Concurrency Data Control Patterns’
Developers have a tendency to focus on low-level implementations to handle concurrency, locks, lock-free algorithms, compare-and-set etc. But you shouldn’t jump into any implementation without first deciding which high-level concurrency control pattern is right for the problem. To help you make the right decision, I cover the four common concurrency control patterns that let you safely update shared mutable state: pessimistic locking, optimistic transactions, queue to a single thread, and partitioning the data