At Curriculum Associates (CA), we believe a diverse team leads to diversity in thinking, making our products better for teachers and students. If after reading this job description you feel energized by what you see here, and believe you could bring passion and commitment to the role but aren't sure you meet every qualification, we urge you to still please apply! Above all, we are looking for the right person for our growing team. We are seeking an experienced professional software automation engineer to help us achieve our mission of enabling student success through adaptive learning and placing actionable data in the hands of teachers through our i-Ready platform.
Knowledge of a variety of automated testing techniques and approaches is essential. You'll be able to pick the most suitable one for a given context and be able to explain the reasoning behind the chosen approach to different audiences. You know your heuristics from your oracles and know how to get the defects fixed that you found. We do not require ISTQB / ISEB – but we don't hold it against you for having them.
A good understanding of web applications is necessary – fluency in HTML and CSS and firm knowledge of HTTP is expected; knowledge of web services is helpful too. A solid data background is also essential – fluency in SQL and relational databases is required, some knowledge of non-relational storage technologies, data warehouses, and dimensional modeling is a bonus.
It is unlikely that anyone with less than 3 years' relevant experience will be suitable for this role, but we have been pleasantly surprised before.You'll be asked to automate as part of a team or to be the sole automation engineer on a project reporting to a QA Manager.Behaviors:
- You are used to collaborating with developers, product owners, UI designers, and others in QA
- You can analyze a feature and identify test coverage, as well as risks the team has not considered yet
- You are knowledgeable of coding best practices
- You are knowledgeable of different styles of testing frameworks and can compare pros and cons of each scenario
- You can design a testing framework, look for feedback, and adjust on the design before writing any code
- You rapidly discover important information about the product and effectively communicate this to the appropriate stakeholder
- You create devious tests that uncover unexpected problems
- You naturally share your knowledge with others and enjoy learning from your peers
- You communicate test ideas with team members clearly and concisely and incorporate feedback easily into your work
This role will require knowledge of:
- Testing – you have studied and practiced a variety of test frameworks, techniques, and methodologies, and are familiar with prominent voices in the online testing community
- Test automation – you are proficient in test automation to a level where you can discuss different approaches and can pick a specific design based on the product under test. To support this, you also have advanced knowledge of at least one modern programming language
- Agile software development – you understand the common methodologies (Scrum, Kanban, Crystal, Lean) and can articulate how strong test automation can best support their team in that context
- Self-motivated learning – you will be able to describe your approaches to gaining new knowledge and skills, and how you apply them to become a better engineer
- Mentoring – you love to share knowledge and are good at it. You are comfortable training a new team member on the framework you are building, demonstrating interesting tools and techniques you have found to be effective to your team, and teaching inexperienced engineers the fundamentals of testing
- Data technologies – you are very comfortable testing on large volumes of data moving between different backend technologies to support both an ETL process and near real-time reporting. You know how to apply various tools and techniques to work with large volumes of data. You can easily describe the differences between unions, joins, and pivots
- Web applications – you understand the key challenges related to building and testing a multi-tenant high-volume web application responsible for sensitive student data supporting both desktop and mobile devices and can articulate your experience in this context. You are comfortable drawing an architecture diagram of the system under test
- You are great at modeling, questioning, generating, explaining, and elaborating on test ideas
- You can design and write a testing framework and testing tools from scratch to enhance the quality testing of a product
- You can write SQL to verify data correctness and are knowledgeable of other tools and techniques to help with data intensive testing
- You can search through logs or crash reports to help isolate and identify the root cause of issues and are comfortable doing this from the command line
- You can make sense of large volumes of data to identify patterns that might be indicative of problems
- You have the ability to think playfully about serious matters
- You can make observations and assimilate them to a mental model of a situation, and change your mental model as new information becomes available
- You are able to describe defects in sufficient detail for a developer to understand and reproduce, and for business owners to understand user impact
- You know when automated testing is better than manual testing
- You know when manual testing is better than automated testing
- You have experience with distributed version control systems
- You are listened to
- You are skeptical
- You are passionate about great software
- You have strong user empathy and a sense of UI aesthetic
- You solve hard problems independently and collaboratively
- You can see failure in success, and identity value in failure
- You can stand up for what you believe is right, and back down for what you realize is wrong
- You value critical thinking, curiosity, creative thinking, and analytical thinking.
- You are interested in metacognition and how it applies to software testing
Who should not apply:
- · DO NOT APPLY if you need step by step test cases of what to automate
- DO NOT APPLY if you like writing verbose test plans before you start testing
- DO NOT APPLY if you need someone to tell you what to do
- DO NOT APPLY if you can't test without a set of requirements documents
Location: Once it is safe to return to the office, this role will be located at our Greensboro, North Carolina office. Candidates must be willing to relocate close to the area if hired. This team uses CA's Flexible Work Approach, which enables employees on office-based teams to work in-office 2 days/week and remotely 3 days/week. For employees who don't have the space or the desire to work remotely 3 days per week, CA also offers a 4+ days/week in-office option.
Final Note: We are looking for a candidate who will bring their passion for testing to our growing QA team and is interested in becoming a better engineer while also encouraging and motivating others in the team to do the same. If most of the statements above describe you, demonstrate your attention to detail by writing a cover letter that describes why you fit our profile and your passion for testing.