Project management software tools generally have an automated function for resource leveling. While the function may sometimes prove useful, always back up the data in your plan before you try it; automated leveling generally makes projects unrecognizable.
Another approach to resource leveling is to identify resource bottlenecks in the plan and make revisions manually. Consider modifications to minimize resource conflicts, such as:
Splitting activities into discontinuous work with one or more timing gaps
Changing the planned rate of effort by extending activity duration estimates
Shifting planned resource use to conform better to the available pool
Shortening some activity durations using undercommitted project staff