Junior Embedded Software Engineer
Job Summary
As a Junior Software Engineer, you will independently contribute to the design, development, and operation of software systems. You will tackle well-scoped problems, deliver features on time, and build maintainable code. Additionally, you will collaborate with cross-functional teams to achieve business and project milestones.
Responsibilities
- Design, develop, and operate software systems
- Tackle well-scoped problems and deliver features on time
- Design and implement simple, scalable, and maintainable software solutions
- Take responsibility for small incidents and continuous improvements
Required Skills
- Proficiency in at least one programming language (Python, Java, JavaScript, C, C++)
- Understanding of software development practices, design patterns, and version control
- Experience building and maintaining production systems
- Ability to collaborate effectively in cross-functional teams
Job Details
Job Purpose: As a Junior Software Engineer, you will independently contribute to the design, development, and operation of software systems. Key Responsibilities: Tackle well-scoped problems with little ambiguity, independently contributing to team goals and outcomes. Demonstrate competence in core software engineering skills. Take responsibility for the timely delivery of features that meet business outcomes and project milestones. Consistently role-model company values and foster a collaborative, supportive team environment. Understand the business and user impact of features. Break down tasks effectively and use data and feedback to inform decisions. Design and implement simple, scalable software solutions. Consider dependencies and integration points, write maintainable code, and apply lessons learned from mistakes. Apply knowledge of availability, performance, cost, and security to engineering decisions. Take responsibility for small incidents, ensuring follow-up learning and improvements. Requirements Requirement: Good proficiency in at least one programming language, with the ability to learn and apply others as needed. Good understanding of software development practices, including design patterns, testing, and version control. Experience building and maintaining production systems, with awareness of operational factors such as monitoring, alerting, and cost efficiency. Ability to decompose complex problems into smaller, manageable tasks and deliver them effectively. Experience collaborating in cross-functional teams (e.g. product, design, QA). Basic knowledge of one or more programming languages (e.g. Python, Java, JavaScript,C, C++).