| Assuming you are looking for a Unix/Linux person: 1) Good understanding of the user-land + kernel layers - filesystems, inter-process commn (pipes, shared memory etc..), process vs threads, memory layouts, networking (tcp/ip sockets etc..). 2) Experience in kernel development is a big plus but not mandatory. 3) If using C/C++, good understanding of the language features, esp. debugging tools like gdb. 4) If using Java or VM-based languages, apart from language features, good understanding of the VM tunings and its limitations. 5) Scripting - bash, awk, perl/python/php etc.. 6) Protocols - HTTP, and others. Good understanding on how to build web services. 7) Performance and debugging: tcpdump/wireshark, /proc/* tunings, firebug, etc... 8) An exposure to web development on the client side - html, css, js. Not necessarily being a guru here but understanding the full stack from the client onwards. It can influence the server-side architecture (handling various ajax requests etc..) 9) AWS services - something to consider (this is how we started with our start-up). 10) Not to mention, a passion to understand the 'big picture', and how to optimize the various resources effectively. |