Best Practices and Experience

Best practices, seniority, philosophy of professional growth.

Non-technical interview questions

Priority: the P3

What you need to know

  • How to answer non-technical questions - long term career plans, strengths and weaknesses parties, difficult situations at work, examples of leadership, etc. It's important for interviewers to learn you as a person and understand if they want to work with you on the same team. Convenient to prepare answers as stories in style STAR ( Situation, Task , Action , Result ) ... You need to be clear about why you want to work in [[company]].

  • What questions will you ask the interviewer. This is a strategic task, by the way - 90% candidates are asked to tell the interviewer about their work. You can ask the same as the rest 90%, but you can do something else.

  • Approaches to code testing - unit testing, regression testing, compatibility testing, canary testing.

  • The main approaches to creating projects - scrum, agile.

  • English. Many people think that this is not the point if you are a coder “star”.

  • Your own level of knowledge and what position you can apply for. Do not try seem better than you are. It will come out sideways later.

  • Your own philosophy. For example, which is more important to you - stability or velocity? I.e you can test more thoroughly and release a more stable product. Or test a little less, but be more flexible and be able to update faster. There is no right answer, there are different preferences of different people.

Books

Professional experience

What you need to know

  1. You need to know well the technologies with which you have worked a lot, judging by your resume. For example, although my team does not write directly, it works closely with databases. and compilers. Therefore, if I prepare for an interview, I will definitely include the bases data and compilers into your training program.

  2. Details of large projects you have worked with. Problems and solutions. For example, if your project works with a very large number of requests, then I can interview you ask "How did you implement throttling / rate limiting?"

  3. Moreover, you must have a good understanding of not only your immediate projects, but also about how the project works as a whole, what components it has, what kind of design and why, etc. With the same question about throttling - even if you didn't write this component, I will still wait for you to know how it works, since it was on your project, albeit not at a super-deep level.

Other important aspects

Companies

The main idea - do not apply only to the company of your dreams. Serve several companies, and start interviewing those that are not in your top. Why?

  1. You need time to warm up. With a significant probability, you will fail the first interview - either you will be very nervous, or you will not take into account some things in your preparation ... And it's better to fail these interviews in companies where you do not want to directly I really want to.

  2. You need to test the level of your training and the sanity of your plan. For example, you decide to come to an interview in a tuxedo with a bow tie to stand out from the gray masses of other candidates. The interviewers looked at you as if you were crazy. So it was bad plan, the next company needs to wear jeans.

  3. If you get an offer from start-up companies, then perhaps they will do you a good offer (especially if you go through the interview perfectly and let them know what you are planning interview with other companies). This will raise the bar for next offers. campaigns and help you get better deals.

It is only important to take into account the moment that after the company has made an offer to you, you will have about a week or two to accept or reject. So try to do so so that all offers come to you relatively at the same time.

How to make a list of companies? For starters, I would recommend interviewing only those companies that you could potentially be interested in (if you have a good offer). If all your life you firmly believe that "M $ MUST DIE !!!", then for God's sake, there is no need to apply to Microsoft! Don't waste your time or theirs. Consider this professional etiquette.

Then choose a few (3-5 is enough if you are well prepared) that you like and in which you are, in principle, ready to work, if everything goes well.

Discussion of salary

Resume , Referals

