Вы находитесь на странице: 1из 4

Algorithmic skills

Understand and dissect complex problems quickly


Understand trade-offs between space / time complexity
Come up with solutions with minimal space / time complexity
Reasonably mathematically savvy
Familiarity with graph theory, graph traversals etc
Data Structures

Basic Knowledge of data structures - Hashmaps, Binary tree, B-Tree, B+Tree, Linked
Lists etc

Understanding of trade-offs between various data structures etc
Advanced Knowledge of implementation of data structures -
Hashmaps, Binary tree, B-Tree, B+Tree, Linked Lists etc

RDBMS

Basic RDBMS knowledge
Advanced RDBMS knowledge
Query optimization
RDBMS tuning
Replication and Clustering
RDBMS Scalability
Caching

Basic knowledge of caching
Advanced caching strategies
Design and modeling

Strong knowledge of OOPs
Design patterns and application thereof
Understanding of KISS, YAGNI, DRY, SOC, SRP, Loose Coupling etc
Networking

Basic knowledge of DNS
Protocol level understanding of TCP / UDP
Deep understanding of OSI stack
Basic understanding of Routing concepts
Socket programming

Ability to implement a protocol server/client
Ability to write high performance server/client
Understanding of Async I/O
Understanding of various network protocols
Web application development

Basic HTML and CSS
Basic Javascript
Protocol level knowledge of HTTP
Advanced HTML and CSS
Advanced Javascript
Ajax / Flex
Understanding of MVC architecture
Multi-threading and concurrency

Basic knowledge of multi-threading
Advanced knowledge of multi-threading / trade-offs
Automated Testing

Understanding of unit testing
TDD
Writing code conducive to Automated testing
Planning and writing functional tests
Planning and writing stress tests
Knowledge of unit and functional testing frameworks for relevant platforms
OS Concepts

Understanding of OS concepts, kernel, interrupts, native libraries etc
Understanding of OS process scheduling concepts
IPC / RPC / Web Services

Knowledge of different forms of IPC / RPC
Knowledge of various protocols involved and trade-offs
Basic implementation knowledge of any one RPC mechanism
Advanced knowledge of SOAP / REST / other remoting
Security

Knowledge of OWASP
Knowledge of Network layer security
Knowledge of secure architectures
Internationalization

Knowledge of Unicode and its implementations
Knowledge of implementation of internationalized interfaces
Understand implications of internationalized data in RDBMS, searches, indexing etc
Development Methodologies

Knowledge of Agile, XP, Scrum, TDD and pairing
Knowledge of Identifying code smells and Refactoring
Scaling

Write and plan stress tests to determine scalability
Ability to identify scalability and performance bottlenecks quickly
Ability to determine whether an application is / will be disk bound, memory bound, cpu
bound, network bound etc

Understanding of all layers from the hardware to the application to determine bottlenecks
Knowledge of scaling techniques on the application side such as Async IO, caching,
multi-threading etc

Knowledge of scaling techniques on the data side such as Identifying optimized data
structures, caching strategies, Horizontal / Vertical partitioning, replication / clustering

Knowledge of scaling techniques on the app server side such as clustering and load
balancing

System Administration

Basic Unix commands and shell operation (including grep, awk, sed, regex and shell / perl
scripting)

Basic Windows administration
Usability

Knowledge of information architecture
Ability to design intuitive UI
Communication Skills

Good grammar - written and oral
Ability to understand discussions well
Ability to articulate a concept / subject well
Good command over vocabulary
Penchant for Writing

Frequently writes internal / external documents / articles
Conducts internal and external training sessions
Penchant for reading

Avid reader of tech and industry blogs, articles, news and books etc
Strategy and Vision

Business acumen
Ability to determine features and product strategy
Platform Selection

Ability to select languages, OS, RDBMS, Data structures, Frameworks, libraries,
Hardware for an application

Understand performance, cost and other trade-offs between myriad platform choices
Architecture

Understanding of deployment architectures and their trade-offs
Capacity Planning

Ability to plan and conduct capacity planning exercises
Soft Skills

Likeable / people's person
Ability to garner respect amongst peers by demonstrable knowledge and actions
Proactive mentor who loves to impart and share knowledge
Attract and Recruit 'A' players
Train and grow team
Contribute to process evolution
Motivate and inspire the team