Career at EarthLink
We are approaching our vision to be pioneers and innovators of Internet services and technology solutions for the future. Moreover, about to achieve our mission by providing fast, flexible and accurate services to businesses, and leading our customers through changing technology world
We are looking for talented people to be part of our team and go along with our challenging journey.
Want to know more about EarthLink? See how we roll Life Inside Earthlink
Lead Software Developer
Software Design & Implementation
Job Summary :
This position is responsible for performing a variety of programming assignments, procedures and data processing functions, in addition to maintaining and modifying software programs.
Key duties :
- Lead identification of emergent properties and requirements throughout the soft-ware development life cycle
- Select the most appropriate formal and informal requirements validation and verification techniques.
- Select appropriate methods to engage and communicate with stakeholders in requirements activities.
- Negotiate conflicts between stakeholders in requirements elicitation.
- Evaluate the effectiveness of application of software design enabling techniques.
- Provide direction and advice on methods and techniques to be used in the areas of concurrency, event handling, or distributed software.
- Determine the process and strategy to be used in software design at the project level (such as top-down or bottom-up, stepwise refinement, use of patterns and pattern languages, iterative and incremental processes
- Select appropriate design methodology (such as object-oriented, function-oriented, and component-based) and strategies to be used at the project level.
- Provide guidance on the use of software design strategies and methods.
- Evaluate effectiveness of application of selected software design methodology.
- Determine design alternatives and performs trade-off analysis
- Provide direction and advice on standard notations, diagramming techniques, models, and patterns to be applied.
- Evaluate the effectiveness of the creation of software architecture
- Select appropriate tools and techniques (such as design reviews, static analysis, simulation and prototyping, design metrics) to ensure a software design’s quality.
- Select appropriate processes and models for constructing software on individual projects (such as compilation, generation from domain-specific languages).
- Select appropriate languages and tools for software construction.
- Select appropriate frameworks, platforms, and environments for individual projects
- Establish project standards for version control and configuration management.
- Measure and monitor an organization’s use of design patterns.
- Plan and initiate model-driven development processes as appropriate.
- Establish project standards for unit test coverage
- Select appropriate debugging tools and techniques for a project
- Assist in selection of project tools and processes for integration.
- Lead in identification of stakeholders for transition and operational requirements
- Lead in the identification of system and software constraints.
- Create policies that cover help desk operations.
- Develop plans for collecting and processing operational data.
- Develop software retirement plans.
- Lead development of software maintenance processes and plan
- Lead problem identification and technical impact analysis
- Lead development of plans and supervises making changes to software (corrective, adaptive, perfective).
- Plan for and supervise preventative maintenance and software re-engineering activities.
- Lead monitoring and analysis of software maintenance activities
- Select a life cycle model process for a software team.
- Assist in selection of a department or organizational-wide life cycle process model
- Lead definition and tailoring of software processes for a project team or for a software engineering activity (such as requirements engineering, design).
- Provide guidance to others involved in tailored processes (individual and team).
- Provide guidance and advice to software teams on how to implement and manage software processes.
- Lead software teams in collecting data for assessment of software processes.
- Analyze process assessment data and implements improvement of team software processes.
- Establish procedures to develop and integrate software components
- Lead the development of plans, procedures, and scenarios for system integration, verification, validation, and deployment
- Prepare criteria for identifying stakeholders.
- Lead stakeholder meetings.
- Develop acceptance criteria
- Lead development of the system requirements specification.
- Lead the development of plans, procedures, and scenarios for system integration, verification, validation, and deployment.
- BA/Master degree in technology related field or equivalent.
- Major Software Certification is a must.
- Passing Level IV Exam.
Years of Experience:
- 8+ Years’ experience is software development.
Area of knowledge and experience :
- Preferred programming languages : .Net standard or core
- Preferred architectural design patterns : Domain driven design (DDD) , CQRS, Event sourcing
- Preferred Architectural style : Microservices
Skills and Competencies :
- Excellent Command of English and Arabic- Written and Spoken
- Excellent Command Microsoft Office (MS Word, MS Excel, PowerPoint)
- Very Good understanding in all Business Operation.
- Ability to prepare comprehensive project documentation and reporting for internal and customer communication.
- Keep up-to-date with latest technological advances and trends in the market.
- Mathematical Aptitude, system thinking and problem-solving skills.
- Proficiency in object oriented analysis, design and programming.
- Ability to interpret and read existing code, analyzing Information, Software Design, Software Debugging, Software Documentation and Software Testing.
- Self-development skills to keep-up-to-date with fast-changing trends.