Develop tools and approaches for converting legacy ALGOL and COBOL applications to C++ and Java on Linux/Windows/Unix platforms and apply conversion tools to convert/re-host large-scale legacy applications from UNISYS and IBM mainframe platforms to UNIX/LINUX/WINDOWS platform and integrate converted applications on target platforms with custom and 3rd party software; design, develop, fix bugs, and make changes to Java and/or C++ code; use Java and C++ to build multi-threaded, low latency, high transaction services; design and implement compilers; create and run unit tests using Junit; build offline processes that efficiently parse flat files and storing them into Databases; perform code and design reviews with peer senior software developers; analyze and modify legacy applications code (COBOL, ALGOL); analyze and tune performance of applications and their individual components; use compilers theory, machine
learning, data-mining techniques including collaborating filtering to build similarities between items, and theory of operations techniques to develop effective algorithms for parsing, and analyzing ALGOL and COBOL code, and for generating equivalent C++ and Java code; design architecture for complex distributed Java based solutions, and implement efficient and robust tools that provide runtime environment for executing converted code on target UNIX/LINUX/WINDOWS platforms; design and implement tools for mapping databases on mainframe platform to relational database on LINUX/WINDOWS/UNIX platforms and tools for accessing these databased from converted code; design logical and physical relational data models for RDBMS; optimize SQL queries for performance in a RDBMS; use databases including Berkeley DB to access persistent state in a high transaction environment; design and implement tools for analyzing and documenting legacy applications by a variety of automated and semi-automated
approaches; develop facilities for interoperation between converted C++ and Java code; participate in all phases of design and development including requirements gathering, analysis, design, programming, testing, documentation, and troubleshooting/resolution; design, develop, modify, evaluate, and test programs; prepare technical design documentation for programs; recommend changes in existing programs; conduct performance analysis and performance tuning of applications on Linux/Windows/Unix platforms; conduct secure coding reviews of custom and converted code; analyze legacy mainframe applications and identify components for conversion; analyze conversion tools and compilers logs and modify legacy and converted code as needed; install, configure and integrate custom tools on Linux/Windows/Unix platforms that converted code requires to operate; perform software design and development activities by utilizing OO and SOA principles and design patterns, and using UML for documenting the
solutions; design and enforce architectural guidelines for software development teams; build detailed product road map for engineering team, and coordinate technical teams to guide software development process, enforcing software development standards; efficiently interface with lines of business and business customers; develop materials for products marketing and demo versions of the software products.
Bachelor’s degree in Computer Science or Information Systems or closely related field or foreign equivalent plus 5 years of progressive experience to include designing software using OO and SOA patterns; using UML to describe and communicate software system architecture; designing architecture for complex distributed Java - based solutions; designing and enforcing architectural guidelines for software development teams; coordinating a technical team to guide software development process, enforcing software development standards; building agile development process methodology in a team; efficiently interfacing with lines of business/business customers; business analysis, including writing and reviewing business and technical requirements specifications; developing materials for products marketing and demo versions of the software products; designing, developing, fixing bugs, making changes to Java and/or C++ code;
using modern version control systems; using Java and/or C++ to build multi-threaded, low latency, high transaction services; designing logical and physical relational data models for RDBMS; optimizing SQL queries for performance in a RDBMS; creating and running unit tests using Junit; building offline processes that efficiently parse flat files and storing them into Databases; building detailed product road map for engineering team; project planning and team progress reporting; introducing and enforcing development KPIs; performing code and design reviews with peer senior software developers; using data-mining techniques including collaborating filtering to build similarities between items; using databases including Berkeley DB to access persistent state in a high transaction environment; analyzing and modifying legacy applications code (COBOL, and/or ALGOL); analyzing and tuning performance of applications and their individual components; converting large-scale legacy applications.
Apply for this position