Thursday 30 April 2015

Interview Experience

Just like most software engineers, I also hunt for better jobs. 'Better' here mean better work, better compensation, better culture etc., and NOT just 'salary' !! Recently switch to a better job. Most people have asked me about my experience in getting new job, what questions/technologies do the companies ask, qualities/skill set they are looking for ? blah blah... In this post, I try to provide my views to such queries.
I've briefly mentioned my career snapshot below. This blog could help the reader analyze/co-relate the  questions/experience for a similar/related profile. I've also documented the questions (as I remember !!) at the end of this blog that various companies/interviewers have asked me during my stint. 

Brief about my profile

Around 10 years of work experience as a software engineer at various product development companies. Vast experience in design and development of application software with various tools/technologies using C/C++ and Java (present). Mostly worked for management applications in storage and virtualization domain. 

FAQs

How is the overall market ?

Its certainly better when compared to 2009-10 times but not very good. Considering the growing number of tech startups, one can certainly expect good number of calls.

What kind of questions to expect ?

Well, it mostly depends on the kind of job role and requirements. Most high paying companies focus on problem solving, algorithms, computer science fundamentals. Of course, your current project and relevant skill set also matters but relatively the weight age is higher for the former.

What kind of algorithms do they ask ?

Usually they begin with standard questions like detecting the loop in linked list and then dig deeper that involves questions around heap, graphs etc., And then on dynamic programing (DP). Yes, DP has become a norm these days and they use it as the decider.

How many rounds will there be ?

Most companies have 4-5 technical rounds excluding the telephonic or screening (online, programing etc.,) followed by the managerial/HR rounds.

How will the HR round be ? What kind of HR questions do they ask ?

As the experience increases, I've found their role in hiring decreases. They just facilitate the process and aid the manager/recruitment team in logistics. 

What qualities in my resume boost/attract my potential employers ?

Most people mention about the present/past projects but thats not enough. Employers are looking beyond it. For example, you could mention about open source contributions/community projects you are involved with. Something apart from your regular work you did. This talks about your passion to explore technologies. Some examples below.
  • Open source doesn't necessarily be some top level apache project. It could be your petty/hobby projects (as simple as shopping cart applications) or your contributions to other's ideas. 
  • Some simple scripts to help automate your daily activities that could help other folks facing similar problems (a script to automatically detect untracked files in your git workspace and add it to the staged environment)
  • Contributions to open forums like stackexchange, yahoo answers, quora etc.,
  • Your experiences/opinions shared to wider audience through blogging sites (e.g : new features in JDK 8, some upcoming technology like docker)

Are the above mandatory ?

Not exactly. But they'll certainly put you in front of the queue while screening/shortlisting profiles in the initial recruitment phases. Its never late. You could start doing from now.

What qualities shall distract/under weigh my resume ? 

One thing I noticed is the frequent switches as they indicate your instability and unreliability. I would say at least 3 yrs in single company shall be a good number. Something like 5+ yrs in a single company shall strike out your temporary stints (like 6months, < 1 yr etc.,) because the fault could be on the employer side as it failed to retain you while some other company (>5 yrs) could do that. 

Interview Questions

Documented below some of the questions I have been asked by various companies


Company Name
Date
Questions (that I remember)
Digital Insight (Telephonic)
Dec 2014
   Write a program to chose every k elements from the end of the single link list and reverse them
            e.g: If k==3, a b c d e f g h i j k => j k g h i d e f a b c       
   How to identify non repeated integer from a array of integers
Explain Decorator pattern
Snapdeal F2F
Dec 2014
   Write code for put/get in Map
   Design question related to orders and customers. Prevent rows in child table to be deleted using constraints table/cache
   Puzzle - 3 couples on one side of river need to cross using a boat of capacity 2 where both male/female can drive it...Safety (women cannot be alone with any male other than her husband)
Digital Insight F2F
Dec 2014
Program to print nodes for a given element in tree at a distance of K (could be children or parent or siblings)
   Design question on Badminton game
   longest palindrome in a given string (DP problem)
Flipkart (Telephonic Managerial position)
Dec 2014
what are the 3 qualities you would reject/hire in a candidate
Did you have any prior experience in appraisals. How would you keep employees happy ?
Write the code to recursively/iteratively compute fibonacci number
Decorator/Proxy pattern overview and examples
How would you scale web applications. Approach and techniques.
Dell Telephonic

