<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anshuman Singh</title>
    <description>The latest articles on DEV Community by Anshuman Singh (@_anshuman26).</description>
    <link>https://dev.to/_anshuman26</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F78181%2F8934f008-0fc3-4301-bdd7-55e1703d085a.jpg</url>
      <title>DEV Community: Anshuman Singh</title>
      <link>https://dev.to/_anshuman26</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/_anshuman26"/>
    <language>en</language>
    <item>
      <title>How do I prepare for a software engineering job interview?</title>
      <dc:creator>Anshuman Singh</dc:creator>
      <pubDate>Mon, 18 Jun 2018 12:03:53 +0000</pubDate>
      <link>https://dev.to/_anshuman26/how-do-i-prepare-for-a-software-engineering-job-interview-2gom</link>
      <guid>https://dev.to/_anshuman26/how-do-i-prepare-for-a-software-engineering-job-interview-2gom</guid>
      <description>

&lt;p&gt;&lt;strong&gt;Pre-requisites[1]&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Lets look at the basic things you must know if you are interviewing for a software engineering position :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Programming in a language of your choice : &lt;/strong&gt;You should have a strong hold on at least one programming language. You should be quickly able to understand reasonably complex piece of codes and mentally dry run them. You should be able to code a complex scenario in the said language.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Problem solving / Algorithms : &lt;/strong&gt;Algorithms in itself is a huge field. You are expected to know about basic algorithms. You will be at a great advantage if you know about basic problem solving approaches.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The above 2 topics make up for 50-75% of a software engineering interview process.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;System Design : &lt;/strong&gt;This is extremely important if you are an experienced software engineer. You need to be good at :&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Understanding the requirements of a system&lt;/li&gt;
&lt;li&gt;Designing scalable, fault tolerant systems ( Horizontal vs vertical scaling )&lt;/li&gt;
&lt;/ul&gt;




&lt;li&gt;Basics of the following[2] :&lt;/li&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Operating Systems : &lt;/em&gt;Threads and Processes, Thread synchronization primitives ( semaphores and mutex ), Memory management ( Paging, Swapping )&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Databases : &lt;/em&gt;Querying a Relational DBMS, Indexing, Primary and Foreign Key constraints, Normalisation, Internal storage&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Networks :&lt;/em&gt; Network Layers, TCP and UDP, TCP packet structure, Packet routing, Subnetting&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Web : &lt;/em&gt;Cookies, Session management, Caching, Http / Https&lt;/li&gt;
&lt;/ul&gt;




&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Where to learn them&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Programming in a language of your choice : &lt;/strong&gt;I will assume you know the basics of programming in at least one language. Then it boils down to a lot of practice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Problem solving / Algorithms : &lt;/strong&gt;Personally, I feel &lt;a href="https://www.youtube.com/user/mycodeschool"&gt;mycodeschool&lt;/a&gt; does a good job of teaching the basics of algorithms required. &lt;a href="https://www.interviewbit.com/"&gt;InterviewBit&lt;/a&gt; has topic wise video tutorials augmented with related historical interview problems to practice on. Leetcode has a great selection of problems to build problem solving skills. If you feel a bit more adventurous, you can checkout &lt;a href="http://www.spoj.com/"&gt; http://www.spoj.com&lt;/a&gt; and &lt;a href="http://codeforces.com/problemset"&gt;Problemset - Codeforces&lt;/a&gt;. However, most of these problems might be too hard to qualify for a technical interview question.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;System Design : &lt;/strong&gt;I feel &lt;a href="https://www.interviewbit.com/courses/system-design/"&gt;this&lt;/a&gt; is a great point to start with. Do try out the most frequently asked questions at &lt;a href="https://www.interviewbit.com/courses/system-design/topics/interview-questions/#problems"&gt;System Design Interview Questions - InterviewBit&lt;/a&gt;. &lt;a href="http://book.mixu.net/distsys/ebook.html"&gt;http://book.mixu.net/distsys/ebo...&lt;/a&gt; makes for an interesting read.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Final Execution&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that you are done with the preparation, following few final tips might help you do well in an actual interview :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Avoiding misunderstanding : &lt;/strong&gt;A lot of candidates do badly in a programming interview because they start solving a problem different than the intended one. Make sure you spend 2-5 minutes asking the interviewer about corner cases on the problem. This will ensure that you have understood the problem correctly, and you understand corner cases to take care of in your solution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code structure : &lt;/strong&gt;This is not just applicable to interviews. Spending some time to think about how you would structure the code can save you coding and debugging time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Communicate : &lt;/strong&gt;You should be able to communicate your thoughts to the interviewer. The interviewing process ( especially the system design round ) is mostly bouncing around ideas, and explaining to them your thought process.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Company fit : &lt;/strong&gt;Make sure you do your research about the company prior to applying for a job there. Most companies would want to hire candidates who feel passionately about the work the company is doing.Avoid asking questions which you could easily find on Google. Think about exciting additions you could make to the company product / service if you had your way at the company.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The above mentioned process might be time consuming. However, it would increase your chances multifold if followed correctly. &lt;br&gt;All the best!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;[1] Above data has been compiled based on the interview experiences of candidates referred through &lt;/em&gt;&lt;a href="https://www.interviewbit.com/"&gt;&lt;em&gt;https://www.interviewbit.com/&lt;/em&gt;&lt;/a&gt;&lt;em&gt; to tier 1 companies.&lt;/em&gt;&lt;br&gt;&lt;em&gt;[2] You might still do well in interviews without knowing everything from the list.&lt;/em&gt;&lt;/p&gt;


