This position is a top technical role within our organization that requires significant energy, technical excellence, proven technical leadership and professional verbal and written communication skills. This role provides application architecture and technical oversight for design, development, and maintenance of applications for new and enhanced products. The Enterprise Software Engineer performs hands on development demonstrating coding and technology best practices using industry recognized software toolsets. This position also provides leadership in the software engineering organization and leadership to software engineers through mentoring and training.
- Ability to lead and contribute toward the architecture principles, design standards, and coding best practices for the Software Engineering department.
- Ability to envision project goals, product architectural solutions, and focus on details and tasks to ensure successful implementation.
- Ability to perform hands on development demonstrating highly efficient coding capabilities and industry best practices using multiple software applications.
- Ability to work independently and handle multiple deadline-driven projects simultaneously and to proactively address potential deadline risks posed by technical challenges on any of the projects.
- Ability to articulate complex problems through application architecture artifacts and detail design documentation communicating viable architecture and design approaches in a clear and concise manner while ensuring the solution fits within the Enterprise Architecture vision.
- Ability to construct automated tests using standard testing frameworks and to train and mentor other engineers in the best practices for Test Driven Development techniques.
- Enhance and mature the Agile software development lifecycle within Software Engineering department by applying industry best practices & processes.
- Ability to identify inefficiencies in quality, processes and systems, and be able to recommend and implement solutions through a continuous improvement mentality.
- Knowledge of scientific approach to problem solving, big data technologies, alternative data storage technologies is a plus.
- May perform other duties as required.
- Complies with all security policies and procedures, to ensure that the highest level of system and data confidentiality, integrity and availability is maintained.
- Bachelors Degree in Information Systems or related field or equivalent experience
- Technical expert with multiple years of experience leading architecture definition, detail designs, testing, and development in multiple languages (certification or extensive documented experience)
- Professional interpersonal skills along with excellent verbal and written communication skills
- Approved background and drug screen is required.
- Java 5 and above language
- OOA/OOD/Domain Driven architecture and design
- Object Oriented and Software Engineering principles
- SOA specification, design patterns, and good practices
- J2EE specification, design patterns, and good practices
- Distributed system design skills
- Problem solving and diagnostic methods
- Written and verbal communication skills and documentation practices
- Agile software development philosophy and methods including Scrum, Test Driven Development and automated software testing (unit, integration and functional)
- Very high volume information services where performance, scalability, availability, quality, security and reliability are key concerns
- noSQL solutions like Hadoop or graph/RDF
- Parallel programming (MapReduce etc)
- Semantic Web modeling/programming
- Linux environment and tools
- JBoss SOA-Platform (Application Server, ESB) and Rules Engine
- ETL, data quality or MDM tools
- Alternative programming languages – Groovy, Scala, Clojure a plus
- Big data environments such as Hadoop/MapReduce, Semantic Web/RDF technologies & Machine Learning a big plus
- Domain Specific Languages a plus