Embedded Software Engineer
- Compensation
- Not disclosed
- Location
- Barcelona, Catalonia
- Work setup
- Hybrid
- Seniority
- Not specified
- Employment
- Not specified
- Experience
- 3+ years
- Category
- Embedded
- Posted
Skills
Must have
- At least 2-4+ years of experience in embedded software development.
- Previous experience in real-time operating systems like freeRTOS and clear understanding of design and programming concepts for real-time software.
- Solid understanding of algorithms, data structures, and software design principles.
- Experience developing software in system languages like C and C++.
- Familiarity with performance profiling and debugging tools for C++ applications.
- Experience in low level debugging with tools like Trace32 or similar.
- Basic electronics understanding is mandatory – capability to understand schematics and use an oscilloscope during low-level debugging (register level).
- Experience working in AGILE or Scrum development environments.
- Experience in team-based development, using centralized issue trackers like JIRA, version control systems like SVN or git and continuous integration tools like Jenkins.
- Good team first player with strong analytical and investigation skills to work in research projects with new technologies in early design phases.
- Highly detail-oriented person with a passion for being a proactive provider of solutions.
Nice to have
- Desirable knowledge of different communication bus interfaces: I2C, SPI, CAN, CAND-FD, LIN, FlexRay, Automotive Ethernet, SerDes, etc.
- Desirable knowledge of building tools for embedded Linux systems, as Yocto, BuildRoot, OpenWRT or experience in builds starting from desktop distributions.
- Desirable experience in product customization and board bring-up for embedded Linux systems: device tree modifications, familiarity with uBoot and driver modifications for custom target boards.
- Previous experience in Python and other scripting languages is appreciated.
Full description
About the role
The era of software-defined vehicles has already arrived, and mobility industry is using software to drive innovation and create new business models and deliver more services to end consumers. To accelerate this vision, disruptor mobility tech companies like Technica are leading the changes in the electronics architecture that are needed by the industry, with our ability to deliver rapid prototyping hardware and software, being more critical than ever.
To develop this vision, we @Technica-Engineering built four years ago a completely new engineering team located in Barcelona area, which is working closely in contact with our company headquarters in Munich.
Technica is a product-oriented company, that continuously reinvest to stay ahead of the curve, so our interdisciplinary team composed by hardware and software experts is focused on the development of company own products roadmap and on innovative R&D electronics development projects with major customers.
Therefore, if you are an enthusiastic professional interested in being part of a fast-growing company with strong engineering and research culture, we are looking for a passionate Embedded Software Engineer for R&D projects to join the team and help us.
What you'll do
"The ideal candidate has a background in programming, networking and electronics and has already experience in the daily tasks related with the low-level programming for embedded systems"
- Participate in system architecture definition at early project phases of pure research projects with non-fixed requirements at project kick-off. In this kind of project, be able to give appropriate feedback to customer and internal stakeholders to assure best architecture selection.
- Understand globally system requirements and system architecture to perform and appropriate software design.
- Carry out the SW development to ensure the technical and functional feasibility of the products giving support to the project teams, with the objective of reaching cost, quality and timing goals established by the direction.
- Research, design and write new software programs and develop existing programs by analyzing and identifying areas for modification.
- Generate accurate technical manuals of the delivered software and operational documentation, as well as the required SW design delivery documents.
- Ensure the development and prototypes delivery regarding the defined plans with the client.
- Technical support within area of expertise to other team members.
- Perform research into new technologies, ideas and trends within your area of expertise and attend relevant conferences or seminars to ensure the organization remains up to date with current technological developments and in the state of the art of all emerging technologies.