Scalable and resource-efficient federated learning: Techniques for resource-constrained heterogeneous systems