Software Engineer
Antal International
Municipality of Madrid, Spain
19 days ago
Role details
Contract type
Permanent contract Employment type
Full-time (> 32 hours) Working hours
Regular working hours Languages
EnglishJob location
Municipality of Madrid, Spain
Tech stack
Computer-Aided Design
C++
Computer Programming
Software Debugging
Python
Linux kernel
Multiprocessing
Node.js
Software Systems
Multithreading
Job description
As Software Engineer, you will design, develop, troubleshoot, and debug software programs or parts for software enhancements and new products. Designs enhancements, updates, and programming changes for portions and subsystems of systems software. You will play a key role in driving product's roadmaps to deliver cost-effective infrastructure and software systems., + Design and implement highly reliable, fault tolerant systems.
- Analyse, design, program, debug, and modify software enhancements and/or new products
- Perform testing, debugging of storage features, data path and storage efficiency
- Analyses design and determines coding, programming, and integration activities required based on general objectives and knowledge of overall architecture of product or solution.
- Design and conduct experiments to evaluate system changes with respect to performance.
- Deep dive into performance anomalies with the intent of discovering their root cause for both single and multi-node (i.e., distributed) systems.
- Design systems and components with performance in mind, considering both algorithmic and system-level criteria.
Requirements
- Strong hands-on C/C++, Python programming and debugging skills
- Strong hands-on Linux kernel/user mode multiprocessor, multithreaded programming.
- An excellent understanding of threading, allocating stack, kernel, cleaning up memory, takes up resources…
- Comfortable with Lock convoys, starvation, deadlocks, priority inversions and getting RCU rights.
- Experience building up efficient code and debugging performance of multi-node systems.
- Designing software systems running on multiple platform types.
- Software systems testing methodology, including writing and execution of test plans, debugging, and testing scripts and tools.