What are the responsibilities and job description for the Full Stack Developer position at Youngsoft Inc?
The Role
You will work on high-impact products that help put education within everyone’s reach. In this role you will:
· Have the freedom to leverage the right tools and languages to solve problems. Right now, we use technologies including AWS, Kubernetes, Kafka, Java, and GitHub/GitLab.
· Develop and deploy software through an automated continuous delivery pipeline supporting over 200 production deployments a week.
· See the impact of your work as it is put in front of millions of users.
· Contribute to open source! We give back to the community whenever we can.
Responsibilities
· Participate as an empowered member of a collaborative Agile team to design, develop, and maintain high performance applications.
· Leverage continuous deployment and test automation tools to deploy application changes to production multiple times per day.
· Interact with internal and external customers to understand their needs and drive the development of web applications to meet those needs.
· Implement rich, interactive web applications using the latest technologies, frameworks, and patterns.
· Leverage web analytics to support Product Discovery and to measure project KPIs.
· Test, measure, and optimize performance using Application Performance Management tools.
· Participate in the on-call rotation as a first point of contact for applications you own.
· Demonstrate leadership skills in mentoring team members and articulating and evangelizing new technologies, methodologies, and processes.
· Participate in analysis of pricing, risk/reward, cost advantages, and resourcing to support technological improvements.
Experience and Skills
Required
· 5 years of experience as a full-stack software engineer building large-scale, distributed web applications.
· Experience with cloud infrastructure services–and AWS in particular.
· Experience with serverless and event driven architecture is a plus.
· Experience creating and operating backend services using languages like Python, Java, or JavaScript/TypeScript with frameworks like Fast API, NodeJS or Spring Boot.
· Experience creating and operating user-facing applications using frameworks like React, Angular or Vue.
· Experience creating and managing APIs for use by multiple teams using REST or GraphQL.
· Experience using a decentralized version control system like Git in a collaborative context on a platform like GitHub or GitLab.
· Experience creating and operating containerize applications, particularly in a Kubernetes environment using Docker.
· Familiarity with testing frameworks (e.g. JUnit, Jest, pytest, Playwright) and TDD practices.
· Experience mentoring other engineers in a technical and interpersonal capacity.
· Exceptional communication, thoughtfulness, and desire to give and receive regular feedback.
Desired
We do not expect any single candidate to have expertise across all of these areas. We look for candidates that have a passion for continuous improvement and the ability to optimize code for clarity, reliability, and performance. Our commitment to onboarding, mentorship, and continuous learning means that you will have support as you learn new technologies.
· Experience utilizing Open Search for powering ML based solutions.
· Experience using profiling tools to analyze and optimize application performance like Graphite, Grafana, and Prometheus.
· Experience with cache management, content delivery, and application security at the edge using CDNs like Fastly or CloudFront.
· Experience with data modeling in relational databases (e.g. PostgreSQL, MySQL, Oracle) or NoSQL (e.g. MongoDB and DynamoDB).
· Experience securing large applications against SQL injection, XSS, CSRF and other exploits.