JOB TITLE: Senior Software Engineer

DEPARTMENT: Software Development

REPORTS TO: Project Director

PURPOSE:

We are seeking a highly skilled Senior Software Engineer to join our dynamic software development team. The ideal candidate will have extensive expertise in C++ development and experience with modern tools and methodologies, including Docker, SQL, and microservices architecture. This role requires strong problem-solving skills, a collaborative mindset, and a passion for delivering high-quality software solutions.

KEY RESPONSIBILITIES:

  • Develop, test, and maintain software applications using C++ 17 (or newer) and relevant libraries such as STL, Boost, and POCO.
  • Design and implement scalable solutions utilizing dynamic polymorphism, template meta-programming, and multi-threading techniques.
  • Collaborate on the design and application of microservices architectures and cloud programming.
  • Utilize Docker for containerized application development and deployment.
  • Apply design patterns and UML diagrams to develop robust and maintainable code.
  • Integrate event-driven architectures using technologies like RabbitMQ, Kafka, or Pulsar.
  • Work with RDBMS/SQL databases (e.g., MySQL and Postgres) and implement distributed caching systems (e.g., Redis).
  • Ensure code quality by implementing and maintaining automated testing platforms and unit tests.
  • Utilize tools such as Git, GitHub, and GitLab for version control and participate in code reviews.
  • Collaborate within AGILE environments, using tools like JIRA for bug tracking and project management.
  • Contribute to the CI/CD processes for streamlined deployment pipelines.
  • Engage in cross-team discussions to deliver exceptional software products.
  • Bonus: Apply knowledge of Go and experience in the Financial domain where applicable.

QUALIFICATIONS, SKILLS, AND EXPERIENCE:

  • At least Bachelor’s Degree in Computer Science or a related field.
  • 3+ years of hands-on software development experience.
  • Technical Expertise in C++, STL, Boost, Go, Docker, SQL.
  • Strong proficiency in modern C++ development, including memory management and core library usage.
  • Expertise in multi-threading, concurrent programming, and asynchronous workflows.
  • Familiarity with distributed systems and tools like Redis.
  • Passion for collaboration, engaging in team discussions, and contributing to continuous improvement.