The Role
The Software Developer is responsible for implementing complex software development tasks, analyzing requirements, creating documentation, and following design patterns. The role includes debugging, code refactoring, unit and integration testing, and adhering to agile project processes. The developer will support team members and ensure proper deployment of features across environments.
Summary Generated by Built In
This position owns features. Independently implements medium to complex software development tasks, with little or no supervision.
Job Duties:
- Analyze, identify and define requirements covering primary and exceptional and error flows, assisting senior team members in engaging stakeholders.
- Create functional requirements and technical documentation, following company-wide standards, guidelines and templates.
- Estimate effort for tasks applying agile project estimation methods and techniques.
- Independently implement common and advanced design patterns, following the project architecture and design guidelines.
- Independently implement medium to complex tasks with little or no supervision, covering all functionality flows and applying industry and company best practices and guidelines (e.g. SOLID, design patterns, clean code etc.).
- Document code through comments to support software maintenance.
- Use appropriate tools and techniques for debugging.
- Assist in code refactoring activities, following the guidelines established at the project or company level.
- Review code of other team members.
- Identify and reuse existing code or libraries.
- • Follow company-wide NFR practices (e.g. performance, scalability, etc.) and implement them following guidelines from senior team members.
- Support Software Test Engineers in defining test cases.
- Design and implement unit and integration tests, following project and company practices, guidelines and standards and covering primary, alternative and error flows.
- Follow code coverage metrics and conventions when writing unit and integration tests.
- Make sure developed features have been properly deployed in different environments.
- Use standard tools for versioning and source control and configuration management, and follow project branching strategy.
- Set up project development environments with little or no help from senior team members.
- Support software maintenance by troubleshooting and identifying root causes, performing technical impact analysis and validating technical solutions.
- Support with technical onboarding of new team members.
- Follow the project agile process.
- Follow project and organization standards for designs and code.
- Keep up to date with technological advances in the field.
- Bachelor degree in Technology-related field.
- (2-3) Years of Experience in software development.
Core Competencies:
- Passion & Initiative
- Creativity & Innovation
- Customer Service Orientation
Job Related Competencies:
- Technical Expertise: Basic Software Engineering Lifecycle
- Analytical & Critical Thinking
- Time Management & Meeting Deadlines
- Problem Solving & System Thinking
Knowledge:
- Proficiency in at least one modern programming language (e.g. C#, JAVA, JavaScript, SWIFT, PHP).
- Advanced understanding of computer science fundamentals, including algorithms, problem-solving, and object-oriented analysis and design
- Advanced understanding of design patterns, principles and industry practices
- Advanced knowledge of debugging techniques
- Advanced knowledge of code quality principles and practices (e.g. refactoring, clean code, etc.)
- Basic knowledge of NFRs (Non-Functional Requirements)
- Comfortable using version control systems (i.e Git)
- Advanced knowledge of TDD, unit and integration testing and tools
- Basic knowledge of technical documentation methods and tools (UML, etc.)
- Very good understanding of SDLC and Agile methodologies
- Good understanding of software estimation tools and techniques
- Strong written and verbal communication skills
- Advanced analytical abilities and design skills
Top Skills
C
Java
JavaScript
PHP
Swift
The Company
What We Do
EarthLink Telecommunication started in 2005 as an Internet service provider. Within just a few years, EarthLink has become the largest Internet service provider in Iraq. We serve every city and town in Iraq, as well as several major cities around the world. EarthLink is not just an Internet service provider; we provide ICT solutions, data center services, managed services to business and government organizations in Iraq, and much more.