Software Developer

Deadline for receipt of applications: 19 October 2020, 14:00h Europe/Madrid Time

This position is part of the IMDEA Networks institute-wide computing effort administered by the Engineering Services Department.

Under the general supervision of the IT Manager, determines programming requirements for systems. Designs flexible client-server frameworks. Analyzes and improves performance of software programs and analyzes requirements for data exchange between application software and other IMDEA Networks systems; determines viable alternatives; makes recommendations; and designs, specifies, obtains consensus on, and implements solutions. (e.g., solutions usually require writing programs in various computer languages.)

Additionally, helps to plan, organize and direct information systems operations and activities including the planning, development, installation, operation, analysis, maintenance and repair of computer systems and related hardware, software, networks, databases, peripherals and applications; coordinate and direct projects, communications, support services and information to meet the Institute’s information technology needs and assure smooth and efficient department activities.

List of tasks and Responsibilities

  • Determines programming requirements for systems. Designs flexible client-server frameworks. Analyzes and improves performance of software programs and analyzes requirements for data exchange between application software and other IMDEA Networks systems
  • Alternative: define, develop, test, analyze, and maintain new software applications in support of the achievement of the Institute’s requirements. This will include writing, coding, testing, and analyzing software programs and applications. Will also research, design, document, and modify software specifications throughout the production life cycle.
  • Helps to plan, organize and direct information technology operations and activities including the planning, development, installation, operation, analysis and maintenance of software platforms
  • Manage software engineering schedules.
  • Participate actively in software development and provide guidance to developers;
  • Collaborate with stakeholders to understand project goals and requirements. Participate in architecture, modelling, and design meetings with software development engineers, refining & prioritizing work backlog and coordinating deployment schedules.
  • Direct and participate in the preparation and maintenance of records, files and produce reports related to technology projects, software, servers, networks systems, and assigned duties;
  • Provide technical information and assistance to the Directive Team regarding Department projects, activities, needs and issues.
  • Research, compare and evaluate new hardware and software programs and make recommendations as appropriate.
  • Communicate with faculty, administration departments, personnel and outside organizations to exchange information, coordinate activities and programs and resolve issues or concerns.

Skills Required

Managerial and Supervisory

  • Establish and maintain cooperative and effective working relationships with others, both inside and outside the Institute.
  • Capacity to negotiate and influence upwards.
  • Communicate effectively, both orally and in writing, using interpersonal skills that include tact, patience and courtesy when interacting with others.
  • Interpret, and apply regulations, policies and procedures.
  • Strategic and tactical thinking, analyzing situations accurately and adopt an effective course of action. Software version control like Git.
  • Meet schedules and time lines.
  • Autonomy: Work independently with little direction.
  • Ability to react quickly and rationally during emergencies.

Technical

  • Computer systems, hardware, software, databases, networks, operating systems and applications utilized by the Institute.
  • Web development using a MVC framework like Ruby / Rails, PHP / Laravel, WordPress or similar.
  • Best practices, procedures and techniques involved in the design, setup, development and modification of computer and network systems, web sites, hardware, software and applications.
  • Server configuration management to run different kind of applications as can be WordPress, Ruby environment, DSpace with Java etc.
  • Good knowledge in HTTP server’s configuration (Apache2, Nginx…), and the API Rest and API development to manage all kind of request (GET / POST / PUT / DELETE / OPTIONS)
  • Database management and knowledge in SQL and Non SQL databases, MySQL/MariaDB, PostgreSQL, MongoDB.
  • Hands-on experience developing test cases and test plans.

Additional Complementary Skills

  • A high level of English (IELTS 7 or above, CEFR C1 or above), both spoken and written, required.
  • Qualified in Computer Science and Software Development.
  • At least three years’ experience involving the development, operation, analysis, maintenance and repair of computer systems, hardware and software, required.
  • At least three years’ experience in software development, required.
  1. Remember to select the following option: Research Engineer & Support: [Software Developer] [2020].
  2. Deadline for receipt of applications: 19 October 2020, 14:00h Europe/Madrid Time