Wednesday, January 21, 2015

Interview Questions

Details on Education and Working Experiences

  •     Education?
  •     Describe the team size of previous positions.
  •     Role on team?
  •     Describe the project management flow of previous positions.
  •     Could you describe the representative project that you had worked on?
  •         What's the achievement?
  •         What's the difficulties?
  •     Experience on communicate with end user?
  •     Interaction with end users?
  •         Product demo?
  •     Approach on problem solving?
  •     How to handle disaster, major bug deployed to production?
  •     Documentations?
  •     Scrum/Agile development experience?  Sprints, PBI, stories, ...
  •     Feature Spec -> Design spec -> Implementation Spec -> Programming...
  •     Overtime?  (I don't encourage, but must focus with good efficiency.)

Key Requirements Review

  •     Team work
  •     Communication
  •     Agile/Scrum
  •     Continues integration
  •     Analysis
  •     Problem solving
  •     Source control
  •     Debugging
  •     Unit tests
  •     QA
  •     User support
  •     Documentation
  •     System administration

Learning Abilities

  •     Ability on learning new programming language.
  •         When and how did you learn programming languages?

Development Knowledge

  •     SDLC experience?
  •         Report issues, bugs.
  •         Experiences on management system such as JIRA.
  •     Experience on unit test.
  •         Has any experience on test driven development?
  •         Test Driven development
  •         Test cases code coverage?
  •         Test automation?
  •     Code refactoring?
  •     Continue integration.
  •     QA testing knowledge?

Technical Know-hows

  •     Hardware knowledge?
  •     RAID 0, 1, 0+1, 5
  •     UDP vs TCP, which protocol is suitable for video streaming?  Why?
  •     IPv4 vs IPv6
  •     Window services or Daemon development experience?
  •     How to debug on Visual Studio Web application?  In case of developer server by VS.  In case of a web application hosted on local IIS.
  •     How to debug on client side, javascript?  (Browser tools like Firebug, Chrome developer tools.)
  •     How do you access database?  Stored Procedure vs Parameterized Query.  Your option?
  •     Tell the different between sql join and left join.
  •     How to debug SQL stored procedure?
  •     System security?
  •     Deployment process details.
  •         By GUI?
  •         By Script?
  •     Experience on version control system, e.g. Svn, Git, Csv?
  •     How to ensure a series of database operations be atomic?
  •     Experience on Linux administration, network configuration.
  •         Cron job
  •         rsync
  •     Experience on AJAX, front-end HTML?
  •     Experience on Cloud?
  •     Experience on NoSQL
  •         e.g. Memcached?
  •     Experience on public web APIs (e.g. Facebook) ?
  •     Web services, restful.  Concept on Restful web service (GET, PUT, POST, DELETE)
  •     What's the difference between static and dynamic programming language.
  •     Regular expression?
  •     Can Apache server serve multiple domain websites with single IP?  With SSL cert?

Others

    Any technical news group do you follows?

Developer's Mindset, Practices

  •     Define top 3 coding practice rules.
  •     Define top 3 team collaboration rules.
  •     What's the most important thing to get things done well? ... It's Passion.
  •     Daily logbook?
  •     Keep knowledge base?
  •     Personal technical blog?
  •     Open source development experience?
  •     How to choose from "Do it well" and "Do it fast" on time pressure?
  •         Technical debt
  •     Code review?

Personal

  •     Career plan?
  •     *** Comfortable with coding convention, guideline and collaboration practice? (e.g. code commit every day, daily scrum meeting, code review)
  •         Play different role on different story.
  •     What's the major achievement on years of development life?
  •     What's the area to be strengthen?
  •     What's the role you want to try in software development industry?
  •     How do you improve yourself?

Programming Tests

    Design a approach to solve a problem in a generic and extendable way ...
        Car service depot - The company has a system with database that takes a car's made, model, year as input.  Customer can check the wanted service.  Then the system can generate a work list for staff.  And cashier charge base on details.
            Car database
                Made
                    Details
                Model
                    Spec
                Year
            Create service list base on made and model.
                refuel_car(car)
                    fuel_diesel(car)
                    fuel_petrol(car)
                    What if we want to support gas in future?
                Cleaning
                    < 1500cc : $200
                    1500cc - 2500cc : $300
                    > 2500cc : $500
                    What if we change the charging plan in future?
                    Configuration file? or store in database?
                Save record with worksheet include worker name and charges.
            Question: What's the problem on the following implementation?  Or what improvement could be made.
                Car -> PetrolCar
                Car -> DieselCar
                Refuel_car(?) { if car is PetrolCar, fuel_petrol; if car is DieselCar, fuel_diesel;}
            Alt Question.
                Create the Refuel_car function.

System design test (Open design, no model answer)

    Online application
        create an online application with private information and file uploads, what's the approach? (on server hardware setup, web security concerns, etc.)
            Upload file handling.
            Prevent web robots - Captcha.
        Security, the basic security for an online application, e.g. loan application?
        CMS, any knowledge?
    Create a simple system including hardware, software to support a DVD lending system at home.
        Hardware
        Software
            ER diagram
        System

        Enhancements:
            Enhance data redundancy, availability
            System security


Introduction to our company and development team.

    Small SME loan.
    Office in Singapore, Philippine, and will be more.
    12 month salary.
    Development team:
        Agile/Scrum development.
        Internal loan management system
        4 developers
        Daily operation support
        System maintenance
        Feature enhancement
        New projects
        Team member will play different role for:
            Analysis
            Coding
            Testing
        Due with change requests.
        Open source learning opportunity
        Comprehensive system development and deployment.

Questions?

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.