Choosing companies is just the beginning. Now you need to write a resume and, in fact, apply.

  1. Make a good resume [One, Two , Three].

  2. Find referrals to companies where you want to be fed. In most companies the referral is not obliged to know you personally, it is enough for him to write a small justification for why he thinks you should be considered. This justification could be "He is me wrote, I looked at his resume and he has interesting experience in programming languages with which Google works. In addition, he graduated from the University of Zazhopinsk, which is quite a famous university in our country, they produce strong personnel. "Note, nothing about that he knows you personally. You can search for a referral through friends, on linkedin

  3. In addition to the previous point, prepare a small paragraph to help to the referral to decide to recommend you. About 5 points, highlights of your experience.

    Examples:

    1. "Results of my Master thesis were published in top Russian scientific magazines"

    2. "I grew from an intern role to being a TL in four years"

    3. "I have a solid knowledge in C ++ (5+ years), and also can code in Java"

    4. "I launched a solid number of large and important projects in my company. I've always delivered on schedule and my projects didn't have any production issues afterwards. "

    5. "I won XYZ award" "

    6. I of've Earned top GPA stands AT up my university What "

    7. "I'm actively contributing to open source community"

  4. If you think that you have nothing special to write about yourself, then most likely it is not. Almost everyone has achievements, just, according to my observations, post-Soviet citizens have a tendency to belittle one's accomplishments by thinking, "This is bullshit, anyone would have achieved this on my place. "In 100% of cases, when we together with the guys delve into their resume, it turns out that Achievements are complete, much more than five points. Just for some reason they don't consider it achievements. In the meantime, there is no need to worry about it. ”Impostor syndrome in all its glory.

  5. Compose letters for potential referrals. Be sure to include: resume in application; a short story about yourself; points about why you think you are good

    candidate and you should be considered (see examples above).

  6. If you can't find a referral, try to find recruiters on LinkedIn and write to them directly. Submit through the site last, when all options have been exhausted. Well or if you do not really want to work in this company, and you will easily experience if you will not be answered.

  7. If you are called for an interview, find out about the company, about its products and plans. At first, it's in your best interest. You do not want to go to a company with no special prospects, which has a bunch of problems on different fronts. Secondly, it is often important for companies to see at least some enthusiasm in candidates. No need to enthusiastically tell how you dreamed all your life there work and generally they are the company of your dreams. But reasonable conversation in the key "I am very I like your product X. No one has done anything like this before you, but now this product used by many. Including me, and I like this and that. "Be honest. This is should be easy, since almost any company has a product, at least one, which you will like. And if there is no such thing at all, then it is hardly necessary with such a company to contact.

Interview preparation books

Websites

Before the interview, try to collect 500-1000 problems, and at least half of them was medium / hard. Solve 10-15 problems a day. It seems like a lot, but the speed increases greatly over time. It will take an hour to solve the same problem, and after a month preparation - 10-20 minutes.

  • Hacker Rank There are tasks of the level Easy, Medium, Hard. Start with Easy (well, unless you're already great solve problems and generally a winner in programming), continue through Medium and gradually work your way up to Hard.

  • Leet Code When you are more or less confident in raising Medium tasks to hackerrank, go to leetcode. They have a Mock Interview there - solving a random problem by timer. You can skip tasks there. If you skip the task, then another time it can get caught again. Solve problems of the Medium level, sometimes Easy when tired, if will work - try to solve and Hard. Continue solving 10-15 problems a day (if it will turn out more - generally cool).

  • Interview Bit When you are already good at solving problems on leetcode mocks, go to interviewbit. There tasks are quite complex, I would not immediately advise taking on them, but after preparation on the previous sites it is quite possible.

Test interview sites

  • https://www.pramp.com - free

  • https://www.careercup.com/interview (for money, and a discussion of whether it's worth it ) https://interviewing.io - free

  • http://larrr.com/testovye-intervyu - free

  • https://www.candidacy.io

  • http://www.gainlo.co/#!/ - paid, but they write that they conduct an interview with the "real

    engineers ”from well-known companies. Not tested on myself.

Other Usefulness

Articles

During the Interview

  • Do not start solving problems until you fully understand what is from you expected. Behave in these interviews as if you were brainstorming: communicate with interviewer, ask questions, discuss solutions, and when it is clear to everyone what is needed to do, pick up a marker / pencil / mouse and do.

  • There is a good site to prepare for the interview, https://www.hiredintech.com/ . There is one template called The Algorithm Design Canvas. It contains 5 regions - Constraints, Ideas, Complexities, Code, and Tests. According to the authors, canvas makes it easier to solve problems with phone screen interview - instead of being isolated and thinking what to do next before you will be a process template following which you can solve any task. Well, a bunch of things for preparation, structured presentation of materials.

Last updated