C++ Software Engineer
Role details
Job location
Tech stack
Job description
- Design, develop, and maintain high-performance applications using modern C++
- Implement and manage state machines using Boost, especially the Boost State Machine module
- Develop and optimize TCP/UDP client-server applications, including multiplexing techniques (select, poll, epoll)
- Apply asynchronous programming paradigms to improve system performance and responsiveness
- Write and maintain scripts for automation, testing, and deployment
- Work with Unix/Linux systems, including file systems, permissions, and networking
- Collaborate with cross-functional teams to define, design, and deliver new features
- Troubleshoot and debug complex system issues, At Amaris, we strive to provide our candidates with the best possible recruitment experience. We like to get to know our candidates, challenge them, and be able to give them proper feedback as quickly as possible. Here's what our recruitment process looks like:
Brief Call: Our process typically begins with a brief virtual/phone conversation to get to know you! The objective? Learn about you, understand your motivations, and make sure we have the right job for you!
Interviews (the average number of interviews is 3 - the number may vary depending on the level of seniority required for the position). During the interviews, you will meet people from our team: your line manager of course, but also other people related to your future role. We will talk in depth about you, your experience, and skills, but also about the position and what will be expected of you. Of course, you will also get to know Amaris: our culture, our roots, our teams, and your career opportunities!
Case study: Depending on the position, we may ask you to take a test. This could be a role play, a technical assessment, a problem-solving scenario, etc.
As you know, every person is different and so is every role in a company. That is why we have to adapt accordingly, and the process may differ slightly at times. However, please know that we always put ourselves in the candidate's shoes to ensure they have the best possible experience. We look forward to meeting you!
Requirements
- Bachelor's degree in information technology or related fields
- 3+ years of experience in modern C++ software development
- Advanced proficiency with the Boost C++ library, especially the State Machine module
- Experience in asynchronous programming practices
- Expertise in TCP/UDP client-server programming, particularly multiplexing
- Scripting experience with at least one of the following: Lua, Tcl, Bash, Python, or JavaScript
- Solid Unix foundation, including file systems, permissions, and networks
- You demonstrate effective communication skills
- Good English communication skills.
Benefits & conditions
- Competitive salary and 13th-month salary
- 14+ annual leaves per year
- Premium healthcare insurance, starting from your probation period
- Project reviews and yearly performance appraisals
- Annual company trips
- Teambuilding activities: Team lunch/dinner, events, and celebrations, sports clubs (football, basketball, badminton, pickleball)
- International team with flexible working time
- Tailor-made career path
- Technical workshops and training courses
- Mobility: Opportunities to be on-site abroad in our offices in over 60+ countries