A position of software developer
10 years of experience as a software developer. Range of skills from native Linux GUI to Java/Swing and embedded applications.
Software developer and architect.
As a software engineer I architected and played the leading role in the development of a hard disk drive testing application. The application supports a variety of hardware platforms, ARM and Intel based with various network connectivity schemes (Ethernet, USB). The application uses client-server architecture with a custom embedded Linux running on the target hardware, generic Linux distribution running on the server machines and Windows running on client desktops.
As a part of this project I completed the following subprojects:
Provided a vision and designed the architecture of the application as a whole. Played key role in implementing all layers of the application starting with embedded Linux OS and ending with Java server code and Java/Swing Linux/Windows client.
Developed the host server application in Java. The host server is a heart of the system that supports individual HDD testers on one hand and the client GUIs on the other. The host server and the top layers of the system use Java with RMI for distributed objects communication. The host server provides services to the lower levels via XML RPC.
Developed in Java software modules interfacing with a variety of hardware devices, such as environmental controllers, power system simulators, power margin cards, error injection boards, etc.
Developed in Java a number of host server plugins interfacing with databases, middleware, file and Web servers.
Developed in Java customized implementatons of TFTP and DHCP servers for both Linux and Windows platforms.
Developed in Java port a forwarding server.
Developed in Java/Swing/Windows the host server management console application.
Developed in Java/RMI/XML RPC a custom remote execution server for Windows.
Developed the target server software in Python. The tester server and the middle layer of the system is written primarily in Python and the entities communicate with each other using XML RPC.
Developed the target server software on the ARM target side in C++, STL, Pthreads, ARM Linux 2.6.
Developed a layer of Python code that abstracts the test script developers from the details of particular hardrware platfrom.
Created a custom Linux distribution for both target hardware platfroms (Intel and ARM)
Completed ARM Linux kernel port to a propritary Seagate hard disk drive testing board. Reverse engineered the board hardware. XScale IOP321, ARM Linux 2.6, C.
Developed drivers for power control cards hardware, C++, Python
Developed a serial port driver/server abstracting serial ports to a TCP/IP sockets, C++, Pthreads
Wrote boot loader for ARM Linux via USB on the host and target side. Developed CRT code to allow for bare-board compillaton with gcc. Linux 2.4, ARM Linux 2.6, C, gcc, ARM assembly.
Wrote device driver for Cypress FX2 USB FIFO device on the target side. ARM Linux 2.6, C.
Developed a tunnel software to support TCP/IP network connectivity via USB link between Linux host and multiple ARM Linux targets. This included creating my own SLIP-like wire protocol on the top of USB. The interface on the host included a server with SMTP-like command interface to manage booting and shutting down ARM targets and establishing TCP/IP links. C++, STL, Pthreads, Linux 2.4, ARM Linux 2.6.
Maintained ARM and Intel toolchain, build system, third party libraries used by team members, make files, source code releases, created final software releases as RPMs.
UNIX systems engineer. System management tools developer. Some of the completed projects include:
Software developer.
Software developer.
Scientific researcher and software developer in a team processing radio astronomy observational data.
Software developer in a geographic information systems development team.
September 86 - March 93. St.Petersburg State University, St.Petersburg, Russia, Physics Faculty, Department of Mathematics and Mathematical Physics. Masters Degree in Physics. Graduation with honors.
September 2000 - December 2000. Classes at CU-Boulder:
Phone: 1-720-938-5489
E-mail: anton@solovyev.com
Work status: US permanent resident