Writing automation code requires good design and organisation in addition to 'test' code. Abstraction layers help make code readable, and maintainable. But what options are open to you? DSLs, DOM Level Abstractions? Page Objects? What about Gherkin? In this session you will see examples and learn the thought processes that led to the decisions.