Dave Nicolette started his career in IT in 1977 as an application programmer. Since then, he has worked on a variety of systems including IBM mainframe and midrange systems, DEC, Tandem, Wang, Honeywell, Unisys and Stratus, and has developed and supported applications in Assembly, Cobol, PL/I, VisualBasic, C/C++, Java, Scala, Kotlin, C#, F#, and others using Unix, Linux, Windows, zOS, NonStop, and other OSes. Currently he works as a technical coach for software development/delivery teams, emphasizing contemporary practices such as Continuous Delivery, Test-Driven Development, and Specification by Example. He is an author, speaker, and trainer who struggles to keep up with all the new developments in the field. He has made most of the mistakes that are possible to make, and continues to discover new ones.