I applied directly through Marathon's website, I received a call from a recruiter internal to Marathon about a week later.
Round 1: Lengthy phone screen with in-house recruiter. This was a long conversation that was not technical, mainly just going over the resume at a high level, and lots and lots of personality and culture fit type questions.
Round 2: After the initial phone screen went well, the recruiter sent me a link to 2 take-home assignments. Assignment 1 was a timed HackerRank assessment, I'd say LeetCode easy/medium. This was a time assignment of less than a couple hours. The second assignment was not timed per-se but was required to be completed 7-10 days after being assigned. This was a larger, complete C# application that didn't need any LeetCode but more basic code architecture and patterns.
Round 3: After turning in the assignments, I was called by the recruiter about a week later to schedule a phone technical interview with the companies technical lead. This phone conversation was technical, but not too difficult, and asked more specific questions about OOP, SOLID, DRY principles and how I have used them when writing code. Some culture fit questions.
Round 4: About a week after the technical phone interview I was contacted again by the recruiter to schedule a final phone interview with the CEO. This would not be a technical interview but more of a personality/culture fit. The recruiter was correct and it really seemed the CEO just wanted to take some time to get to know the new hire, not necessarily grill them about anything in particular.