I was contacted by a recruiter who explained me about the company, team organization and the role. She asked me if I wanted to implement a take-home problem and then give phone interview or give phone interview directly. I opted for the first option and sent her my implementation in a few days. Then I was phone interviewed a few days later and was asked questions about my take home problem. After the phone interview the recruiter contacted me about their intention to move forward and scheduled me for a 4 hour on-site interview next week at their Reston location. At the on-site the first round comprised of an engineer telling me about the company, product and the team structure(kind of like selling Appian to me), the second, third and fourth rounds were technical rounds where I was asked questions about my resume and asked to code a problem. The last round was with the Engineering Director who asked questions on my resume, explained me about the company and asked one or two questions about JavaScript. The recruiter got back to me after 3-4 days and told me that they would not be moving forward with the offer because of my performance on the technical rounds.