Description

Job Description

Essential Functions

Design, develop, document, test, and debug new and existing software systems and applications.

Serve as technical expert on development projects.

Drives full development life cycle including requirements analysis and design.

Write technical specifications based on conceptual design and stated business requirements.

Support, maintain, and document software functionality.

Identify and evaluate new technologies for implementation.

Analyze code to find causes of errors and revise programs as needed.

Drive software design meetings and analyze user needs to determine technical requirements.

Consult with end user to prototype, refine, test, and debug programs to meet needs.

Complies with all security policies and procedures, to ensure that the highest level of system and data confidentiality, integrity and availability is maintained.

Desired Skills

Automation

Ability to use Unix/Linux command line programs and create/edit scripts.

Able to analyze results of automated deployment scripts and makes modifications.

Design

Able to prepare detail design documents from requirements.

Familiar with Reporting tools such as Crystal Reports, Jasper Reports, BIRT, etc.

General understanding of software environments and network topologies.

Able to demonstrate OOA/OOD skills.

Demonstrable understanding of distributed, component based architecture

Working knowledge of networking and/or telecommunications protocols

A solid understanding of event driven / asynchronous programming and multi-threading

Demonstrable Technical Design Skills (UML Experience a Plus)

Familiar with TDD/BDD.

Familiar with SOA framework, web services, etc.

Coding

Common Developer Skills

Testing

Able to maintain test scripts as needed.

Prepares test strategy, test plan, test cases, and test summary documents.

Experience with automated functional software testing frameworks, such as Cucumber, Selenium, etc.

Performs unit, functional, load, user interface, performance, regression and system integration testing on new code or modified code prior to production releases.

Produce and report project test metrics.

Possess advanced knowledge of QA/QC techniques; certifications preferred

Assists new staff on testing techniques and test methodologies

Support

Responsible for responding to situations in a timely manner, and meeting predetermined deadlines

Ability to support/maintain existing products and add new features as requested by customers.

Central point of contact for support of UAT/production applications as needed

Keen troubleshooting skills across tiers/domains

Ability to work on multiple projects

Collaboration

Agile/Lean methodologies experience

Solid understanding of an iterative software development process

Able to guide the team to produce estimates for all project activities and tasks.

Responsible for eliciting user and functional requirements and ensuring they consistent and complete

Mentor and monitor Software Engineers in the technical aspects of their assignments

Education

Bachelor's degree