This document discusses optimizing evolutionary algorithms at the program level. It describes how evolutionary algorithms rely on parameters and operators, but little attention is paid to their implementation. The authors used profilers and monitors to identify bottlenecks in a canonical evolutionary algorithm written in Perl. They were able to improve runtime performance by up to two orders of magnitude through changes like caching fitness computations and using more efficient sorting functions. The conclusions are that implementation details can substantially impact performance and it is important to apply typical programming techniques when writing evolutionary algorithms.