| 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 |