Building a product is a highly collaborative effort, and as such, a strong team player with a commitment to perfection is required.
Responsibilities
— Ensure that your work meets all acceptance criteria. Test your work to ensure that it works as expected. Present your work to customers to achieve sign off. Work with your customers to ensure that your work will meet the business needs
— Shepherd your code (and other’s code) through the process until deployment. Help own and understand the process, and contribute to improving efficiency and consistency of the process.
— Take part in peer code reviews providing qualitative feedback
— Research internal implementations as well as potential new technologies, and communicate output of that research
— Detect root cause of defects and production bugs, and fix them when requested. Communicate impact of bugs and work with stakeholders to schedule fixes
— Research changes to external integrations and update code to account for changes. Understand the cadence of these changes and contribute to the ongoing plan to manage them
— Document work done in appropriate location, whether it be in code, or in a document library. Hand-off documentation to intended recipients or audience. Document previously un-documented systems or practices as encountered in your work environment
— Update team members on work progress sharing any major issues, and provide insights to optimize communication
— Collaborate with other teams as outlined in your team agreement, and call out areas where there may be inter-team communication issues. Additionally, do what you can to drive better communication between your team and others
— Communicate with Stakeholders as outlined on your team, and call out areas where there may be Stakeholder communication issues. Additionally, strive to have a clear understanding of Stakeholder goals to help drive better communication between your team and them
— Proactively investigate better solutions for current technologies
— Respond to emergency issues and alerts assigned to you. Contribute ideas on how to improve monitoring and alerting systems
— Participate with the technical interview team and offer ideas to improve the interview process
— Provide honest and provide accurate feedback
— Other duties as assigned
Qualifications
— Experience with architect programs which operate either independently or within a larger system.
— Understand the internal technologies used by your team. Able to provide commentary, review, and feedback to other teams about their projects and products when necessary, especially in how those integrate with your own team
— Experience with JIRA or other ticket systems. Ability to resolve tickets according to technical direction
— Able to provide technical direction on various types of tasks on your platform. Participate in technical direction for larger projects
— Proficient at using your team’s version control system, and the ability to address pretty much any merge conflict. Complete understanding of your team’s branching process. Contribute ideas on how to make the branching process better
— Excellent understanding of build and test processes; able to modify build processes to add new modules to an existing project and develop build processes for new projects. Able to design, develop, and debug unit and integration tests for new and existing code
— Understand our project management tools and processes. Contribute ideas on ways to make our project management systems better
Firm grasp of the JavaScript and TypeScript language and its nuances, including ES6+ syntax
— Intermediate understanding of OOP and POP (protocol-oriented programming)
— Ability to write well-documented, clean JavaScript code
— Rock solid at working with third-party dependencies and debugging dependency conflicts
— Familiarity with native build tools, like XCode, Gradle, Android Studio, IntelliJ
— Experience with automated testing suites, like Jest or Mocha
— Advanced understanding of Version control concepts (git submodules, feature branching, merge/rebase)
— Intermediate knowledge of S.O.L.I.D. design principles
— Critical thinker and problem-solving skills
— Good time-management skills
— Great interpersonal and communication skills
— Experience with CI (continuous integration) systems
— Experience with Design tools (Figma, Zeplin, Lottie, Sketch)
— Experience with Xcode Instruments
— Background in mathematics or computer science a plus
This position also requires the following essential functions:
— Visual acuity (e.g., needed to prepare and analyze data, to transcribe documents, to view a computer, to read, to inspect objects, to operate machinery
— Capacity to reason and make sound decisions
— Ability to read complex documents in the English
— Ability to write complex documents in the English
— Capacity to express thoughts orally (e.g., accurately, quick and loudly convey spoken instructions to workers)
— Capacity to think, concentrate and focus over long periods of time
Repetitive motions of any part of the body