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
Bachelor's degree