You should know who applied: PHP/Symfony guy with zero WordPress experience. Zero. Nada. NULL. empty. I had installed WordPress 9-10 years prior to applying, I knew that one folder name is wp-admin and that WordPress had plugins, but that's kind of all. Therefore, I encourage all non-WordPress developers out there to give it a try.
Day 0: Application. Sent e-mail with answers to all questions in their job ad.
+7d: Invitation to interview.
+14d: Slack Chat. 8 AM. Regular software development questions. Some available here in Glassdoor (CSRF, be ready!). Being text, the interview turned out to be non-stressful. 1st impression on my side: positive.
+14d-21d: Coding. SVN (not git!) checkout. It was a broken plugin that I had to fix. Undefined variables without pre-checks, security issues, missing IFs, mixed HTML and PHP, etc. I decided to risk and not only fix the problems, but rather turn everything upside down. Created tens of classes with single responsibility, built basic DI, split rendering, persistence, and BL, added unit tests, added a CLI interface to prove that the request context can be easily switched, etc. I knew that I may be disqualified, but I couldn't help it. It was a moment when I said that I don't really care about the interview, but rather that I just want to get some work done. If you want to get over the interview easily, don't do like me :). The main problems can be fixed in just a few hours.
+~31d. Coding review. Took about 10 days from sending the 'I finalized the commits' e-mail to a response (Day 28: sent reminder!). I had 2 bugs. First one was due to the fact that the plugin was run under a different name in their environment and I had a hardcoded URL (I actually did not know how to create relative plugin URLs). The 2nd one was also rooted in my lack of WordPress experience: I secured a query using get_posts instead of the "injectable" SQL, but I did not test properly. Nevertheless, they were nice and they let me debug and fix the problems. Had to explain my code-design choices (Strategy, Factory, etc).
+~44d. Signing the consulting agreement for the Trial
Received the consulting agreement, signed it. Due to my vacation and their yearly Grand Meet-up, we agreed to only start the real trial on Day 79. Don't be scared, it was a bilateral desire, and the application process can be faster for you. I live in Germany, we just like making these processes longer.
+~69d-71d. Proxy access, internal documentation access.
Sent my public key, received access to multiple documentation sources, read a bit, saw pretty good & concrete information. You don’t find that clear information in a regular company.
+~79d-125d: The trial.
Almost real-life project: "Hey, paint the blue wall in green, here is the basic documentation that may refer to this project, pick it up and see what you can do". From there on it's your job as a candidate to act as an adult and collect information, get access to what you need, say hi to your buddies and integrate yourself. Learned to use P2s, sandboxes, Jetpack, Calypso, a bit of ElasticSearch, and, most importantly, learned how to debug WPCOM code. Took me a few weeks to get the necessary access, to understand where the code that I had to modify is and then only one week to do the project itself. I changed the acceptance criteria for my project a few times, I had a few frustrating moments because my debugging was not working (yes, Jetpack run-path is totally different than the WordPress one...), but somehow in the end I must have made it, since they decided I should have the Matt chat.
~+140d: The Matt Slack Chat. It's a bit insane to schedule it, since you actually expect him to ping you on Slack 'sometime'. Pure serendipity. First he contacted me on my wife's birthday, then again while I was in office, and then finally after I postponed the office-time chat. The questions didn't require problem-solving skills, but rather creativeness and experience. I must have saved it somewhere in order to tell you more about it, but since I didn’t do that, you’ll have to deal with it itself. About 4 hours in total, and what was really beautiful is that at the end I could discuss the money. I had doubts that they would compensate for my previous offer, but they did, so you can expect them to pay relatively competitive salaries for your region. The recommendation here: be “ok”, don’t swear, don’t insult, and you’ll make it!
~+147d: Offer! After reminder in day 145.
Everyone out there, don't get scared of the many-days timeline. It was fully agreed/influenced on my side, and I estimate that the experience can be up to 5 times faster for others. Also, the interviewing process is really not that difficult. Before applying, I thought a huge train would hit me, with extremely difficult tasks, but in the end it turned out to be normal and pragmatic. Just solve the task!