Betterlesson Westwood , MA 02090
Posted 2 months ago
Software Engineer
Department: Engineering
Employment Type: Full Time
Location: Westwood, MA
Description
The Software engineer applies technical knowledge and expertise to design, build, and maintain BetterLesson systems. They work cross-functionally with product managers and learning designers to define the scope of system changes and enhancements. This role is also responsible for testing software to maintain and meet established standards.
Here are some things you can expect to accomplish in this role:
Write human-readable, clean code that complies with documented Engineering Standards with an eye for test-driven development using languages/frameworks including Java and frameworks including Spring Boot, Spring, Hibernate, Python, and frameworks including Flask, Django, FastAPI, and Gruk, JavaScript and frameworks including React, SQL and database migration scripts using database migrations tools including Liquibase, Alembic, etc. and integrating Auth2.0 access controls into services and applications leveraging Java Web Tokens
Work effectively in a cloud-hosted environment that is managed by Infrastructure as Code with knowledge of Terraform and Amazon Web Services, including S3, RDS, Athena, SQS, Lambda, and Step Functions
Complete detailed design documentation, including data model diagrams, flow charts, and high-level task definitions using Lucidcharts
Test software to ensure the changes meet the expectations of the team, meet required team standards, including security & accessibility, and do not introduce errors with existing software, including the creation of unit tests in Junit, Jest, and similar technologies within the stack
Release software to production while following the expected change management procedures, including verifying changes are functioning correctly in a live environment
Perform Manual testing that is required to verify changes using tools including Postman and custom scripts; develop, support, and maintain CICD pipelines to support other engineers with tools including CircleCI, Kubectl, and Helm
Develop, support, and maintain micro-services that comprise the platform
Develop and maintain React applications leveraging MUI and custom assets and active state management tools like Redux; develop and maintain Python servers and data processing systems, including server-based and serverless
Develop and maintain legacy Linux-based EC2 server instances, monitoring system health and performing necessary system upgrades
Support existing systems by triaging reported issues, recommending fixes to prioritized issues, and creating support documentation
Actively contribute to agile planning and refinement meetings while maintaining scrum assignments via Jira
Take ownership of software deliverables and communicate frequently with key stakeholders
Support effective software delivery as a champion of Agile methodologies
About You:
Bachelor's degree in Computer Science, Information Science, Computer Engineering, or foreign equivalent plus internship or experience to include writing human-readable, clean code that complies with documented Engineering Standards with an eye for test-driven development using languages/frameworks including Java and frameworks including Spring Boot, Spring, Hibernate, Python, and frameworks including Flask and Django, JavaScript and frameworks including React, SQL and database migration scripts using database migrations tools including Liquibase, Alembic, etc.
Work effectively in a cloud-hosted environment with knowledge of Amazon Web Services, including S3, RDS, SQS, and Lambda
Complete detailed design documentation, including data model diagrams, flow charts, and high-level task definitions
Test software to ensure the changes meet the expectations of the team, meet required team standards, including security & accessibility, and do not introduce errors with existing software, including the creation of tests in Junit, Jest, and similar technologies within the stack
Release software to production while following the expected change management procedures, including verifying changes are functioning correctly in a live environment
Perform manual testing that is required to verify changes using tools, including Postman and custom scripts
Develop, support, and maintain CICD pipelines to support other engineers
Develop and maintain React applications leveraging custom assets and active state management tools like Redux
Support existing systems by triaging reported issues, recommending fixes to prioritized issues, and creating support documentation
Actively contribute to agile planning and refinement meetings while maintaining scrum assignments
Take ownership of software deliverables and communicate frequently with key stakeholders
We Can Offer You:
The opportunity to work with an awesome team to solve important problems
A competitive salary
Health and other employee benefits
Equity in the business you are helping to build
A flexible schedule and vacation policy
The opportunity to spend every day working to improve outcomes for teachers and students
Betterlesson