MIKHAIL V SOKOLOV
Chandler, AZ *****, Phone: 703-***-****;
E-mail: *******.**.**@*****.***
www.linkedin.com/in/mikhailsokolovnn
SOFTWARE DEVELOPER
SUMMARY:
●15+ years of experience in software engineering, with more than 10 years specializing in embedded, real-time systems and low-level software, including expertise in multi-processing and multi-threading.
●12+ years of expertise in network engineering and system administration
●Over 8 years of experience managing complex projects in telecommunications, CCTV, networking, and medical devices (including blood pressure monitors).
SKILLS:
●Programming Languages: C (preferred), Java, C++, Bash, Ruby, Python, Assembler
●Operating Systems: Linux (Ubuntu, Debian); RTOS: LynxOS, VxWorks, FreeRTOS, Android; Virtualization: VmWare, KVM, QEMU, Docker
●Networks / Protocols : TCP/IP (VLAN, RSTP, IP, TCP/UDP, SNMP, DHCP, DNS), MPLS; RS-232/485, CAN, I2C; NIC, RFID, switches, routers, NAT, firewalls.
●Security: OpenSSH, VPN, SSL/TLS, LDAP, SSO, IDS/IPS, fail2ban, Nessus
●Databases: SQL, Postgres, Oracle, Redis
●Tools/ Frameworks: Eclipse, MS Visual Studio, GNU (GCC, Make, gdb), SVN, Git, Wireshark, tcpdump, Selenium; Jira;
●Hardware / Equipment: CPU/MCU: Intel 8/16/32/64-bit, Motorola 68k, ARM Cortex; traffic/signal generators, oscilloscopes, multimeters, power supplies
●Methodologies: Agile (Scrum, Kanban), Waterfall
PROFESSIONAL EXPERIENCE
Principal Software Engineer 10/2020 – 03/2025
Microchip Technology Inc (Chandler, AZ)
Responsible for maintaining and developing new features for the low-level Java and C++ components of MPLABX, Microchip’s proprietary IDE for embedded applications on PIC and ARM microcontrollers. Focused on the libraries and infrastructure managing connections between MPLAB X and external boards, emulators, programmers and HW debuggers (USB, JTAG, ITM/SWO, USART, SPI).
Resolved software bugs caused the race conditions, ensuring system stability and reliability.
Streamlined architecture by replacing a resident program that monitored interrupts for new devices with a simplified polling mechanism.
Created a function for network device detection via mDNS, enhancing device connectivity and management.
Environment: Windows, Linux (Ubuntu); C/C++, Java, Python; Bitbucket, LibUSB / WinUSB, JNI (Java to C++ interface), STL
Software Engineer (developer, tier 2/3 support) 08/2017 – 09/2020
Brooks Life Sciences (Chelmsford, MA) acquired a FreezerPro – RURO developed Laboratory Information Management System (Web-based UI for DB)
●Develop a new features for Laboratory Information Management System (new dialogs/forms - JavaScript + ExtJS; backend – Ruby on Rails + PostgreSQL + Redis; connection to local equipment – TCP/IP, WebSocket)
●Bug fix for the local equipment (RFID readers) software – C/C++, embedded Linux, Java.
●Build, test & deploy new releases (GitLab CI/CD + Ansible)
●Support customers (tier 3 support) and colleagues
●Administrate clouds VMs (200+ production sites in DO, a few – in Azure & AWS)
●Investigate customer complaints, test software; report bugs & fix it
Environment: Linux (Ubuntu), VMware, Digital Ocean, Azure, AWS; Nginx, Puma, Postgres, Oracle; Ruby on Rails, JavaScript, HTML, CSS, C++; Ansible, Nessus, Git
Technical Support Manager/Software Engineer 02/2016 – 08/2017
RURO (Frederick, MD) a developer of a few WEB (Virtual Machine or Cloud -based) laboratory (medical/pharmacological) information software solutions (LIMS).
●Supported customers: answered questions, directly modify software configuration
●Developed a new features & fixed a bugs (Ruby on Rails, JavaScript, Java, C++)
●Solved administrative tasks for customers (Virtual Machine/Cloud & embedded applications – VmWare, Digital Ocean, Linux, Nginx, Puma, Postgres)
●Investigated customer complaints, test software and report bugs
●Tested new releases (including security – Nessus)
●Developed “How To” documents & internal Wiki pages
●Designed and developed specific automation testing framework for testing RURO web applications based on Sahi (JavaScript); tested embedded applications
●Developed a batch of auto-tests (used for regression test scope)
●Managed Support Team (3 direct reports)
Embedded Software developer 05/2015 – 11/2015
Auriga (Woburn, MA, USA) is an outsourcing provider (8 offices in Russia, Europe and USA; 300+ employees; customers: IBM, Dräger Medical, Lynx Software Technologies, BroadVision; I worked in Russian office)
●Developed grub2 module to download from LynxOS filesystem;
●Ported LynxOS drivers from PowerPC platform to x86 (PCI/X-VME bridge)
Embedded Software engineer/QA Engineer 09/2011 – 04/2015
Mera NN (Nizhny Novgorod, Russia, one of the largest provider of outsourced software development services in Russia: 1200+ software engineers; customers include Avaya, Ericsson, Mitel, Plantronics)
●Developed a new features & provided Tier 3 maintenance for the embedded software for the telecom TCP/IP L2 10G router, investigated customer-reported issues (established environment, including hardware configuration and traffic; reproduced the issue, and analyzed logs), found root cause, developed/corrected the code, unit-tested and debugged it
●Tested telecom embedded software (developed auto tests - Java+Junit/JCAT)
●Developed the corporate training program (TCP/IP)
Environment: Linux (Debian), VxWorks (RTOS), C/C++, real-time, multi-threading, Java; ClearCase; PowerPC, Broadcom (ARM Cortex inside), IPMI (FPGA); TCP/IP L2/L3, PHY, I2C
Head of Nizhny Novgorod branch 09/2006 – 06/2011
Group of companies VeD (Moscow, Russia; system integration business in telecom, network, CCTV)
Managed projects in telecommunication (PBX, VoIP), CCTV, local area networks.
Communicated with customer, detected the customer’s demands, chose the best suitable solution (equipment and software), installed and configured it, tutored and supported customer.
Customized and fixed open-source systems (VOIP: Asterisk, CCTV: ZoneMinder) – C/C++
Different companies 1986 – 2006
Participated as a developer in the next projects:
Software for physical experiment data collection (CAMAC) – C, assembler, Fortran; ADC/DAC, counters, external data storage.
Communication software based (Kermit protocol) for 8/16-bit computers – C, assembler; RS-232/UART
Anti-malware (computer viruses) software – C, assembler, reverse engineering
Copy protection tools – C, assembler, FreeDOS
Developed a keyboard, printers, ROM writer, RS-232 drivers
EDUCATION
Master’s in Theoretical Physics, Nizhny Novgorod Lobachevsky University, Russia