</description>
      <category>software</category>
      <category>job</category>
      <category>interview</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>How Do I Get A Job At Facebook Or Google In 6 Months?</title>
      <dc:creator>Anshuman Singh</dc:creator>
      <pubDate>Tue, 12 Jun 2018 13:48:50 +0000</pubDate>
      <link>https://dev.to/_anshuman26/how-do-i-get-a-job-at-facebook-or-google-in-6-months-3ifm</link>
      <guid>https://dev.to/_anshuman26/how-do-i-get-a-job-at-facebook-or-google-in-6-months-3ifm</guid>
      <description>

&lt;p&gt;&lt;em&gt;Originally Published on &lt;a href="https://www.quora.com/How-can-I-get-a-job-at-Facebook-or-Google-in-6-months-I-need-a-concise-work-plan-to-build-a-good-enough-skill-set-Should-I-join-some-other-start-up-or-build-my-own-projects-start-up-Should-I-just-focus-on-practicing-data-structures-and-algorithms/answer/Anshuman-Singh"&gt;Quora&lt;/a&gt; and Featured on &lt;a href="https://www.forbes.com/sites/quora/2015/06/19/how-do-i-get-a-job-at-facebook-or-google-in-6-months/2/#4eb98ac23e8b"&gt;Forbes&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Typical Interview Process
&lt;/h2&gt;

&lt;p&gt;1) &lt;strong&gt;2 - 3 Telephonic interviews&lt;/strong&gt; : The purpose of telephonic interviews is to screen you before flying you over for onsite interviews. Typically, the interviews focus on easy algorithmic questions where you are asked to write code on a shared code editor like collabedit. The interview also tries to evaluate whether there are red signals to your cultural fit into the company.&lt;/p&gt;

&lt;p&gt;2) &lt;strong&gt;Onsite interviews&lt;/strong&gt; :   Assuming you have done well in the telephonic interviews, you are flown over to the Facebook ( / Google ) campus for onsite interviews. Typically, there are 4 interviews :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interview 1 -2 ( Coding )&lt;/strong&gt; :  Atleast a couple of interviews focus on your algorithmic skills ( nothing too advanced ) and your coding accuracy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interview 3  ( Coding or System design )&lt;/strong&gt; : This interview depends on your years of experience, and the position you are considered for. Senior engineers ( typically more than 2 years of experience ) are tested on their understanding of systems operating on huge scale and architectural design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Interview 4 ( Behavioral )&lt;/strong&gt; : This interview tries to evaluate whether you will be a good cultural fit for the company. The interviewer tries to get answers to the following questions :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Are you passionate about what the company is doing ?&lt;/li&gt;
&lt;li&gt;Can you work with a team towards a goal ?&lt;/li&gt;
&lt;li&gt;Your previous work experience ( Mostly around your pro-activity in making decisions and providing feedback at your previous work )&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Now, to answer your question on how to prepare for the above interview process.
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Preparation :
&lt;/h3&gt;

&lt;p&gt;There are a lot of blogs and websites with scattered content when it comes to preparing for technical interviews, but I failed to find a free website which provides a structure to the content.&lt;/p&gt;

&lt;p&gt;With that in mind, we worked on building &lt;a href="https://www.interviewbit.com"&gt;InterviewBit&lt;/a&gt; which we believe solves this problem. &lt;strong&gt;It's free&lt;/strong&gt;, and it provides a structured and engaging approach to your interview preparation, just like a personal coach.&lt;/p&gt;

&lt;p&gt;Here is a link to &lt;a href="https://www.interviewbit.com/google-interview-questions/"&gt;Google&lt;/a&gt; interview quetions and &lt;a href="https://www.interviewbit.com/facebook-interview-questions/"&gt;Facebook&lt;/a&gt; interview questions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Topic by topic approach :&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dxRA1662--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/vyieqimmngyj6bml8xwr.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dxRA1662--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/vyieqimmngyj6bml8xwr.jpg" alt="InterviewBit - Topic by Topic Approach"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No point approaching hashing or tree related problems till you understand how arrays and lists work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Topic broken down into micro-concepts :&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V5_461Ke--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/st67kcts1qe3fikz7fda.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V5_461Ke--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/st67kcts1qe3fikz7fda.png" alt="InterviewBit - Topic broken down into micro-concepts"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simulating the interview experience when solving problems :&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ir8Vwjwi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/xu8fyjxdtm0artl9b23i.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ir8Vwjwi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/xu8fyjxdtm0artl9b23i.jpg" alt="Simulating the interview experience when solving problems"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Problem solving is driven by  :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Solving questions asked in previous interviews&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Providing hints when stuck, along with a live expert help if you are still stuck&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Timer to push you towards solving within 40 minutes ( typical interview duration )&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Immediate feedback on failing corner cases&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Measurement of time complexity to suggest you to do better in case your solution is sub-optimal.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Editorial solution approach in case you are stuck.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We have structured the content, so that you can complete the course within 3 months if you devote 1-2 hours daily. If you have higher commitment, you can finish the course within a month. &lt;/p&gt;

&lt;p&gt;Disclaimer : These are my personal opinions, and are not endorsed by Facebook in anyway.&lt;/p&gt;


</description>
      <category>interview</category>
      <category>googleinterview</category>
      <category>facebookinterview</category>
      <category>job</category>
    </item>
  </channel>
</rss>
