Software Developer - Security Attack Test Benches

SGS
Barcelona, Spain
8 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English

Job location

Barcelona, Spain

Tech stack

C
Java
Microsoft Windows
Software System Penetration Testing
Build Automation
Cloud Computing
Computer Security
Nvidia CUDA
Computer Programming
Continuous Integration
Linux
Fuzz Testing
General-Purpose Computing on Graphics Processing Units
Java Native Interface
Python
Maven
NetBeans
Software Architecture
Real-Time Operating Systems
RSA (Cryptosystem)
Secure Coding
Smart Cards
Software Construction
Software Engineering
Software Requirements Analysis
Virtualization Technology
Cloud Platform System
PIC Microcontroller
Cyber Threat Analysis
GIT
Material Design
Information Technology
Hardware Infrastructure
Software Version Control
Docker
Vulnerability Analysis

Job description

Job DescriptionWe are seeking a Software Developer to design, develop, and maintain security attack test benches used to evaluate the resilience of software, embedded systems, networks, and connected products against cybersecurity threats.The test systems focus on side-channel analysis, fault injection testing, and security protocol validation for secure products and cryptographic implementations.Gather the product requirements The engineer will analyze the existing test bench architecture, interact directly with users (security evaluators and researchers), and translate operational needs into new features and functional requirements.Develop new features The developer will translate defined requirements and system specifications into robust, maintainable, and efficient Java code, ensuring proper integration within the existing architecture.This includes extending and modifying system components, integrating new lab instruments into the tool, developing new modules, and delivering features that meet user needs while adhering to established coding standards, software engineering best practices, and quality expectations.In addition, the developer will use the C programming language to design and implement secure test applications running on the evaluated products or other hardware components.Validate the product release The developer will also be responsible for extending, executing and validating tests on the test bench product to ensure that implemented features meet functional, performance, and security requirements.The developer will create and maintain CI/CD scripts and pipelines to automate build, integration, testing, and deployment processes, ensuring consistent software delivery abd improved reliability.Document the changes The developer will also be responsible for documenting system requirements, software architecture, and technical specifications in a clear and structured manner.This includes maintaining up-to-date documentation of the existing test bench architecture, capturing design decisions, and ensuring that newly defined features and functional requirements are properly specified and traceable.QualificationsBachelor's or Master's degree in Computer Science, Software Engineering, or related field.Proactive attitude with a strong motivation to learn about cybersecurity analysis and attack techniques Strong programming skills in: Java C (for microcontrollers and RTOS) Experience with Maven Experience building and maintaining Swing-based UI components Experience with Windows and Linux-based development environments.Experience and motivation to work with protocols and byte-level programming Experience with version control systems such as Git.Desired Skills Familiarity with penetration testing concepts and vulnerability assessment.Knowledge of cybersecurity testing methodologies Familiarity with penetration testing concepts and vulnerability assessment.Knowledge of secure coding practices and threat modeling.Experience working with NetBeans Platform framework Experience working with Java Native Interface Experience communicating with lab instruments Smartcard / NFC knowledge Docker, virtualization, or cloud environments.Fuzz testing, Fault injection and Side channel attacks implementation Working knowledge of common cryptography algorithms such as AES, DES, RSA, SHA, etc.Experience working with CUDA/GPU Computing Programming skills in: Python Go or Rust The field of security evaluation is very broad, constantly on the move, and very exciting.We look forward to welcoming you to our team!

Requirements

QualificationsBachelor's or Master's degree in Computer Science, Software Engineering, or related field. Proactive attitude with a strong motivation to learn about cybersecurity analysis and attack techniques Strong programming skills in: Java C (for microcontrollers and RTOS) Experience with Maven Experience building and maintaining Swing-based UI components Experience with Windows and Linux-based development environments. Experience and motivation to work with protocols and byte-level programming Experience with version control systems such as Git. Desired Skills Familiarity with penetration testing concepts and vulnerability assessment. Knowledge of cybersecurity testing methodologies Familiarity with penetration testing concepts and vulnerability assessment. Knowledge of secure coding practices and threat modeling. Experience working with NetBeans Platform framework Experience working with Java Native Interface Experience communicating with lab instruments Smartcard / NFC knowledge Docker, virtualization, or cloud environments. Fuzz testing, Fault injection and Side channel attacks implementation Working knowledge of common cryptography algorithms such as AES, DES, RSA, SHA, etc. Experience working with CUDA/GPU Computing Programming skills in: Python Go or Rust The field of security evaluation is very broad, constantly on the move, and very exciting.

Apply for this position