Applies specialized knowledge to conceptualize, design, develop, unit-test, configure, and implement portions of new or enhanced (upgrades or conversions) business and technical software solutions through application of appropriate standard software development life cycle methodologies and processes. Interacts with the Client and project roles (e.g., Project Manager, Business Analyst, Data Engineer) as required, to gain an understanding of the business environment, technical context, and organizational strategic direction. Defines scope, plans, and deliverables for assigned components. Understands and uses appropriate tools to analyze, identify, and resolve business and or technical problems. Applies metrics to monitor performance and measure key project parameters. Prepares system documentation. Conforms to security and quality standards. Stays current on emerging tools, techniques, and technologies.
* Participates as a member of development team or teams; may lead a small development team.
* Designs units for others. Completes development to implement complex components.
* Contributes to design activities; may design solutions.
* Develops independently; participates in code reviews and may lead code reviews. May lead and provide mentoring and guidance to less senior developers.
* Designs, prepares and executes unit tests.
* Applies in-depth or broad technical knowledge to maintain one or more technology areas (e.g. Web-site Development).
* Applies company and 3rd party technologies to software solutions of moderate complexity.
* Independently implements end-user or enterprise solutions complexity or services prepared by more senior technologists for more complex solutions.
Education and Experience Required:
* Typically a technical Bachelor's degree or equivalent experience and a minimum of 6 years related experience or a Master's degree and a minimum of 4 years of experience.
Knowledge and Skills:
* More than 6 years experience writing code using languages such as (and not limited to) COBOL, PL/1, Java, C, C++, C#, VB.Net.
* Ability to work with Web- development tools for new applications.
* Basic Understanding of RDBMS databases such SQL Server and Oracle. Basic understanding of modern software design and development methodologies.
* Experience on one or more full release project life cycles.
* Strong understanding of modern SCM (software configuration management).
* Basic understanding of testing tools and unit and integration test scripting, and testing methodologies.
* Experience using an Integrated Development Environment (e.g., Eclipse, Visual Studio).
* Strong understanding basic Database Administration. Able to apply consistently quality and security standards.
* Good verbal and written communication skills.
* Developing general project management/team leader skills. Ability to work effectively in a team and with clients.