вторник, 20 июля 2010 г.

Werner’s requirements

Job Opening for a Senior Research Engineer:
"You need to be able to dive deep on technology issues, use your analytical skills to reduce a problem to its fundamentals, and create solutions."
"... use computer science theory and knowledge of advanced research to design solutions that are fundamental in nature ..."
"...understanding of distributed storage systems, scalable database technologies and data stream processing."

"You know your distributed systems theory: You know about logical time, snapshots, stability, message ordering, but also acid and multi-level transactions."
"You have heard about the FLP impossibility argument. You know why failure detectors can solve it ... You have at least once tried to understand Paxos by reading the original paper."
"You have a good sense for distributed systems practice: you can reason about churn and locality in DHTs. You intuitively know when to apply ordered communication and when to use transactions. You can reason about data consistency in a system where hundreds of nodes are geographically distributed. You know why for example autonomy and symmetry are important properties for distributed systems design. You like the elegance of systems based on epidemic techniques."
"You have good common sense about scale and availability: you frown when someone mentions two-phase commit in the same sentence as high-availability. You also realize that protocols that require a system "to be stable for a sufficiently long period of time" are not a good basis for building real systems. You understand the elegance of state-machine replication, but understand why it is hard to apply at large scale. You have a solid intuition about the impact of design decisions on the ability to achieve data consistency, and you are not scared by the idea of building systems based on 'eventually consistent' data."
"You know about the advances in database technologies. You understand how database performance is optimized and how data-partitioning impacts query optimization. You realize what the limitations of commercial databases are and possess a good intuition about where solutions can be found. You are aware that column orientation and stream processing are not just research topics but actually solve hard problems."
"In summary:
- You have a very solid understanding of distributed systems and networking
- You know how to do data-driven analysis and truly understand statistics
- You understand large scale monitoring and data collection architectures
- You are familiar with the current state of the art in distributed systems modeling
- You are a solid engineer with a track record of building complex systems or you have demonstrated involvement with public large software projects (e.g. open-source).
- You have a proven ability to effectively communicate the results of data analysis and modeling
- Your communication skills allow to communicate clearly with diverse audiences

For this position we require a PhD in computer science with expertise in distributed systems and you must have demonstrated expertise in modeling complex distributed systems. If you have an equivalent advanced degree with demonstrated expertise in this field through publications and/or completed products or projects you may also apply."

P.S. Previous job opening from Werner.

Комментариев нет:

Отправить комментарий