As the high-performance computing (HPC) community works to address the heterogeneity of upcoming exascale computers, different architectures of processing units (such as GPUs and FPGAs), heterogeneous memory systems (including non-volatile and persistent memories) and networks need to be addressed. The EPEEC project is taking on this challenge, having compiled five software components developed by European research institutions and companies to fine-tune and develop for its programming environment. OmpSs is a shared-memory programming model based on directives and tasking, forerunner of initiatives for the OpenMP Standard. In the context of EPEEC, OmpSs is being developed to include accelerator directives and tasking within accelerators, seeking impact on the OpenMP and OpenACC standardization bodies toward improved programming model composability. The developments of a distributed-shared memory backend on top of the ArgoDSM middleware to seamlessly distribute OmpSs workloads across compute nodes will ease cluster deployments while optimizing performance with respect to state-of-the-art solutions. GASPI is a distributed-memory programming model that is established as the European lead on one-sided internode communication. Developments in EPEEC include automatic data compression and eventually-consistent collectives, along with enhanced interoperability with runtime systems implementing intranode programming models. OmpSs+GASPI programming will offer an alternative to the ArgoDSM backend for developers seeking large-scale deployments. Parallelware is a static analysis tool that will help users get started on porting their serial codes to parallel computing, by providing hints to directive annotation in OmpSs, OpenMP, and OpenACC. Extrae, Paraver, and Dimemas are performance tools that offer bleeding-edge performance analysis and are being evolved to cover EPEEC's programming models. AVBP, DIOGENeS, OSIRIS, Quantum ESPRESSO, and SMURFF are the five applications involved in the project. Coming from different fields and covering compute-intensive, data-intensive, and extreme-data scenarios, these are serving as excellent co-design partners and will be leveraged as pre-exascale demonstrators. These components will tackle issues in high programming productivity, high execution efficiency and scalability, energy awareness, and smooth composability/interoperability. Running from 1st October 2018 to 30th September 2021 with a budget of €3,9 million, EPEEC – European joint Effort toward a Highly Productive Programming Environment for Heterogeneous Exascale Computing – brings together 10 European research institutions and companies with the common goal of developing and deploying a production-ready parallel programming environment that turns upcoming overwhelmingly-heterogeneous exascale supercomputers into manageable platforms for domain application developers.