How interview process ended with X-Team …

x-team

In this final post in the series about my with , I will write about how it ended and will summarize my experience. Also, I will explain why I decided to dedicate so many posts about an interview with a company, which actually failed for me (not my fault!).

  1. The first answer to a x-team and my career story
  2. The second answer to a x-team and my career story
  3. The third answer to a x-team with tech details
  4. My comment to a “The value of the team” blog post

Input

So, I have failed, and it happened very unexpectedly for me with a ridiculous reason. And why I want to write about what happened? It will not change anything and it happened a long time ago, so it doesn’t even matter. But the task to write about that was added in my blog posts queue and I want to accomplish it. :) Also, I want to talk here about what is wrong with interview process in X-Team and in general – in IT industry. An experience with X-Team would be just an example.

I had a pretty long email conversation with X-Team talents team and they asked me to write a lot about myself and my experience. And I have shared what I have written in the previous posts. Despite I spent some time and effort on writing, they weren’t fast in their answers to me. Sometimes I had to wait for one week for an answer.

Anyway, we reached a step when they gave me a simple task. It was a PHP file from some legacy code system with very-very bad code in it. I was wondered why they gave such bad code, because usually when I look at such code – my eyes are bleeding. :) Since I haven’t signed any NDA I will post this file here.

My task was to describe and explain how to solve issues in this shit code. So, I was very confident in myself, because I thought that I need to talk about how bad this code. And I thought that I need to show my view on how good code shall look like: clean, readable, testable, well designed with oop and patterns, secure and etc. I have added a lot of marks.

My submitted result.

I have written a lot of marks. My comments with issues and suggestions how to fix them now contains I think twice more lines than the code itself. I was sure that I’m easily passed the test…
But the answer was:

Some things we were concerned about:
– Didn’t see the pros of using well defined object like User
– Forgotten to mention about creating getters for first and last name for user
– Security and performance issues were not detected

What? WAT?

wat

I think it’s worth us reconnecting in 6 months to a year to see how you’ve grown as a developer.

Ahaha, really? Let me explain, what is ridiculous here.

  1. They have said, that I don’t see the pros of well-designed objects. The Senior Software Developer like me, who for the month have written a lot about his experience with frameworks, patterns, oop and even DDD – doesn’t see the pros of well-designed objects. Seriously?
    Conclusion 1. Seems like X-Team has completely different people for different tasks and they do not communicate well with each other. Some guy responsible for a conversation with me, another one responsible for code review. And their reviewer hadn’t even seen all my big emails about my experience. This is only one possible explanation for what happened.
  2. Actually, I have written a lot in my marks in the file about oop, about splitting code into different classes. Just check my notes and you will see.
    Conclusion 2. Code reviewer was in a bad mood or he wasn’t attentive enough, he doesn’t even read all my comments?
  3. Let’s go to the next point. Even now after 6 months after it happened I can’t read their notes without a smile. WAT? See 1 and 2, I have written a lot about classes and it’s obvious to have getters and setters when it’s needed.
    Conclusion 3. Maybe I just more qualified than their code reviewer. Yeah… Maybe because I’m overqualified they decided to find any reason to say NO to me?
  4. The point about security was the most reasonable, but I will explain it more in the next paragraph.

So, what about security, am I really haven’t noticed security vulnerabilities? Of course, I did notice. And I have written in my comments that, for example, it’s a bad practice to use PHP global variables and about validation. The reason why I haven’t written about security directly because this code is fucking shit. Let me be direct and honest here. I would never agree to work with such bad code. But it’s not the point. The point is that such code is the biggest security issue itself. 

In order to make such bad implemented legacy system more secure – every adequate developer would suggest rewriting the project with the use of some modern framework, with modern architecture, libs, and approaches. And the process of redo will fix 90% of possible security holes. Because modern libs and frameworks already taking care of security in its code.
The most qualified developer should be able to use a wide range of components, understand how to combine them together in a flexible architecture. He doesn’t need to take care of most obvious security cases like SQL injections because ORM or QueryBulders takes care of them. Of course in some cases, for example for CQRS, we could use just plain SQL queries.
But it’s obvious, that we would have some framework layer for Request (MVC) and some Validation layer before the query execution. And if we don’t use the framework – any professional developer will write his own simple implementations for such tasks.

