Craftsmanship
- Mathematics: logic and foundation of mathematics, mathematical analysis, abstract algebra, algorithms, discrete mathematics, statistics. Able to work with scientific texts.
- Programming languages: ANSI C89/C99, POSIX sh / GNU Bash, Java, Python, JavaScript, Elisp.
- IDE/editor: GNU Emacs, Apache NetBeans, IntelliJ IDEA.
- Build tools: GNU Make, Apache Maven, Apache Ant, Gradle.
- Version control systems, patch-management: diff/patch, Quilt, CVS, SVN, Git, Mercurial, Mercurail queue (MQ), vc-mode.
- SQL: ANSI SQL, MySQL/Oracle/Postgres dialects, PL/SQL / PL/pgSQL.
- DB: Oracle 11/12, PostgreSQL, MariaDB, SQLite.
- Markups: reStructuredText, Markdown, Asciidoc.
- Structured text formats: INI, XML, YAML, JSON.
- WEB: HTML, CSS, SVG.
- Utilities: from POSIX (grep/sed/awk/find), ack, ag, ripgrep, ctags, xmlstarlet, xsltproc, jq.
- Debugging: gdb, strace, ltrace, windbg, procexp, procmon, jdb, btrace, VisualVM, built-in NetBeans/IDEA debuggers.
- Java libraries and frameworks: Spring Framework, Spring Data, Spring Security, Spring Boot, Spring Cloud, Hibernate, EBean, supercsv, Apache POI, Lombok.
- JS libraries and frameworks: jQuery, jQuery UI, undescore.js, DataTables.
- Testing: JUnit, Hamcrest, AssertJ, Spring Testing Framework.
- OC: GNU Linux / Debian, Windows (MSYS/Cygwin/WSL).
- Web servers: Lighttpd, Apache.
- Java application servers: Tomcat, Jetty.
- Automation, configuration management: Ansible, Bitbucket Pipelines.
- Cloud: GCP.
Worked with
- Programming languages: Windows batch, Windows WSH/WBS, Assemblers (i686, AMD64/EM64T, Itanium, IBM Power, Sparc 32/64-bit, ARM7+Thumb2), C#, Perl, Ruby, PHP.
- IDE/editor: Vim, Microsoft Visual Studio, Eclipse, IAR Embedded Workbench, Keil Studio.
- Build tools: autotools (automake/autoconf/libtool), SCons, CMake, Grunt, npm, yarn, heroku-cli.
- Packaging: shell .run file, Cygwin cygport, Debian deb, NSIS.
- API: libc, pthread, Java EE, Win API, GTK 2.x/3.x, QT 4.x, PKCS 11.
- Browser API: NPAPI, XPCOM, ActiveX, XUL.
- Bug tracking systems:Trac, Redmine, Debian BTS, Bugzilla, Mantis, Roundup, Jira.
- Testing: Valgrind, DBUnit, NUnit, QUnit, Tsung.
- Linting: lint, cppcheck, checkstyle, PMD, findbugs
- Platforms: NetBeans platform, Mozilla Platform.
- OS: FreeBSD, Solaris, AIX, zOS.
- Web servers: NGINX.
- Java application servers: JBoss AS 7.
- Mics servers: ProFTPD, INN2.
- Processor architecture: i686, AMD64/EM64T, Itanium, IBM Power, Sparc 32/64-bit, zSeries, ARM7/Thumb.
- Microcontroller architecture: ARM7TDMI, Cortex M3 SAM7 / LPC214x / STM.
- Text formatting languages, markups: man/troff, GNU Texinfo, Plain TeX/LaTeX, DocBook.
- XML: RelaxNG, XSLT, XPath, DocBook.
- Vitalization: VirtualBox, VMware, QEMU, Cygwin, WSL, KVM, Docker.
- Reasoning, proof assistants: Isabelle/Isar.
Speak
Ukrainian and Russian are mother tongues, English is CEFR C1 (Advanced).Employment
- 2017-02-xx - present, Smart Agent, remote.
- Duties:
-
- Back-end developer + devops + troubleshooter.
- Involved into:
-
- Development and support of travel agent application's back-end & infrastructure.
- Developing integrations to Sabre / Travelport GDSes.
- Planning and applying DB / infrastructure migrations.
- Planning and conducting hiring tech interviews.
- Achievements:
- Became trusted although worked full-time remotely. Got experience of providing solutions for production problems. Hardened skills in Java dev-stack & Cloud soluitons.
- 2012-09-xx - 2015-04-xx, PJSC CB "PrivatBank", Ukraine.
- Duties:
-
- Requirement gathering, design, implementation and support.
- Occasionally worked on test automation and improvement of build processes.
- Involved into:
-
- Developing risk management and analysis system on Basel II Accord.
- Supporting internal libraries.
- Training of employees.
- Achievements:
- Switched from low level system programming to application programming. Learnt Java EE and Web software technology stacks.
- 2005-12-xx - 2012-02-xx, BIFIT Ukraine.
- Duties:
-
- Requirement gathering, design and implementation.
- Working with normative documents, preparing of program documentation (GOST 19.xxx).
- Interviewing and training of new employees.
- Administration of development infrastructure.
- Involved into:
-
- Deleloping hi-speed cross-platform cypto library "Гепард 1.0", which implement GOST 28147-89, GOST 34.311-94, GOST 34.310-95, GOST 34.310-2001 and DSTU 4145-2002 standards. Library have expert opinion from ГСССЗИ of Ukraine.
- Deleloping USB-token "iBank 2 Key" based on ARM7 microcontroller, which implement GOST 28147-89, GOST 34.311-94, GOST 34.310-95, GOST 34.310-2001 and DSTU 4145-2002. USB-token have expert opinion from ГСССЗИ of Ukraine.
- Integrating crypto libraries into "iBank 2 UA" banking system on Java and .NET platforms.
- Construction of secure communication protocol, based on SSL/TLS.
- Implementing native Add-on for desktop browsers on desktop OSes using NPAPI, XPCOM и ActiveX API.
- Achievements:
- Became a software developer despite educational qualification as a mathematician, worked on long-term projects, trained a dozen of new employees, learned variety of software development stacks, got experience with different hardware platforms, protocols, software solutions.
Education
- DNU (Dnipro National University), Mechanical-mathematical faculty, I've got master's degree in mathematics, 2001-2006.
- School (1991-1999), lyceum (1999-2001), I participated in school Olympiad by physics and mathematics with 3rd place on region level.
My projects and involvement
- Tech blog.
- Scores on StackOverflow, StackExchange, Project Euler.net.
- 2048-js-ai - AI experiments for "2048" game.
- IT-recipes, utilities, dot-files, .emacs and other source code.
- Profiles on GitHub, SourceForge, footprints on the Internet.
Vita
- Good about me: like to make things right or even better, listen to others, accept faults.
- Bad about me: try to understand how something works regardless spent time, unproductive on very short deadlines.
Hobbies and interests
Spend time at a PC screen on reading, learning, blogging & hobby software development.
Play keyboard, work on electronics hobby project, work in a garden, cook tastiness.