Software Development at Benchmark is focused on the goal of hands on building of fantastic software to meet the challenges facing learners and teachers today and tomorrow. We believe that software will enable and support a wide range of next generation learning experiences, and are deep in the work of fulfilling that promise. From customer facing applications to backend services, teams at Benchmark are responsible for designing, building and managing technology solutions.
In a Sr. Software Engineer, we are looking for technical leaders who effortlessly tackle hard problems, and more importantly help the team and people around you on a large scale. You have the experience to guide implementations in the right direction. You know how to make great software, and it's central to how you think, you don't have to reach for it. We are tool and language agnostic but rather apply a set of quality and development values and standards to our work. We are working to build a fast moving, low friction environment for engineers to bring innovative solutions to tough problems, and want people who thrive in that environment, but also understand that the freedom comes with a responsibility for the team to take responsibility for quality at every level.
Duties and Responsibilities
Work independently and as part of an Agile software development team taking responsibility for solving complex problems.
Competent at turning ideas into code, and making that code usable by your teammates, and the company at scale.
Advance our goals around quality and engineering discipline
Test, analyze data, and improve constantly
Capable of moving from prototype to production and taking responsibility for the full lifecycle of a component.
At least 3 years of experience and a bachelor's degree in computer science or related field is preferred.
Computer Science principles in object-oriented design
Computer Science principles in data structures
Computer Science principles in algorithm design and complexity analysis
Ability to work in a collaborative agile environment
Excellent written and spoken English communication skills
Understanding of all elements of the software development life cycle, including planning, development, requirements management, configuration management, quality assurance, and release management.
Experience with the React, Redux, CSS and LESS
Experience with PHP 7.x, Laravel, and PHP Unit
Experience with SQL and NoSQL datastores such as MySQL and MongoDB
Familiarity with unit testing with Jest, Enzyme, Mocha and Chai
Familiarity with basic design patterns and UML
Highly responsible, team-oriented individual with very strong communication skills and work ethic; self-starter.
Ability to apply advanced principles, theories, and concepts, and contribute to the development of innovative principles and ideas.
Experience working on unusually complicated problems and providing solutions that are highly creative and ingenious, exhibiting ingenuity, creativity, and resourcefulness.