C++ Software Engineer

Зарплата

от 100 000 ₽

Требования

БэкендC++XMLGolang

Местоположение и тип занятости

Санкт-ПетербургПолный рабочий деньМожно удаленно

Описание вакансии

Условия работы

Engineer will and/or should

  1. Comfortable to move from one project to another
  2. Able to learn and contribute quickly in the project
  3. Learn and use new technologies during project
  4. Create detailed specification based on higher level spec and requirements
  5. Capable of working collaboratively with stakeholder and user in creating user stories
  6. Actively participate in the process of design, test and development of software based on user stories.
  7. Give updates daily on his work (written report or pushing code to git repo) and participate in daily standup meeting
  8. Contribute to organization with the highest standard to deliver high quality product
  9. Aware that software development process is iterative in nature and always improving current implementation
  10. Writing design, technical and operational documentation
  11. Building reusable code and libraries for future use
  12. Produce well-designed, well-organized, testable, optimized, and documented source code
  13. Writing design, technical and operational documentation
  14. Optimization of the application for maximum speed and scalability
  15. Implementation of security and data protection (OWASP security principles)
  16. Involvement in (SDLC) Software Development Life Cycle with Agile methodology
  17. Practicing TDD (Test Driven Development)
  18. Comply with project plans and industry standards
  19. Collaborate with other programmers to design and implement features
  20. Working closely with other staff, such as Project managers, Systems analysts, Operation support and Business development team
  21. Work independently when required and be accountable for the software development progress
  22. Continuously learn and improve skills
  23. Benchmark and profile system performance

Requirements:

  1. Strong proficiency in C++, with fair knowledge of the language specification
  2. Strong knowledge in C++ design patterns
  3. Thorough knowledge of the standard library, STL containers, C++ data structures and algorithms
  4. Good understanding of memory management in non-garbage collected environments
  5. Familiarity with templating in C++
  6. Knowledge of the latest C++11 and C++14 standard
  7. Knowledge of low-level threading primitives and real-time environments
  8. Knowledge and experience with boost C++ library
  9. Familiarity with creating C API
  10. Implementation of automated testing platforms and unit tests (TDD)
  11. Proficient understanding of git
  12. Familiarity with continuous integration
  13. Experience of working in a agile team with scrum methodology
  14. Knowledge of event based programming in C++
  15. Experience with Python, Golang, RabbitMQ (message queue), Couchbase and Docker is appreciated
  16. Experience working with XML base standard (XSD) is appreciated
  17. Experience in designing and/or implementing transport protocol is appreciated
  18. Experience in security aspect of transport protocol is appreciated
  19. Knowledge of HTTP and Websocket standards is appreciated

Languages:

English - Can read and write technical documents. Intermediate level of speaking.

About projects:

1. BPM platform

Definition

BPM platform is a collection of application to help company design, manage and monitor business process. Usually company develop specific app utilizing BPM platform capabilities tailored to their requirements.

Description

You will be developing C++ base BPM platform engine based on open standard (BPMN-Business Process Model & Notation). You will involve from design to development of the BPMN execution engine following standard specification and its components (API, Storage, etc). You will actively participate in creating user stories and specify tests to confirm completion of a user story. You will use TDD. You will collaborate with other team members to integrate various BPM platform apps into one cohesive product.

Stack

We use C++, Golang, Couchbase, Redis, RabbitMQ and Docker.

Example

HR department want to create self service employee portal for leave request and sick notification. They use BPM platform to design process in BPMN format, deploy to BPM engine. Then they develop user portal which use BPM platform API to initiate a process.

2. Highspeed Transaction Gateway

Definition

With recent trend of app consumerization, companies are seeking to open their system (API or app) to target wider audience. However, companies are facing challenges such as slow legacy app that unable to handle millions of requests per second, security issues, tight coupled app that difficult to scale and many others.

Description

Highspeed Transaction Gateway is a platform that provide API gateway that secure, fast, reliable and capable of handling large volume of transaction. You will involve to designing and development of secure and reliable transport layer, Nginx server module and middlewares to handle and process large volume of request. You will design and develop API for management and monitoring functions. You will design and develop client libraries for mobile and web app. You will actively participate in creating user stories and specify tests to confirm completion of a user story. You will use TDD. You will collaborate with other team members to integrate several apps into one cohesive product.

Stack

We use Nginx, C++, Golang, Couchbase, Redis, RabbitMQ and Docker.

Example

When a Bank want to open their API the need to make sure the API layer and their backend is scalable and can handle million of requests. They also need to make sure its fast and secure. That Bank can use Highspeed Transaction Gateway as gateway to their API.

Бонусы

Flexible working hours, the ability to work from 9.00 to 18.00 from home, business trips to Jakarta, English courses if necessary.

Дополнительные инструкции

If you like our position and if you are ready to pass technical test, please send your CV with your email.

Thank you.