Hacking Ruby on Rails Tech Interview is not easy, but we share what we do in Syndicode and it might help you pass through. Today whoever wants to be superstar developer claim to know a huge list of technologies. Even Pascal, one has taught himself in school many years ago. That’s really sad… You can overcome this. Really. You can become a truthful and super rock-star developer. And you can be employed fast and easy. With us. If you want.
Why we run Ruby on Rails tech interviews in Syndicode
- Some candidates have glorious CV. During interview we see no knowledge in listed skills or knowledge does not correspond to qualification claimed.
- Sometimes we see very dull CV with few projects. On the interview candidate shines with superior knowledge in the most relevant technologies.
- We cannot assess communication skills reading CV. We believe that e = mc2, where efficiency of our work is equal to man multiplied by communication squared.
- Sometimes we are crude to put candidates under pressure to see how they behave under stress. You can do this only on the interview. Ruby on Rails development is quite stressful time to time.
- We communicate with clients in English. Part of the tech interview is to know for sure the level of porfficiency in English.
- Most important is that we create team of the people with the same DNA, and major question to interviewers after interview is that if they want to work with the candidate in one team!
Just forget this crude and utter things like:
- 200 years Pascal in your resume. And you write ‘Pascal’ with pride. If you want to be a ruby developer.
- Old, 2000 years ago written resume. So old that no one knows that coding language.
- Speaking Bad English speaking, or, even bad English reading.
- Just no interest in tech.
- Just no interest to learn new things.
- 300 h interview conference for you to think and speak.
If you want to succeed in interview simply stop doing these things.
We believe in people truthfulness and their expertise. But… Sometimes the real world comes. And sometimes we catch rising stars. Sometimes it’s just freshmen, who want’s to be employed as superman.
Before we go next let’s check how we see any candidate beforehand:
- Professional developer, willing to work in our team and help our clients to get more money fast and easy.
- As a developer you know your strengths and weaknesses and have a well established balance between them, working effectively in team.
- Having a good soft skills and “alive mind”.
- Having a good English.
- Having good problem solving skill.
- Open to change and to learn other tech, possibly an open source committer.
- Solving interview questions fast and easy.
- Being nice. Really. Be nice. So simple.
Being good is really not enough. We need to understand your boundaries. For this purpose we use old-school questions on computer science (basics) and some small test tasks. Firstly, nice people politely ask you about your soft skills to check whether you have them. If you can speak and you understand what you’ve been asked, you come to the technical interview.
Ruby on Rails tech interview structure
How is our technical interview going? It’s skype interview. You never know who is before the monitor. We restrict ourselves and you to 1 hour and start it. Sometimes 1 hour is not enough for really good candidate and we can increase the duration of interview for about 15 – 30 mins.
Let’s review basic nuts and bolts of our interview:
- Previous working experience and drive. Just a small question about your previous work experience and challenges there. Nothing fancy or impossible…
- Your DB-related skills and knowledge. A bunch of questions about SQL, relational requests and relational algebras, joins, indexes. Advanced topics include PostgreSQL vs MySQL, Redis, NoSQL, map-reduce, CAP-theorem and database sharding
- Your ruby mastery. Here the hard part starts . We seek someone with good OOP knowledge and some minor FP skills (just as ruby itself), so according to this we ask:
- About OOP: what? why? Pros and cons.
- About Ruby: OOP in ruby, how? When to send messages?
- About Ruby, method lookup, Procs vs blocks
- About Ruby: classes and modules, inheritance
- About Ruby: 2 simple test tasks using codepad
- Advanced ruby: GIL, Threads, Fibers, Concurrency, JRuby, processes vs green thread, performance optimisations, resilience
- Your testing experience. In this section we ask about testing and how to test properly; mocks vs stubs and SOLID violation, integration tests and rails testing ecosystem
- Your rails expertise and the way you understand the framework. Basic rails literacy: components of rails app, bundler, sprockets, sprockets templates, controllers, MVC, ActiveRecord. Advanced stuff will include datamapper, rails metamagic, arel, new rails goodies…
- Your DevOps and UNIX skills experience. Just a brief talk about your DevOps exp if present: capistrano, ansible, idempotency, bash scripting, fork bombs, Docker.
Senior vs. junior on interview
We use the same building blocks for juniors and seniors. But questions differ: complex one only for middles and seniors and very simple for juniors. If candidate has answered hard question he gets relatively more points than for the simple one. Then we sum up all points and prepare basic knowledge score in percentages. But score is not ultimate. We also talk with candidate too. We want to see how tech looks from his prospective, did he prefers some kind of solution or techs and why, and so on.
If you want to work in polite and dedicated team, I’ve a bunch of advises for you:
- Never write code before you think about the task. Even for 1 or 2 minutes.
- Know your tools and tech you want to work with.
- Be polite. It helps. A lot.
- Talk about your solution to the given problem. Discuss it with interviewer. So he eventually catch the way you think. It helps to understand how you would fit in his team and also, will their team would be good for you
- Understand tradeoffs: any solution has a tradeoff. Sometimes decision is obvious, sometimes it evolves. All in scary future…
- Be brave and struggle with difficulties. It’s better then leaving things as is
- Be proactive. You came to the interview, but can you be interviewer too?
See you there … on Ruby on Rails tech interview!