Skill |
Software Engineer (2 + yrs) |
Sr Software Engineer (4 + yrs) |
Tech lead (8 + yrs) |
GM (10 + yrs) |
Algorithmic skills |
Understand and complex problems quickly |
Must have |
Must have |
Must have |
Must have |
Understand trade-offs between space/time complexity |
Must have |
Must have |
Must have |
Must have |
Come up with solutions with minimal space/time complexity |
Shocould have |
Must have |
Must have |
Must have |
Reasonably mathematically savvy |
Bonus |
Bonus |
Shocould have |
Shocould have |
Familiarity with graph theory, graph traversals etc |
Bonus |
Bonus |
Shocould have |
Shocould have |
Data Structures |
Basic knowledge of data structures-hashmaps, binary tree, B-tree, B + tree, linked lists etc |
Shocould have |
Must have |
Must have |
Must have |
Understanding of trade-offs between various data structures etc |
Shocould have |
Must have |
Must have |
Must have |
Advanced knowledge of implementation of data structures-hashmaps, binary tree, B-tree, B + tree, linked lists etc |
Shocould have |
Shocould have |
Must have |
Must have |
RDBMS |
Basic RDBMS knowledge |
Must have |
Must have |
Must have |
Must have |
Advanced RDBMS knowledge |
Shocould have |
Shocould have |
Must have |
Must have |
Query Optimization |
Shocould have |
Shocould have |
Must have |
Must have |
RDBMS Tuning |
Shocould have |
Shocould have |
Must have |
Must have |
Replication and clustering |
Shocould have |
Shocould have |
Must have |
Must have |
RDBMS scalability |
Shocould have |
Shocould have |
Must have |
Must have |
Caching |
Basic knowledge of caching |
Shocould have |
Must have |
Must have |
Must have |
Advanced caching strategies |
Shocould have |
Shocould have |
Must have |
Must have |
Design and Modeling |
Strong knowledge of oops |
Must have |
Must have |
Must have |
Must have |
Design Patterns and application thereof |
Shocould have |
Must have |
Must have |
Must have |
Understanding of kiss, yagni, dry, Soc, SRP, loose coupling etc |
Shocould have |
Must have |
Must have |
Must have |
Networking |
Basic knowledge of DNS |
Shocould have |
Must have |
Must have |
Must have |
Protocol level understanding of TCP/UDP |
Shocould have |
Shocould have |
Must have |
Must have |
Deep understanding of OSI Stack |
Shocould have |
Shocould have |
Shocould have |
Must have |
Basic understanding of routing concepts |
Shocould have |
Shocould have |
Shocould have |
Must have |
Socket programming |
Ability to implement a protocol server/client |
Shocould have |
Must have |
Must have |
Must have |
Ability to write high performance server/client |
Shocould have |
Shocould have |
Must have |
Must have |
Understanding of async I/O |
Shocould have |
Shocould have |
Must have |
Must have |
Understanding of various network protocols |
Shocould have |
Shocould have |
Shocould have |
Must have |
Web Application Development |
Basic HTML and CSS |
Must have |
Must have |
Must have |
Must have |
Basic Javascript |
Shocould have |
Must have |
Must have |
Must have |
Protocol level knowledge of HTTP |
Shocould have |
Must have |
Must have |
Must have |
Advanced HTML and CSS |
Shocould have |
Shocould have |
Must have |
Must have |
Advanced Javascript |
Shocould have |
Shocould have |
Must have |
Must have |
Ajax/flex |
Shocould have |
Must have |
Must have |
Must have |
Understanding of MVC Architecture |
Shocould have |
Must have |
Must have |
Must have |
Multi-threading and concurrency |
Basic knowledge of multi-threading |
Must have |
Must have |
Must have |
Must have |
Advanced knowledge of multi-threading/trade-offs |
Shocould have |
Must have |
Must have |
Must have |
Automatic Testing |
Understanding of Unit Testing |
Shocould have |
Must have |
Must have |
Must have |
TDD |
Shocould have |
Must have |
Must have |
Must have |
Writing code conducive to automated testing |
Shocould have |
Must have |
Must have |
Must have |
Planning and writing functional tests |
Shocould have |
Must have |
Must have |
Must have |
Planning and writing stress tests |
Shocould have |
Shocould have |
Must have |
Must have |
Knowledge of unit and functional testing frameworks for relevant platforms |
Shocould have |
Shocould have |
Must have |
Must have |
OS concepts |
Understanding of OS concepts, kernel, interrupts, native libraries etc |
Bonus |
Bonus |
Shocould have |
Must have |
Understanding of OS process scheduling concepts |
Bonus |
Bonus |
Shocould have |
Must have |
IPC/rpc/Web Services |
Knowledge of different forms of IPC/RPC |
Shocould have |
Must have |
Must have |
Must have |
Knowledge of various protocols involved and trade-offs |
Shocould have |
Shocould have |
Must have |
Must have |
Basic Implementation Knowledge of any one RPC mechanism |
Shocould have |
Must have |
Must have |
Must have |
Advanced knowledge of SOAP/rest/other remoting |
Shocould have |
Must have |
Must have |
Must have |
Security |
Knowledge of OWASP |
Bonus |
Shocould have |
Must have |
Must have |
Knowledge of network layer security |
Bonus |
Bonus |
Must have |
Must have |
Knowledge of secure ubuntures |
Bonus |
Bonus |
Shocould have |
Must have |
Internationalization |
Knowledge of Unicode and Its Implementations |
Bonus |
Shocould have |
Must have |
Must have |
Knowledge of implementation of internationalized Interfaces |
Bonus |
Shocould have |
Must have |
Must have |
Understand implications of internationalized data in RDBMS, searches, indexing etc |
Bonus |
Shocould have |
Must have |
Must have |
Development methodologies |
Knowledge of agile, XP, scrum, TDD and pairing |
Bonus |
Shocould have |
Must have |
Must have |
Knowledge of identifying code smells and refactoring |
Shocould have |
Must have |
Must have |
Must have |
Scaling |
Write and plan stress tests to determine scalability |
Bonus |
Bonus |
Must have |
Must have |
Ability to identify scalability and performance bottlenecks quickly |
Bonus |
Bonus |
Must have |
Must have |
Ability to determine whether an application is/will be disk bound, memory bound, CPU bound, network bound etc |
Bonus |
Bonus |
Must have |
Must have |
Understanding of all layers from the hardware to the application to determine bottlenecks |
Bonus |
Bonus |
Must have |
Must have |
Knowledge of scaling techniques on the application side such as async Io, caching, multi-threading etc |
Bonus |
Bonus |
Must have |
Must have |
Knowledge of scaling techniques on the data side such as identifying optimized data structures, caching strategies, horizontal/vertical partitioning, replication/clustering |
Bonus |
Bonus |
Must have |
Must have |
Knowledge of scaling techniques on the app server side such as clustering and load balancing |
Bonus |
Bonus |
Must have |
Must have |
System Administration |
Basic Unix Commands and shell operation (including grep, awk, sed, RegEx and shell/perl scripting) |
Bonus |
Shocould have |
Must have |
Must have |
Basic Windows Administration |
Bonus |
Shocould have |
Must have |
Must have |
Usability |
Knowledge of Information Architecture |
Bonus |
Shocould have |
Must have |
Must have |
Ability to design intuitive UI |
Bonus |
Shocould have |
Must have |
Must have |
Communication skills |
Good Grammar-written and oral |
Must have |
Must have |
Must have |
Must have |
Ability to understand discussions well |
Must have |
Must have |
Must have |
Must have |
Ability to articulate a concept/subject well |
Must have |
Must have |
Must have |
Must have |
Good command over vocabulary |
Shocould have |
Shocould have |
Must have |
Must have |
Penchant for writing |
Frequently writes internal/external documents/articles |
Shocould have |
Must have |
Must have |
Must have |
Conducts internal and external training sessions |
Shocould have |
Shocould have |
Must have |
Must have |
Penchant for reading |
Avid reader of tech and industry blogs, articles, news and books etc |
Must have |
Must have |
Must have |
Must have |
Strategy and vision |
Business acumen |
Bonus |
Bonus |
Must have |
Must have |
Ability to determine features and product strategy |
Bonus |
Bonus |
Must have |
Must have |
Platform Selection |
Ability to select languages, OS, RDBMS, data structures, frameworks, libraries, hardware for an application |
Bonus |
Bonus |
Must have |
Must have |
Understand performance, cost and other trade-offs between myriad platform choices |
Bonus |
Bonus |
Must have |
Must have |
Architecture |
Understanding of deployment ubuntures and their trade-offs |
Bonus |
Bonus |
Must have |
Must have |
Capacity Planning |
Ability to plan and conducting CT capacity planning exercises |
Bonus |
Bonus |
Must have |
Must have |
Soft Skills |
Likeable/People's person |
Shocould have |
Must have |
Must have |
Must have |
Ability to garner respect amongst peers by demonstrable knowledge and actions |
Shocould have |
Must have |
Must have |
Must have |
Proactive mentor who loves to impart and share knowledge |
Shocould have |
Must have |
Must have |
Must have |
Attract and recruit 'A' players |
Bonus |
Bonus |
Must have |
Must have |
Train and grow team |
Bonus |
Bonus |
Must have |
Must have |
Contribute to Process Evolution |
Bonus |
Bonus |
Must have |
Must have |
Motivate and inspire the team |
Bonus |
Bonus |
Must have |
Must have |
Product evangelism |
Frequently blog |
Bonus |
Shocould have |
Must have |
Must have |
Misc |
Humility |
Must have |
Must have |
Must have |
Must have |