Software Development Engineer
Company: Frontdoor | Location: Pune | Exp: 0-3 Years
Our Software Engineers are product focused, giving them the opportunity to work on a product and understand the layers of the software stack. Work includes documentation, automated testing, debugging, working with algorithms and data structures, coding, design, system performance scaling, and problem solving for routine and basic software programs. Responsibilities also include participation in projects.
Write documentation and automated tests for code to be written. Implement functionality for automated tests that will successfully pass and meet coding standards. Debug production issues and create subsequent mitigation plans. Optimize performance of existing implementations.
Debug issues, recognize the causes of issues, and tackle reproducible issues using query language and scripting.
Select optimal data structures using fundamental software algorithms and concepts of space and time complexity.
Fix easily reproducible bugs, build new and straightforward features, write unit tests for code coverage, and spot bottlenecks through the ability to read and understand others’ code.
Implement code based on common design patterns.
Determine correct algorithms based on input size and frequency using basic concepts of algorithms and Big-O Notation.
Prioritize tasks with Scrummaster that leads the team to be successful.
Bring forward ideas to experiment and work in teams to transform ideas to reality.
Bachelor’s degree in Computer Science, Electrical Engineering, or related field required. Master’s degree preferred.
0-3 years product development experience.
Basic understanding of computer science fundamentals, such as data structures, (trees, graphs, hash tables); Basic understanding of functioning and implementation of basic algorithms, such as sorts, searching, and the capability to explain performance characteristics using Big-O Notations.
Capability to debug basic problems and analyze logs in production systems and to read basic existing code.
Understanding of various data storage options, such as relational, no-SQL, etc.
Basic scripting skill in Shell, Python, or Ruby
Basic skills in languages, such as C, C++, Java, Golang, .net Core
Knowledge of Requirement Management, Agile Development, Test Process, Code Management, and Deployment • Ability to be on call on a rotating basis for the services owned by the team.
Experience in developing products in an Agile development environment
Experience working in a CI/CD environment
Understanding of Git and development activities such as merge and conflict resolution of code
Understanding and experience in Docker, Kubernets, and AWS cloud services