I am currently working in a small company and below is my interview experience:

The interview was composed of challenging coding problems which included topics such as Dynamic programming, Tree based algorithms etc. But when I started working there, I soon realized that the work there is not very challenging. It is just website design and development like any other normal company and there is absolutely no software engineering involved.

Given that the interview was challenging, I went ahead and assumed that the company was doing really cool stuff and there was lot to learn, but that was not there. Worse, the pay hike I took was around 20% which is very low going by the standard in the city and the industry I am in.

So my question. Why do they give such interviews? Just to fool employees or make them assume that work is challenging? Has anybody else been in the same situation?

  • You should base your decision on the job description rather than the tests they give you. It could be that they were testing you to see if your skills match up with your resume or they may just have had a standard test that they give to all applicants and can't be bothered to tailor to individual jobs.
    – Alpar
    Sep 13, 2014 at 15:15
  • 1
    But it is hard to deduce from the JD.It is very generic such as Software engineer.I had no clue how the work was since it was a startup and based by decisions on the interview.Why would they test me on algorithms if I am involved in basic web development which does not involve Software engineering/Performance engineering.
    – Wang Liqin
    Sep 13, 2014 at 15:18
  • It may be that they plan for you to do that sort of work in the future, or that they originally wanted you do to that kind of thing but it became unnecessary. Did you not get a chance to ask about what you would be doing in more detail until it was too late?
    – Alpar
    Sep 13, 2014 at 15:31
  • Nope..I was a bit skeptical on how to take this up.So I thought of taking some inputs here and take it up with the concerned people there.
    – Wang Liqin
    Sep 13, 2014 at 15:36
  • You are looking for consistency where there doesn't have to be any :) Sep 14, 2014 at 6:23

3 Answers 3


It would be my guess, they are not intentionally attempting to 'fool' potential employees. They are ensuring you know your stuff. Regardless of whatever their need for you is right now, they want to ensure that if they are employing a coder then that is what they get. If all they needed at this moment was a web designer (please ... all web designers... I know your job is not 'easy' don't kill me for this next line of thought), then what would happen if they interviewed someone with the stance that "right now we need an HTML 5 web site designer" so right now that's what we'll get?

For the job necessary at the moment, they will get exactly that. Once the page is up and it looks good and everything works, well they're not going to be forever satisfied. So, now they need some PHP code, perhaps a java module. Maybe some Perl coding as well. They go to their newly hired HTML 5 expert and say we need this and that, and the employee now says OK, I'll need 6 months and four classes to learn it to get up to speed.

The company can spend the time and training money and advance the knowledge of the employee, for sure. They can also fire the employee and hire a new person with the required skills. (Depending on where this is happening, it may be more or less difficult mind you.). I am in Virginia, USA. This is an at-will employment state. The company could let the person go, because they no longer meet the skills required, and there would be little to no legal ramifications, beyond perhaps unemployment.


They could hire a person with the exact skill-sets needed plus all the additional knowledge needed to stay current for the foreseeable future as well.

So what should you do now

Ask for a meeting with your manager/boss. Be honest and up front with him or her. Let them know that after the battery of testing that occurred during the hiring process you thought X while the reality is Y. You are currently kind of unhappy with the situation, as you feel you will quickly lose skills. Ask him/her what the plans are both near-term and long-term, for the software, the project and the company.

This will show you have a concern about your own skills, but also that you are thinking to the future, both of yourself AND the company. For all you know, there may be projects just around the corner which will amaze you.

After that meeting, see how you feel. If you are still very much concerned, then re-evaluate your own career goals and hey, maybe it's time to refresh your CV and continue the job search. If that is true, you have one advantage over many other people right now.... you already have a job!


I have done the mistake of accepting a job offer because of the tough interview. Answering your question:

Companies when moving fast or becoming large have a tendency of not updating the processes. They also get progressively stuffed with people that "just" want to do their job and go home. So given a list of interview questions they will not challenge if it is fit for purpose, they'd just ask them to you and then provide their assessment.

Another approach that I have seen which is also wrong, is the hope that if a company recruits better and better candidates then somehow auto-magically the department will start to get better and better. The problem is that they don't improve the processes or their approach to doing business or managing their teams, so you just add unhappy employees feeling taken advantage of - someone like you :-)

I think the effort should be on how to shield yourself from having the same experience in the future. I'd suggest:

  • Ask to talk with at least one team member for 10 minutes without another person in the room
  • Ask what you will be doing or what the company is doing
  • Ask to see the source code of their last project on someones computer

An interesting approach is how stackoverflow and 37signals handle onboarding: After the interview, the interviewee is assigned a approximately one-month contract working on an isolated piece of functionality that the team/project needs. At the end of the month both ends know if they can work together one with another and proceed. If not the candidate gets paid for the time company has the additional functionality delivered and both can move on.

  • I would question how many companies will show a non-employee source code (unless it's FOSS, of course); I know the one I work for will not.
    – CGCampbell
    Sep 14, 2014 at 20:23
  • The "one-month contract" thing sounds just like your regular probation (although a bit short).
    – HorusKol
    Sep 15, 2014 at 1:47
  • @HorusKol The difference is that the probation is usually treated as "one-way" (employee fits to the firm) while contract is bidirectional (also company is OK for employee. Sep 15, 2014 at 6:39
  • @CGCampbell In my opinion and speaking for myself if I cannot see anything then I cannot have an indication of what I will be doing. So if the company is secretive about peeking 10 minutes through the codebase then... not for me. Sep 15, 2014 at 6:42
  • @dimitrismistriotis that may be the case where you are, but in my experience probations are bidirectional, and this is encoded in the full-time work agreement. Although, I just realised that the way the probation is defined actually makes it harder for the employer to drop the new employee than a simple short-term contract.
    – HorusKol
    Sep 15, 2014 at 23:17

There's no reason to assume the interview represents the tasks for the job. You always need to ask. Who wants to hire someone who can just do the bare-minimum?

Hiring people with a good foundation (even if it is theoretical) and understanding of some of the underlying technology offers a chance to expand the software's capabilities especially when it comes to performance. Requirements change. Do you want to send the pregnant mother of your child to a doctor that just understands normal births or someone who is prepared when there are complications?

They may have expectations that you will improve their code base. If there are tasks that are boring and repetitive, you should look for ways to write code to take care of that. Stop delivering what they want and give them what they need. There has to be a way to apply what you know to make their website a little less normal.

Not the answer you're looking for? Browse other questions tagged .