Senior Software Engineer - Quality, Applications & Data
We are seeking an experienced Senior Software Engineer to design, develop, test, and support high-quality software applications and data solutions. This individual will play a key role throughout the full software development lifecycle, with responsibilities spanning software development, quality assurance, test automation, database development, and Machine Learning applications.
The ideal candidate will bring a strong technical foundation in modern programming languages and frameworks, software testing methodologies, relational databases, and system design.
Responsibilities
- Develop and execute formal test plans to ensure the delivery of high-quality software applications.
- Participate in test planning, test case development, test automation, and test execution.
- Define, track, and analyze quality assurance metrics, including defects, test results, and overall test status.
- Identify software quality issues, document findings, and assist with problem resolution.
- Collect and analyze data to evaluate software processes and identify opportunities for improvement.
- Perform quality audits to ensure IT standards, processes, procedures, and methodologies are consistently followed.
- Provide guidance and quality process training to technical teams and serve as a subject matter resource for quality best practices.
- Design, develop, test, and document new or enhanced software applications and Machine Learning systems.
- Write clean, scalable, well-documented, and high-quality code that meets performance and business requirements.
- Participate in the full software development lifecycle, including requirements analysis, system design, coding, testing, implementation, maintenance, and production support.
- Design and build relational database solutions for application data storage and processing.
- Develop and maintain SQL queries and database integrations.
- Evaluate and maintain database structures, including adding fields and supporting data quality initiatives.
- Support data acquisition, warehousing, archival, and recovery strategies.
- Work closely with business partners, customers, analysts, and technical teams to understand requirements and deliver effective technical solutions.
- Ensure solutions align with business objectives, IT strategies, and architectural standards.
- Participate in system and component design, data architecture, performance monitoring, and product evaluations.
- Make recommendations regarding new development, code reuse, and build-versus-buy decisions.
- Stay current with emerging technologies, programming languages, development methodologies, database tools, and software engineering best practices.
Required Qualifications
- Bachelor's degree in Computer Science, Information Systems, Engineering, or a related field, or equivalent professional experience.
- 8+ years of experience in software development, systems development, testing, quality assurance, or related technical roles.
- Experience developing and testing enterprise-level software applications.
- Experience with one or more of the following technologies:
- Java
- .NET
- Node.js
- Ruby
- AngularJS
- HTML/CSS
- SQL
- Strong understanding of software development, quality assurance, and systems integration methodologies.
- Experience developing and maintaining automated test cases and test strategies.
- Strong object-oriented design and programming skills.
- Strong analytical and problem-solving abilities.
- Ability to write SQL statements to retrieve, insert, update, and maintain data.
- Strong understanding of relational database design, tables, schemas, and data structures.
- Experience with design documentation, code reviews, in-line documentation, and testing best practices.
- Knowledge of the full software development lifecycle and application architecture.
Preferred Qualifications
- Experience developing or supporting Machine Learning applications or systems.
- Experience with data warehousing, data acquisition, archival, and recovery processes.
- Experience working in Agile software development environments.
- Experience with performance monitoring and application optimization.
- Strong understanding of software architecture and component-level design.
- Ability to work effectively across business and technical teams.
What We're Looking For
The ideal candidate is a highly experienced and versatile technology professional who can bridge the gap between software development, quality assurance, data management, and application architecture. This person should be comfortable working hands-on with code while also contributing to testing strategies, technical design decisions, process improvements, and overall software quality.
GCS is acting as an Employment Business in relation to this vacancy.