Linux usage

Linux shell (e.g bash): loops, if, test, pipes, environment, redirections.

Understanding of Linux filesystem from the user point of view: unix file permissions model, file ownership, ordinary files, devices, hard and symbolic links.

Utilities: cat, echo, less, strings, find, grep, diff, patch, ssh, scp.

Plus: Linux distribution packages management.

Development tools

Version control system (e.g. svn, hg, git), bug tracker (e.g. bugzilla, Jira).

gcc, gdb, make.

Plus: binutils (ar, nm, objdump, objcopy), valgrind, strace, autotools, cscope/ctags.

Languages

C, Bash

Plus: Assemblers (MIPS, ARM, x86), Python, sed, awk

Network concepts

OSI 7-layer model and TCP/IP stack concepts. Berkeley socket API.

Linux network configuration and debugging tools: ifconfig, ip, arp, route, traceroute, ping, tcpdump, host, dig, netcat, wireshark.

Plus: Ethernet, TCP and UDP protocols understanding.

Operating Systems

Understanding of the following concepts: kernel and user context, process scheduling, interrupts, messages, pipes, sockets, shared memory etc.

Plus: In-deep Linux kernel understanding, knoledge of at-least two kernel subsystems.

Plus: basic RTEMS knowledge.

HW-related experience.

Plus: PCI, PCIe, basic Verilog knowledge.

Documentation

Ability to write intelligibly enough in Russian/English.

Communication.

In-company and customer email communication is done in English.

Last/current projects

Plus: participation in an opensource project (link to the project page is required).

Our customers trust us