magola.a.s@gmail.com | linkedin.com/in/alexander-magola | Armenia, Gyumri
A multi-skilled Linux software engineer/developer with 20 years of experience. I always pay attention to the quality and performance of a code/product. I like designing/improving project architecture, conducting research for solving project problems and simplifying complex things. And I prefer simple but flexible solutions when possible.
Interested in many things, including: Linux and relative technologies, distributed/networking/sync/etc technologies/systems/applications/etc, high load, low-latency, optimization, embedded systems, automation, open source, etc.
Senior Software Engineer at EPAM Systems [Armenia, Yerevan]
Nothing to describe here yet.
Open Source Developer
Developing some open source projects. Links on: GitHub, GitLab
Made some performance experiments with benchmarks in C++, for example benchmarks of ways to solve the task of reading big log files and filtering them with a wildcard pattern: fwcmatch.
Made my own build system ZenMake for C/C++ and some other languages (Fortran, D) supporting GNU/Linux, MacOS and MS Windows. Was focused on making the build system easy to use, configurable via flexible config files and removing the need to know any programming language. Made it ready to use with detailed documentation and many examples. The unit/functional tests are regularly run in CI and cover more than 80% of the code. This system is based on Waf which is used as a framework/engine.
Linux Team Leader at Signatec [Russia, Novosibirsk]
Managed a long-term Linux project of parsing/analyzing/filtering of network traffic with a team of 5 C/C++ developers and 1-2 QA testers. This project had strong requirements for performance and stability. Designed many parts of the architecture. Developed some important/critical code. Reviewed different components of the project. Introduced several things to improve the quality of the project: GTest, gcov, LLVM Clang static analyzer, cppcheck, AddressSanitizer/LeakSanitizer (GCC/Clang), -Werror. Helped the team improve some technical knowledge. Conducted daily meetings to review current state of the project. Made many important decisions including resolving a problem of memory fragmentation.
Managed/improved my team workflow including:
Experience in brief:
C++ Linux Software Engineer at Signatec [Russia, Novosibirsk]
Was a main developer and one of the architects of a system of distributed services DSS (for C++ SOA solutions on Linux, similar to WCF in .NET). The system allowed different services to communicate with each other using TCP/UDP/Unix (Local IPC) sockets and Shared memory by configuring files in XML/JSON formats. (C++, Linux)
Managed sub project of web interface for DSS with one Python developer.
Was involved in development of some base Linux/POSIX C++ libraries for local needs like networking, date/time, filesystem, threading, etc. (C++, Linux)
Initiated and configured Redmine as an issue tracker for use in our team. Helped the team learn how to use it. (Debian Linux, Redmine, Nginx)
Made useful build system BDS based on Waf for C/C++ projects on Linux. This system was successfully used for local C/C++ projects all the time I worked for this company. (Python, Waf, Linux)
Project Manager/Team Leader at Internet Service [Russia, Novosibirsk]
Designed architecture and developed part of the back-end of a distributed DNS system.
Managed web searching project Assista (similar to google search) with team of 2-5 front-end/back-end developers. Improved/developed the project core search engine solution based on Sphinx (C++ open source search engine). Carried out some sysadmin tasks for the project remote computer cluster with more than 100 servers (CentOS) using bash/ssh/perl. Improved the project architecture.
Software Developer at Internet Service [Russia, Novosibirsk]
Participated in a startup project of drawing web application with ability of recognition of hand-drawn shapes. Made experimental module of recognition (C++, OpenCV, Linux).
Worked within a development team of a multi chat client-server application Avago supported audio and video streaming. Was involved in development of both client side (C++, WTL, FFmpeg, MS Windows) and server side (Java, Red5, MySQL, Linux) of the application.
Software Developer at Technodesign [Russia, Komsomolsk-on-Amur]
Participated in several projects for local billing system.
Software Developer at Komsomolsk-on-Amur State Technical University (KnASTU)
Was a postgraduate in KnASTU and had a task to develop a calculation program of stress-strain state of solid materials with cracks based on the boundary element method.
Komsomolsk-on-Amur State Technical University (KnASTU)
Last modified: 2023-04-09