Multi-objective optimization is a powerful tool that has been successfully applied to many fields but has seen minimal use in the design and development of nuclear power plant systems. When applied to design, multi-objective optimization involves the manipulation of key design parameters in order to develop optimal designs. These design parameters include continuous and/or discrete variables and represent the physical design specifications. They are modified across a specific design space to accomplish a number of set objective functions, representing the goals for both system design and performance, which conflict and cannot be combined into a single objective function. In this paper, a non-dominated sorting genetic algorithm (NSGA) and parallel processing in Python 3 were used to optimize the design of the passive endothermic reaction cooling system (PERCS) model developed in RELAP5/MOD 3.3. This system has been proposed as a retrofit to currently-operating light water reactors (LWR) and is designed to remove decay heat from the reactor core via the endothermic decomposition of magnesium carbonate (MgCO3) and natural circulation of the reactor coolant. The PERCS design is currently a shell-and-tube heat exchanger, with the coolant flowing through the tube side and MgCO3 on the shell side. During a station blackout (SBO), the PERCS initially keeps the reactor core outlet temperature from exceeding 635 K and then reduces it to below 620 K for 30 days. The optimization of the PERCS was performed with three different objectives: (1) minimization of equipment costs, (2) minimization of deviation of the core outlet temperature during a SBO from its normal operation steady-state value, and (3) minimization of fractional consumption of MgCO3, a metric that is measurable and directly related to the operating time of the PERCS. The manipulated parameters of the optimization include the radius of the PERCS shell, the pitch, hydraulic diameter, thickness and length of the PERCS tubes, and the elevation of the PERCS with respect to the reactor core. The NSGA methodology works by creating a population of PERCS options with varying design parameters. Using the evolutionary concepts of selection, reproduction, mutation, and survival of the fittest, the NSGA method repeatedly generates new PERCS options and gets rid of less fit ones. In the end, the result was a Pareto front of PERCS designs, each thermodynamically viable and optimal with respect to the three objectives. The Pareto front of options as a whole represents the optimized trade-off between the objectives.