Sergei Alirzaev

e-mail: [email protected] xmpp: [email protected]

Embedded systems engineer, striving to create elegant control systems and automate manual labor.

Education 30 Phys-Math Lyceum (Saint Petersburg, Russia). ITMO University, Information technologies faculty; dropped. I’ve obtained the most of my relevant skills and knowledge by tinkering around with different technologies and developing open source projects.

Knowledge and skills The English language (Cambridge English: First™ level or so; haven’t gone through an internationally recognized certification yet). Native Russian. Familiarity with computer science (basic algorithms and data structures, foundations of computer architecture). Practical programming, analog/digital electrical engineering skills. Significant commercial and open source software development experience. Ability to develop electronic devices from scratch and build prototypes.

Programming languages and frameworks

Excellent C knowledge. Considerable knowledge of C++, Java, Haskell, unix shell (POSIX shell, bash, zsh). Developed software based on glib/gtk+, Qt.

Standards and protocols

I’m familiar with POSIX, Internet (OSI, Ethernet/IPv4,6/TCP/UDP) and World Wide Web (HTTP, *-RPC, REST…). Implemented TR-069, TR-098 family of protocols. Created PCI, USB, SPI, I2C bus drivers or devices.

Operating environments

Used UNIX-like operating systems a lot (>10y, mostly Gentoo), know the traditional user space software, including GNU coreutils. Implemented board-specific code and drivers for the Linux kernel, user- and kernel- level test suite for LynxOS. Worked with RTOS (MQX, FreeRTOS, TNkernel, ChibiOS) and freestanding environment on embedded systems.

Tools

GNU toolchain (gcc, binutils, gdb, valgrind, strace…), version control systems (subversion, git, mercurial, ), task tracking systems, IDE/editors (vim, xmonad, emacs, Eclipse), build automation tools (BSD/GNU make, CMake, ), documentation generators (LATEX, markdown, kicad, , haddock, javadoc). Friends with profilers, static analyzers and disassemblers. Able to use oscilloscopes, logic analyzers and soldering tools. Work experience Embedded systems developer НПК Ротек August 2014 Moscow

Ported a buildroot-based GNU/Linux system to another ARM board. Implemented a STM32-based I/O extender firmware (TNkernel) and a driver for the Linux kernel. Reverse engineered and implemented protocols for 433MHz sensors. Implemented a reverse proxy for OPC UA. Revised and customized the GSM base transciever station monitoring automation and environment management systems, debugged printed circuit boards, performed product testing and built automatic testbeds.

CPE/VoIP engineer QTECH September 2013 Moscow September 2014

Revised and adapted the Ethernet routers and VoIP-gates firmware (C and busybox, mostly; lots of random fixes and customizations of different networking services, TR-069 implementation). Maintained and improved the development infrastructure (build server, automatic CPE testing system).

C developer Интеллектуальные Коммуникации February 2013 Moscow August 2013

Took part in development of the HAL for AVRand ARM Cortex M3 based robot development kit. Implemented peripheral drivers, ported libc, organized release testing.

C developer Mobix Chip LLC March 2012 Moscow February 2013

Developed peripheral drivers of a custom wireless communication chip for MQX, implemented 802.16.4- based protocols, created a test suite for development and debugging the higher protocol logic on a POSIX system.

C developer Auriga inc. June 2011 Moscow September 2011

Took part in a LynxOS PowerPC board supply package DO-178B certification.

C, C++ developer ООО ”СМП” December 2010 Zelenograd April 2011

Worked on a video surveillance system software (C, C++/Qt). Ported the software on a newer SoC-based board (Freescale i.MX51).

Java, C++ developer Automated Intelligence Systems November 2009 Saint Petersburg April 2010 Implemented soft-realtime stock exchanges data retrievers, backends for an algorithmic trading system (SQL, protobuf, hdf5).