Software Engineer I
The Software Engineer I will design, code, and test software functions and modules, under the guidance of senior engineers. This junior role involves understanding problems, developing solutions, and engaging with key stakeholders to refine approaches. The successful candidate will write complete, efficient, and well-commented code that meets customer experience needs and project requirements. They will also create unit and feature tests to ensure compliance with performance, scalability, and security standards.
Additionally, the engineer will address bugs within the product, continuously learn, and explore in-depth project requirements.Primary Duties & Responsibilities:
- You develop a design (including system architecture, layout of services, APIs, backend and frontend changes) for your project and area, consider possible options to solve the problem, drive estimations while considering cost and long term impact of the design. You address currently planned use cases as well as required extensibility to support future applicable use cases. You review your design with your peers and collect feedback, incorporate it. You set a high bar for the content and completeness of your design document, and the organization can use these as great examples and best practices
- You develop software that delivers on Scalability, Performance, Security, Accessibility, Localizability and other horizontal requirements. You are a practitioner and knowledgeable user of the underlying system Infrastructure (e.g Cloud Infrastructure) that the Product is based on, and you propose and adapt your solution to the company’s design fundamentals, frameworks and 3rd party software infrastructure. You address key dependencies required for your design and code in other applications, systems and services and ensure they are available and present as you deliver code.
- You develop high quality code that is efficient (address space and time complexity), is modular, follows coding guidelines including naming conventions and other code etiquette. Your code is production-ready. You learn from your past mistakes and any future feedback reflects improvement in the quality of your code. The code reviews of your code progresses smoothly and with no fundamental issues in the logic, semantics and syntax.
- You solve problems that have ambiguity in requirements, substantial risks and conflicting constraints along multiple dimensions. You make good tradeoffs between short-term delivery and long-term maintainability of your organization’s architecture. You identify risks that are not readily apparent and proactively take action to prevent problems before they occur.
- You drive bug fixing and resolution throughout the Product life cycle to ensure the stakeholders have a view of what sequence and order we fix issues. This includes all sources of bugs including feature testing and QA testing issues found, customer issues and pain points reported
- You test your work by creating unit and feature tests needed to complete the work and ensure it is ready for handing off to QA. You ensure your code is reviewed and you have incorporated the feedback appropriately with guidance from the senior engineer
- Adheres to all confidentiality and compliance regulations.
- Performs other duties as assigned.
Minimum Education & Work Experience:
- B.S in Computer Science or equivalent with 1-3 years of experience in developing design, code and testing software in modern systems and languages.
Key Skills and Qualifications:
- Awareness and knowledge of Software Design and Coding methodologies
- Development and Design best practices based on experience and knowledge learned and worked on
- Work with modern industry 3rd party technologies and ability to compare and contrast and help make software decisions
- Knowledge and experience with Development and Test methodologies and tools to develop design, code and test
- Create the process and frameworks for how development will happen in Engineering
- Ability to form-factor messages and communicate to peers, senior software engineers
- Knowledge and experience with improving Performance, Scale and Availability of software and modern capabilities like processor, caching and backend accelerators of performance
Physical Demands and Work Environment:The physical demands described here are representative of those that must be met by an employee to successfully perform the essential functions of this job. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions
- Regularly required to sit at a desk in front of a computer and use hands to finger, handle, or feel objects, tools, or controls (including a computer keyboard and operating a telephone), lift and/or move up to 10 pounds.
- Frequently requires the use of hands and arms for reaching, as well as the ability to walk and communicate effectively through speaking and listening.
- Specific vision abilities required by this position include close vision, color vision, and the ability to adjust focus.
- Noise level in the work environment is usually moderate.
- Type on a computer keyboard and look at a computer monitor, and operate a cell phone or a computer-based phone.