Senior Software Developer

Job Overview


  • 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)

Get social with us