Friday, September 9, 2011

Interviewing @ eBay Part III - Software Architecture Interview

I don’t know of any job title/role in technology that is more controversial, and evoke more emotional reaction, than that of an “architect”. Engineer, engineering manager, product manager, accountant, business developer etc. all have almost the same definition/responsibilities from company to company,  architects role though vary widely: in some firms one cannot do anything without an architect permission and in some others the role is completely eliminated.

You should first know that architecture is a role with a wide definition (TOGAF alone defines five types of architect - enterprise, business, data, application, IT). EBay architects play a combination of tech lead, internal evangelist, tech management and product management, and role is often the agent of change for eBay technical direction, tech stack, technology choices, process and methodologies …
Interviewing and selecting an architect is especially challenging. In addition to core skills of a software engineer (yes if you are interviewing for an architect position, you should be comfortable coding – no Java guru, but be able to code), the main attributes I am looking for are:

-        Integrity: Change in technology often brings about change in organization and power structure, people currently in power know this and may not be enthusiastic about  it, architect should have the integrity and courage to call for change when  it is not popular.
-        Leadership: integrity and courage is necessary but not sufficient, in this role you should have leadership i.e. the ability to influence, inspire and induce change in direction (often major changes) in a way that people want to make the change, not forced to (you will have no formal power anyway)
-        Clarity : last but not least, architects MUST bring clarity to situations where goals are unclear, definition of problem is fuzzy, needs are uncertain, data is incomplete, assumptions are inaccurate, yet delivery is urgent and pressure is high …bringing clarity to all aspects of such situations are often the most important function of an architect at eBay.

So for interview, expect some of the core software engineering questions, with much more emphasis on modeling and problem solving plus few of the followings:

  • -        When you are asked to “architect” a system – say photo album app – what does that mean to you? What tasks do you perform? What would be your deliverables? How would you interact with engineers?
  • -        How do you ensure the delivered system conforms to your architecture?
  • -        Model and Design eBay
  • -        From the time you type in www.ebay.com , to when you see eBay home page, explain what happens under the hood, at all layers
  • -        How does Ajax-style interaction impact a traditional/classical page-oriented architecture? What are the changes it would force to the classic architecture.
  • -        How would proliferation of Mobile application impact the classical web based architecture?
  • -        Explain Map/Reduce in simple but reasonably accurate term, in a way a marketing person can appreciate it.
  • -        Describe challenges and best practices in developing a distributed system – such as SOA based system.
  • -        Describe the qualities of a well-designed API or service interface .
  • -        Describe your favorite application development framework or design, explain its benefits and shortcomings  (e.g. Spring or Struts, or your own framework)
  • -        Compare and contrast SQL and NoSQL DBs, when do you use each?
  • -        How do you store a social graph like LinkedIn or Facebook?
  • -        How do you decide to buy or build a piece of technology?
  • -        eBay, as other online merchants and markets, has a policy against sale of fire arms, how do you design a system to enforce this policy?
  • -        How do you design an application – such as a cart or check out flow - in a way that product and UI folks can experiment with and optimized different aspect of it?
  • -        At any given time, eBay support a set of widely used browsers, for the rest, it display a warning message and asks users to upgrade to another browser. How so you design this system?
  • In a large and distributed system, how do you ensure data-consistency for critical functions such as  authentication/login 
  • Discuss a few significant technology trends, why do you think they are important? How would you anticipate their impact on current architecture/system?
  • What would you do in your first month of working for eBay

If some of the questions sound vague, it is because they are! (btw, they are a lot clearer than what you'd face with in reality). Remember that you need ask questions, seek and bring clarity to the problem definition before you jump into the solution.

Again if you are interviewing for a particular specialty such as Security, I18N, Messaging, Operations etc. you should expect particular question in those areas (I will post a list of question for my security and identity architecture interview later), but for system and application architecture, be prepared for at least 3 or 4 questions from the list above. 

0 comments:

Post a Comment