This is what’s wrong with this test. This test actually tests nothing, except maybe developer tolerance to the shit code.

If you want to test developer skills – give him some small task to implement from scratch, like converting some excel document in 3-4 different formats, like JSON, XML, CSV, and YAML.
Actually, I had such task from another company (and they were impressed with my solution). And see results. See how he will organize the code, which libs he will use, which patterns he will use. Check how he follow PSR in his code formatting and how he uses SOLID principles. This would be the real indicator of the developer qualification.

Even tests with Codility and such algorithm testing platforms, which I don’t like at all because it’s the same as whiteboard code interview, they are even better!

In the end, they have suggested me to grow as a developer. Ahahaha, can’t stop myself smiling. :)

 

Output

Well, I have answered them a bit emotionally in an email. And I have included their CEO in the recipients because I thought he will pay attention to the interview process and will change something. But he paid attention only to my emotions. It’s a pity, I didn’t want that.

Now I will try to explain it’s better why I was so emotional. Of course, I was angry about wasted time and efforts. And about such ridiculous test and its results.
But whats really touched me is that they have their YouTube channel. And on this channel, they have very cool motivational videos about developers. It’s the best videos about developers which I have ever seen. And I wanted to work remotely with X-Team very much after watching this videos.
Because with such videos they are trying to speculate on developers emotions and attract some of them for hire. And it works, because it worked with me.
Also, one of their main slogan and feature is that they really care about developers and trying to provide the best working environment for their remote developers.
Wow…

And after that, they forced me to have a one-month conversation with them via email. And gave me such ridiculous test with shit code and told me to grow as a developer after that.
So, they touched my emotions first in a positive way with YouTube videos, and after that, they touched my emotions again in a negative way.
I really think that such treatment of highly qualified candidates isn’t good at all. That’s why I was so emotional in my answer.

I have written, that after what happened I think that all their videos – “all these videos from youtube now look like a marketing fuss for me, nothing more”.
And I’m not proud about that, but I’m not sorry for that, I still think the same.

In the end, their CEO has written me an email with recommendations to be more humble and improve my soft skills. I haven’t answered because didn’t want to argue or continue, I felt too bad, I was disappointed. It’s like when you are a child and you see some sweet candy in shining package and you very excited, you open the package, you make your first bite and you realize that candy taste like shit. This is what I felt.

Also, the CEO said after my claim about bad code – ‘a very worst-case scenario any developer might have to walk into’.
NO! If developer walks into and do nothing with such code or produced such code – he must be fired immediately. No excuses, he is not qualified. The qualified developer wouldn’t even agree to work with such codebase.

Conclusion 5. CEO of the tech company doesn’t know anything about tech. He just trusts his code interviewers. I have concluded that from his answer on email, he started to explain to me how security important for his clients and he didn’t analyze the situation himself. Ridiculous.

 

The main message of all this post is: if a company want’s to attract highly qualified developers to work for them – it must care about tech. Test task is like a program evaluation period, it’s like the first taste of a candy on the tongue – test task must represent the tasks with which developer would work in the company in case if he will be hired. 
Additionally, to the feeling of disappointment, I had an impression, that I was overqualified for X-Team. That impression only strengthened my bad feelings about their recommendation to grow as a developer.
And I have written, that maybe they only need some ‘Indian developers’ to solve tasks fast, not right and not great, just fast. They even have ‘Heroes’ program. And I think they called ‘Hero’ a developer who managed to finish something in a very short period of time, before the deadline. Is it really means to be a ‘hero’, when you forced to work extra hours and produce tech debt and shit code in order to meet deadlines which were arranged without asking developers? I don’t think so. Maybe I’m wrong about their ‘hero’ program, it’s only my impressions.

So, if any of mentioned above points true – such company isn’t for me. 

And I want to answer on a recommendation from CEO to improve my soft skills. They are good (I haven’t written great because I’m humble). I’m always learning and improving myself. I’m ok.Their tech interview process – isn’t.
Personally, I communicate very well with clients and with teams. Even more, I often lead teams of 2-5 developers in the office or remotely. Is a person with poor soft skills would be able to do this? They are not even tried to logically connect all information provided in previous emails with my last answer. Bad luck.

That’s is the end. I wish every developer adequate interview processes! :)

PS. Now I have moved to Germany and really happy with my new job. German companies care a lot about people and work-life balance. This is right. :)