What does it take to crack an interview. My perspective.
After taking more than 100 interviews in last 2 years, I would like to share my opinion that what do I look for when I interview technologists.
There is a structure which an interviewer looks for in the potential hires and I am no exception.
Below is the structure which I look for.
SOLID principles of programming.
Please know this if you are an OOPS programmer.
Design Patterns by Gang of Four.
It’s important to translate your thoughts in applicable patterns. It helps you and it helps future maintenance engineer of your code.
There are enough materials on these topics. Just wiki and search for examples explaining to your friend. You will get a hang of explaining it.
Software Development Life Cycle.
How did the code which you write in recent times went live. Explain me how it happened or how your end user used it. Don’t just tell me that I checked in the code and it reached production without your knowledge.
When was the last production issue you had in your code and how did you solve it? What role you played in the troubleshooting.
It's a big plus if you can handle tough times when issue happens and you are captain cool for us.
Are you a hands-on programmer who can write the code or design the system meant for the computers running on network.
Very important to be familiar with your IDE. Please know aspects of coding like machine's memory, configuration, clustering, load balancing, HTTP 1.1 vs 2.0, security (TLS, CORS, XSS, CSRF, SQL Injection etc.).
There are enough materials on System design, writing meaningful RESTful APIs properly. So many folks keep uploading their thoughts on these topics on YouTube. Please spend sometime watching those. Better than binge watching.
How will your store Data?
Thoughts around Database is a must even though you don't care. Please know the latest know how of it. OLTP, OLAP, PL/SQL, NoSQL, Normalization, Denormalization. ACID, BASE.
How do you test your code? Can you automate it?
Having clarity of thoughts around how your code will get tested is very big plus for me. And make sure how you think it can be automated.
There you are! You cracked it.
And please understand it’s not just DS or Algorithms or solving some already known problem from here and there unless I am meeting in your campus.
By the way if you are meeting me for a senior technologist role, a concise syllabus below will help you prepare.
Application (25%)
A Regular Software Architecture – CRUD, ETL, Event Driven
Front End – Thick Client(msi, exe), Thin Client(Web), HTML, CSS, JavaScript,Request-Response, PUT, GET, POST, DELETE, XHR, Promise, Reactive Style(RxJS), Observable, CORS, CSRF, NPM, React, Angular, Streams
Middle Tier – Language Choices (Java, Python, Scala, Kotlin), JVM, JRE, JDK, WebServer, AppServer, NodeJS, Load Balancing, Artifacts, Thick vs Thin, PATH, Environment Variables, VM Arguments, HTTP Based RESTFul Service, MicroServices, Camel
RDBMS – Syntax, Inner and Outer Join, Group By, View, DDL, DML, Index, Stored Procedure, Transaction (ACID), NoSQL, OLTP, OLAP, Normalization, Denormalization, Job Scheduling, CAP Theorem, Distributed, HDFS, Hadoop, Kafka
DevOps – Code Management and Version Control, Build, Maven, Gradle, Jenkins, Teamcity, CI/CD Concepts,What is DevOps, DevOps Tools
Cloud – Saas, Paas, IaaS, 12 Factors App, Containers (Docker, Kubernetes)
Caching Tier – Why, Different Softwares, How
CS Programming Fundamentals (15%)
Time & Space Complexity – Big(O), Sorting – Linear Sort, Merge Sort, Quick Sort, Searching – Linear Search, Binary Search, Data Structures – Array, LinkedList, Stack, Queue
Generic Programs – for Loop, do While
Java (20%)
Fundamentals – Benefits, OOPS, Polymorphism, Inheritance, Encapsulation (PIE), Interface, Abstract Class, JDK 8 Changes (Functional Style)
Core Java – Object Class, Collections (ArrayList, LinkedList, HashMap), java.util.*
DB – JDBC, ORM Frameworks (Hibernate, iBatis)
Multithreading – Machine Cores, Runnable, Thread, Synchronized, Akka
Security – Authentication, Authorization, SSO, OAuth2
Spring – Why, Dependency Injection, AOP, REST Template
Design Patterns – Creational, Structural, Behavioral
QA Automation (15%)
TestNG, Gherkin, Selenium, Protractor, RESTAssured, JMeter
QA Strategies (15%) –
Different types of Testing (Smoke, Functional, Regression, Stress, Performance etc), Test Case Creation, Planning, Tools
SDLC – JIRA, Agile
AI/ML (5%)
Supervised – Regression, Classification
Unsupervised – Clustering
All the best :)
On a career break; now exploring suitable options & roles | Ex JLL / HSBC / Irevna (CRISIL) / Scope eKnowledge / Deepak Talwar & Associates / Dalal Street Journal / Indian Railways
4 年Nicely articulated Saurabh Pathak
Principal Scrum Master at Fidelity Investments
4 年Very Insightful and useful tips.. Thanks for sharing Saurabh.