- Home
- Jobs
- Full-stack
- Senior C++ Software Engineer
TechJobs.ie Job Insights
At a glance
- Employment type
- Full-time
- Location
- Limerick, Ireland
- Workplace
- On-site
- Category
- Full-stack
Technologies & skills
What you'll be doing
Senior C++ Software Engineer role in Limerick, Ireland (2 days onsite/week). Lead development of high-performance, distributed EDA applications. Focus on C++, performance optimization, concurrency, distributed systems, and architectural leadership. Mentor team members and champion best practices in Agile environment.
- Design, develop, and implement production-ready components for EDA applications
- Optimize code for performance, concurrency, and scalability in multi-threaded and distributed systems
- Contribute to architectural design of robust, maintainable software solutions
- Integrate applications within distributed system landscapes using advanced networking protocols
- Advocate and implement best practices including code reviews, testing, and CI/CD pipelines
- Diagnose and resolve technical challenges in distributed environments
- Provide technical guidance and mentorship to team members
- Collaborate with product management and engineering to deliver features
Key requirements
Must-have
- Exceptional command of modern C/C++
- Experience in performance optimization, memory management, and concurrency
- Proven experience in software design and development with C++ and C
- Expertise in data structures, algorithms, and object-oriented design
- Extensive experience with distributed systems and inter-process communication
- Strong understanding of networking fundamentals and protocols
- Proficiency in Linux development environment
- Experience with scripting (e.g., Bash, Python) for automation
Nice-to-have
- Experience with Docker and orchestration technologies
- Knowledge of High-Performance Computing (HPC) and parallel computing
- Familiarity with EDA domain concepts or chip design workflows
Experience: Significant and proven experience in software design and development with C++ and C, especially in high-performance, scalable, and distributed systems.
Role signals
- Technical focus
- high-performance distributed systems, architectural design, optimization
- Leadership
- Mentoring
- Architecture / system design
- Indicated in the listing
- Hands-on vs management
- Hands-on
Similar jobs
Check your CV against this job
Get a certified technical review aimed at this role.
Full job description
This role is 2 days onsite per week The Ideal Candidate Will Possess: Deep Software Mastery: Exceptional command of modern C/C++. A sharp focus on performance optimisation, robust memory management, and advanced concurrency across these languages is essential.
Problem Solver & Innovator: A natural drive to dissect complex technical challenges, translating them into elegant, efficient, and scalable software solutions.
You bring clarity to ambiguity and seek optimal, pragmatic approaches.
Agile & Adaptable Mindset: Thrives in a dynamic, fast-paced environment, embracing evolving requirements, demonstrating a proactive 'can-do' attitude, and readily contributing across all phases of the software development lifecycle.
Strategic & Influential Communicator: Ability to articulate complex technical concepts clearly and persuasively to diverse audiences, from peers to product managers and executive leadership.
You can form, articulate, and support opinions based on research and proof-of-concepts, driving consensus and change.
Collaborative Team Player: Excels in an Agile setting, working seamlessly with cross-functional teams and actively fostering a positive, inclusive team dynamic.
Automation Advocate: A strong proponent of automation across development, testing, and deployment processes to enhance efficiency and reliability.
Key Responsibilities
Lead Software Development: Design, develop, and implement critical, production-ready components for next-generation EDA applications, ensuring exceptional performance, reliability, and scalability.
Performance & Concurrency Optimization: Drive the optimization of code across multi-threaded environments, distributed systems, and low-latency operations, vital for High-Performance Computing (HPC) workloads.
Architectural Leadership: Significantly contribute to the architectural design of robust, maintainable, and extensible software solutions, with a keen eye on distributed system architecture, network topology, and communication patterns.
Distributed Systems Integration: Collaborate closely with architects and product engineers to seamlessly integrate applications within complex distributed system landscapes, utilizing advanced networking protocols and inter-process communication for efficient data exchange.
Quality & Best Practices Champion: Advocate for and implement best practices in software development, including rigorous code reviews, comprehensive unit and integration testing, and streamlined CI/CD pipelines.
Advanced Troubleshooting: Diagnose and resolve intricate technical challenges related to performance, scalability, and stability within distributed environments, including complex network and protocol interactions.
Mentorship & Collaboration: Provide technical guidance and mentorship to team members, fostering a culture of continuous learning.
Partner with product management and engineering teams to translate requirements into innovative technical designs and deliver impactful features.
Preferred Qualifications: Education: Bachelor's or higher degree in Computer Science, Engineering, Technology, or a closely related field.
Extensive C++/C Experience: Significant and proven experience in software design and development across C++ and C, with a deep focus on high-performance, scalable, and distributed systems.
Core CS Fundamentals: Demonstrable expertise in data structures, algorithms, and object-oriented design principles.
Distributed Systems & Networking: Extensive experience with distributed systems and inter-process communication paradigms (e.g., gRPC, MPI, message queues).
Strong understanding of networking fundamentals (TCP/IP, UDP, sockets), various communication protocols (e.g., HTTP/S, gRPC, custom binary protocols), and network programming/debugging tools.
Development Environment: Proficiency in a Linux development environment, including scripting (e.g., Bash, Python) for automation and tooling, and expert use of version control systems, particularly Git.
Software Quality: Strong understanding of software testing methodologies and hands-on experience with unit/integration testing frameworks.
Soft Skills: Strong analytical and problem-solving abilities, fluent in English with excellent verbal and written communication skills, self-driven, and detail oriented.
Bonus Points: Experience with containerization technologies (e.g., Docker) and orchestration.
Knowledge of High-Performance Computing (HPC) concepts and parallel computing.
Familiarity with EDA domain concepts or chip design workflows.
Register now to upload your CV
Create a free account, save a PDF or Word CV, and quick apply on roles that take applications here.