C/C++ senior developer requirements

Practical skills:

  • C/C++ ANSI/ISO (STL, I/O, TCP, memory allocation, containers, algorithms, date-time), GNU – strong; POCO, Boost – is desirable.
  • gcc, make – strong.
  • SQL ANSI/ISO 1992-2008, mysql – well.
  • Linux applied development, I/O, system API, well known libraries: curl, gd, ImageMagick – well.
  • IDE – Eclipse, KDeveloper, Aptana – well.

Linux system development knowledge:

  • The networking, TCP/IP, TCP sockets (epoll, polling, select) – strong;
  • Asynchronous networking based on boost, libev, libevent, etc… – desirable.
  • The multithreading model based on POSIX definitions (threads, mutex, rwlock, bariiers, conditional variables) – strong.

Theoretical knowledge:

  • The complex data structures (Balanced trees (AVL, binary), stacks, lists, dictionaries, collections, hashes, maps, sets) – strong.
  • The internal data representation and bit-operations including the platform dependent – strong.
  • The synchronization resources access algorithms (readers-writers models) – strong.
  • Main data mining and processing algorithms – strong
  • Network programming – strong
  • The HTTP, HTML – strong.
  • Internet data formats – well.
  • The multi-byte encoding – well
  • The theory of compilers (finite automata, LL grammars) – basic.
  • The matrix math – basic.
  • The system modeling – basic.

Language:

  • Russian – strong, main.
  • English – technical reading, writing – well.

Project’s position:

The senior engineer developer of multi-threaded application’s system architecture, data structures and access algorithms, data access architecture, network data structures, protocols and processing systems, multithreaded applications architecture.

Projects role:

Data structures and system level API developer and support, senior system architecture engineer, system administrator. Implementation and support of data main structures and subsystems for fast data access index and specialized properties representation; implementation and support of algorithms of network data processing subsystems, internal application’s architecture construction; construction, implementation and support of mapping algorithms and highlighting techniques; multithreaded architecture solutions partially design, implementation and support; support of related words subsystem; support of unique identifiers subsystem; building and support of most of system internal applications architectures (Context Data repository (CDR), Context Data Handler (CDH), Highlight Handler (HH), Related Words (RW), Dictionary Handler (DH), Resources Proxy Cache (RPC), Connections Manager (CM)).

Common questions for interviewing and knowledge tests