As an integral member of Criteria’s Global Engineering team, the Senior Software Engineer will be responsible for designing and developing solutions to application problems, ensuring a solid development framework of leading-edge technology and process is utilized in developing the Criteria product to meet business needs and vision. This will involve collaborating with the wider Research and Development (R&D) team and key stakeholders including R&D Psychology, Product and Project Managers.
We are looking to hire a Senior Software Engineer who will play a pivotal role in advancing our technology stack, mentoring junior team members, and contributing to the evolution of our product offerings. If you are passionate about innovative technologies and thrive in a collaborative environment, we would love to hear from you.
REQUIRED KNOWLEDGE/SKILLS/ABILITIES
To be successful in this role the incumbent will demonstrate the following:
- Comfortable working during parts of the day that overlap with Pacific Standard Time (PST) and/or Australia’s AEST for occasional meetings.
- Excellent English-speaking skills, with a strong command of written English, and comfort in collaborating with native English speakers.
- Proficiency in PHP and advanced JavaScript.
- Experience in front-end web development using JavaScript
- Proven track record in creating API back-ends and connecting them to web application front ends.
- Hands-on experience with Amazon Web Services (Lambda, API Gateway, DynamoDB, EC2, AWS-SDK).
- Experience working in a continuous integration/deployment environment
- Expertise in implementing and maintaining unit, integration, and system tests
- Meticulous attention to detail and the ability to create quality documentation
- Natural curiosity and a proactive drive to continually develop skills and assist junior team members.
- Superior problem-solving skills and diligence in task execution.
Additional Desirable Skills include:
-
Experience in NodeJS and/or TypeScript development.
-
Familiarity with front-end frameworks such as React.
-
Experience with Infrastructure as Code principles.
-
Proficiency in Linux scripting languages such as Shell or Groovy.
-
Fluency in multiple programming languages.
-
AWS (Amazon Web Services) Certification (e.g., AWS Developer Associate).
-
Engagement in side projects or personal development that enhances your in-office skills.
RESPONSIBILITIES
Tech/Programming:
- Master the tools and technologies used at our company.
- Routinely evaluate current or emerging methodologies, technologies, and frameworks for feasibility or improvement.
- Scope, design, and estimate the effort of solutions, ensuring adherence to architectural best practices (performance, resiliency, cost, security, and operational excellence).
- Translate detailed business requirements into robust and comprehensive system designs.
- Undertake programming for various applications and systems.
Quality:
- Contribute to and enhance the automation of testing by writing unit, integration, functional, smoke, performance, and security tests.
- Participate in efforts to improve code quality and reduce technical debt.
Delivery:
- Assist in the implementation of continuous integration and continuous delivery.
- Enhance the monitoring of system operations to detect potential issues (infrastructure, application, and security).
Collaboration:
- Actively participate in the agreed Software Development Life Cycle (SDLC).
- Contribute to and refine standards, policies, and procedures to ensure operational excellence.
- Maintain and update internal documentation and wikis.
- Communicate project information to stakeholders through presentations, technical reports, or white papers.
- Provide regular status updates (including identifying deviations) to stakeholders.
Support:
- Offer technical guidance or support for the development or troubleshooting of systems.
- Mentor other team members to ensure leading practice.
Other:
- Adhere to all internal procedures and policies (e.g., change control, security and auditing, release, configuration, problem, and incident management).
- Perform other reasonable tasks consistent with your skills, qualifications, and experience on an as-needed basis.
- Proactively manage your career progression.