Derek C. Ashmore gave a presentation on writing microservices in Java. He began by defining microservices as having a single functional purpose and being loosely coupled. He discussed design considerations like service boundaries, handling service failures, and performance. Common patterns for microservices like circuit breakers, caching, and messaging queues were also covered. Ashmore concluded with a discussion of cross-cutting concerns, common mistakes, and when microservices are appropriate to use.