Balancing Domain Decomposition by Constraints (BDDC) and Finite Element Tearing and Interconnecting Dual Primal (FETI-DP) methods are among the most powerful methods for preconditioning linear systems arising from the finite element discretization of linear and nonlinear PDEs. In the last decade they have been successfully applied to many different bilinear forms, either symmetric or non-symmetric, positive definite or indefinite. The robustness of the methods has been extensively proved for scalar and vector-valued elliptic problems, and for a wide range of discretizations, from low-order finite elements to spectral elements and NURBS based discretizations arising from IsoGeometric Analysis. For any particular application, the success of BDDC and FETI-DP algorithms depends on the choice of an averaging operator and of a set of so-called primal continuity constraints. PETSc is a widely used suite of data structures and routines for the scalable solution of scientific applications modeled by PDEs. It is an object oriented library written in C and parallelized with MPI which can exploit different backends for matrix and vector operations such as shared memory parallelism on the CPU (using pthreads or OpenMP), NVIDIA GPUs (with CUDA) and Xeon Phi co-processors (via OpenCL). In this talk we will briefly introduce the BDDC and FETI-DP methods with an emphasis on algorithmic aspects. The current implementation of the methods, provided to the PETSc library by the corresponding author, will be presented, together with available user customizations. Current developments for the new deluxe scaling operator and the adaptive choice of constraints will be also discussed. Experimental results will be provided for the Cardiac Bidomain model discretized with low-order finite elements, and for scalar elliptic problems discretized with NURBS. Also, recent results on H(curl) problems discretized with lowest order Nedelec elements will be discussed.