Senior Software Developer
- Assist in the selection of appropriate processes and models for software construction.
- Participate in determining the impacts of software changes on the operational environment.
- Assist in the selection of appropriate languages and tools for software construction.
- Assist in the selection of appropriate frameworks, platforms, and environments for software construction.
- Create and reviews detailed designs and code that meet quality requirements.
- Suggest and performs appropriate code refactoring when need.
- Suggest and uses appropriate design patterns.
- Suggest and uses defensive coding techniques to minimize propagation of errors and threats.
- Write executable models suitable for code generation as appropriate.
- Lead code reviews and inspections.
- Apply enabling techniques (such as abstraction, coupling/cohesion, information hiding, and so forth) to the design of software components and modules.
- Apply appropriate design techniques in the areas of concurrency, event handling, data persistence, or distributed software.
- Apply exception handling and fault tolerance in design of software components.
- Use restructuring and refactoring methods in the design of software components.
- Apply the designated software design strategy and methodology to create a software design (such as an incremental object-oriented approach).
- Use design patterns and frameworks to design mid-level software components.
- Keep up to date with technological advances in the field.
- Create prototypes of different types as needed
- Bachelor degree in technology related field or equivalent
- 5+ Years’ experience is software development.
- Solid software development background and implementation of coding best practices
- Strong, object-oriented and coding skills
- Must have led the design and execution of complex applications to solve ambiguous problems impacting business
- Strong analytical skills and background with distributed (multi-tiered) systems, algorithms, and databases
- Proven understanding of scalable computing systems and software architecture
- Excellent communication skills with both technical and non-technical audiences.
- Strong understanding of SDLC
- Good understanding of design patterns.
- Pass level III exam (Codility or similar)