Job Summary
• This role is responsible for designing, developing, testing, and maintaining software applications that cater to specific user needs or business requirements. The role plans, executes, and monitors software development projects, ensuring they are delivered on time, within budget, and according to quality standards. The role identifies potential risks and challenges in software projects and implement strategies to mitigate these risks for successful project outcomes.
Responsibilities
• Oversees the software application development projects and team of junior developers.
• Allocates resources to complete programming projects, and designing detailed plans to ensure applications are functioning properly.
• Provides technical support for the development and implementation of applications dealing with complex high-performance computing systems.
• Defines and documents product requirements, user stories, and epics and works closely with the agile team to execute on the product backlog.
• Leads multiple project teams of other software applications engineers and internal and outsourced development partners responsible for all stages of design and development for complex products and platforms, including solution design, analysis, coding, testing, and integration.
• Manages and expands relationships with internal and outsourced development partners on software applications design and development.
• Reviews and evaluates designs and project activities for compliance with applications design and development guidelines and standards; provides tangible feedback to improve product quality and mitigate failure risk.
• Provides domain-specific expertise and overall software applications leadership and perspective to cross-organization projects, programs, and activities.
• Drives innovation and integration of new technologies into projects and activities in the software applications design organization.
• Provides guidance and mentoring to less- experienced staff members.
Technical Skills -
Testing Techniques and Tools
Manual Testing: Understanding different types of testing (functional, regression, unit, integration, etc.)
Automated Testing Framework: Familiarity with automation tools like
TestNG, Rest Assured, API, JMeter for Performance testing
Test Case Management/ Defect Tracking: Writing clear and effective test cases, scenarios, and plans, often using tools like JIRA, TestRail.
Programming Knowledge
Scripting Skills: Knowing a programming language (Python, Java, JavaScript) helps in writing automated test scripts.
API Testing: Familiarity with testing APIs using tools like Postman, SoapUI for checking endpoints and responses.
Methodologies and Best Practices -
Agile and Scrum: Knowledge of Agile methodologies and participation in Scrum ceremonies (sprints, stand-ups, retrospectives).
Behavior-Driven Development (BDD): Experience with BDD practices for writing test cases before the code is developed.
Continuous Integration/Continuous Delivery (CI/CD)
Familiarity with DevOps practices and tools (Azure Pipelines) to integrate testing into the software development lifecycle.
Soft Skills -
Analytical Thinking
QA professionals need strong analytical skills to break down complex systems, identify edge cases, and think of possible failure points.
Attention to Detail
Identifying minor issues or inconsistencies in product functionality, design, or performance that may lead to bigger problems.
Communication
Clear Reporting: Being able to effectively report defects, communicate with developers, and explain bugs or issues is critical.
Collaboration: Working with cross-functional teams (developers, product managers, designers) requires good teamwork and communication.
Problem-Solving
QA engineers should have a methodical approach to solving problems, thinking critically about how to recreate issues and find root causes.
Adaptability
QA professionals need to adapt to new technologies, tools, and workflows as software development practices and environments change.
Time Management
Managing multiple testing tasks within tight deadlines is essential, especially in Agile or continuous integration environments.
Education & Experience Recommended
• Four-year or Graduate Degree in Computer Science, Information Systems, or any other related discipline or commensurate work experience or demonstrated competence.
• Typically has 7-10 years of work experience, preferably in applications engineering, programming, or a related field.
Preferred Certifications
• Programming Language/s Certification (Java, C++, Python, JavaScript, or similar)
Knowledge & Skills
• Agile Methodology
• Amazon Web Services
• Angular (Web Framework)
• Application Programming Interface (API)
• Automation
• Computer Science
• DevOps
• Docker (Software)
• Full Stack Development
• Java (Programming Language)
• JavaScript (Programming Language)
• Kubernetes
• Microservices
• Microsoft Azure
• Python (Programming Language)
• React.js
• Scalability
• Software Development
• Software Engineering
• SQL (Programming Language)
Cross-Org Skills
• Effective Communication
• Results Orientation
• Learning Agility
• Digital Fluency
• Customer Centricity
Impact & Scope
• Impacts function and leads and/or provides expertise to functional project teams and may participate in cross-functional initiatives.
Complexity
• Works on complex problems where analysis of situations or data requires an in-depth evaluation of multiple factors.
Disclaimer
• This job description describes the general nature and level of work performed in this role. It is not intended to be an exhaustive list of all duties, skills, responsibilities, knowledge, etc. These may be subject to change and additional functions may be assigned as needed by management.