Distributed software systems are collections of computer programs that utilize computational resources across multiple computing devices to achieve a common, shared goal. They are used everywhere these days, from banking and reservation systems to online gaming and social media. Finding and fixing bugs in distributed systems is difficult because bugs can spread across multiple computers and cloud environments, making traditional troubleshooting methods ineffective. A particularly common and challenging to manage type of problems are concurrency bugs that occur when multiple software processes within a program try to access and modify shared data simultaneously. This project introduces an automated tool to help developers identify and fix concurrency issues in distributed systems. It uses innovative techniques to simulate real-world scenarios, uncovers hidden communication patterns, and detects common but difficult-to-find problems. Outcomes from this research will be included in college-level computer science courses on distributed systems and software engineering. Rust has gained popularity for distributed system development due to its memory safety feature. However, current methods to trigger concurrency bugs in Rust code require substantial human effort and expertise, and effective automated testing tools are lacking. This project addresses these challenges in three ways. First, it will conduct an empirical study of real-world modern distributed systems implemented in R