Jan 2014
Primarily on Java
Iterators (failsafe vs failfast)
synchronization
cloning
java threads
Dell F2F
Jan 2015
Design and code workqueue/workpool
   questions about current projects and challenges
   
   SOAP vs RESTful
   SSL overview
   write code to construct tree if both inorder and pre-order traversal of a tree is given
Media IQ - F2F  
Jan 2014
   program to find out largest palindrome in a given string (DP questions)
   Program to print the last node in each level of level order traversal
 design and code for LRU cache
   design n elevators and m floors
   program to find the max number of platforms required for a railway station given the arrival and departure of the trains in an array
 VMWare - F2F (Internal)



Write code to reverse singly linked list using recursion
Write code for BlockingQueue using java synchronization techniques. Multiple readers and single writer
Write code for LRU cache
Code to find last node at each level in BFS
TaxiForSure (Telephonic Managerial Position)
Jan 2015
DR
Highly Adhesive and Low coupling
find sum of array using recursion
Decorator pattern
TaxiForSure F2F
Jan 2015
What is the Challenging project
How to scale website
How to optimize database
Wallmart Labs (Telephonic) Jan 2015

Jan 2015
Implement decorator pattern
difference between synchronized map vs concurrent map
garbage collection fundamentals like parellel vs concurrent
weak vs soft refernce in java
Code for factorial and geometric progression

Wallmart Labs (F2F)
Feb 2015
Explain the fundamentals of SSH and its working
Fundamentals of program memory and its working… cache, page table, TLB, various segment
logic and code to find the median of continous stream of integers
code to construct balanced binary tree from an array of integers
given an integer array of size N  and input K, construct an array of size N-K with minimum elements from each rolling window of size K. (Can be solved using combination of heap and map)
Java specific questions like synchronization, volatile, memory gc concepts, producer consumer problem
design problems on high availability and scalability

Microsoft F2F
Feb 2015
How will you simulate inheritance without actually using the in-built inheriteance in OOPs
Features and basics of OOPs
Write code to demonstrate polymorphism using C++ templates
Write code for circular array based queue
High availabilty/distributed systems
How to implement de-duplication at file/block level in a file system. How to take care of cloning/moving to a different data disk


Monday 13 April 2015

My MAC venture

I am an ardent fan of Linux and the regular user of windows (Of course, have grown-up with it). Experimented with various flavors of linux (viz., RedHat, Fedora, SuSE, CentOS etc.,) and several versions of Windows. However, was always reluctant to try Mac systems. Though, I keep hearing lot of good things about Mac, but never attempted at it. Finally, broken the ice and gave it a try. Found a bit confusing but interesting. Especially having used windows GUI since a long time. Sharing my learning and experience though this blog. This article shall be helpful for those switching/adapting to Mac machines with windows/linux background like me. It primarily aims at comparing Windows and OS/X. Examples mentioned in this article are with reference to Yosemite (10.x) version of OS/X

Note: This blog is work-in-progress and shall be updated continuously as and when I come across new stuff

System Administration Tools

DescriptionWindowsLinuxOS X
Software/Package Management ToolsYum, zypper,apt-get etc.,Homebrew
Process/Task ManagementTask ManagertopActivity Monitor


Keyboard Mapping

The Option key on a Mac is the same as the Alt key in Windows.
The Command (cmd) key works in a similar way to the Control key in Windows. 
The most common use of Control key on Mac is to mimic the right click action.
Additional information available at https://support.microsoft.com/en-us/kb/970299
Some of the frequently used keys are provided below


DescriptionWindowsLinuxOS X
ControlCtrl
Command (mostly) or Control (sometimes)
AlternateAlt
Option

Windows/Start
Command/Apple
EraseBackspace/Del
delete

Shortcuts (Key-combinations)

Additional information at https://support.apple.com/en-us/HT201236
Some of the useful shortcuts provided below for reference.

DescriptionWindowsLinuxOS X
CopyCtrl + C
Command+C
CutCtrl + V
Command+V
PasteCtrl + V
Command+C
RedoCtrl + Z
Command+Z
LockCtrl + Alt +Del
Control+Shift+Power