Software Engineer C++
Description
Position: Software Engineer (C++)
Office/Station: Product
DUTIES AND RESPONSIBILITIES:
- Write scalable, robust, testable, efficient and easily maintainable code
- Translate requirements into a stable, working and high-performance software
- Work with peers in designing and developing algorithms
- Do peer code review before committing to code repository
- Work on features and maintenance hot fixes of existing products
- Unit-test code for robustness; including edge cases, usability and general reliability
- Manage staging/test environment, and support software testing and quality assurance
- Improve application performance and other non-functional requirements such as reliability
- Suggest and implement improvements on current products
- Deliver technical discussions on implemented functionalities
- Comply with coding standards set by the organization
- Adapt the SCRUM process software development life cycle
- Participate in Sprint planning to assess and clarify requirements to the product owner
- Update the team on the status of tasks and raise potential blockers (if any) in the daily stand-up meeting
- Present completed features in the Sprint review to stakeholders
- Participate in team development activities (team building, training, etc.)
- Contribute to the success of the team's objectives
- Perform related duties as assigned
Working Relationships:
- Directly reports to the Technical Lead Software Developer
Working Location:
- Taguig City, Philippines
Qualification Standards:
Education: Bachelor’s Degree in Computer Science/Engineering or any related courses
Experience: At least 3 years experience in Software Development
Technical Skills:
- At least 3 years of professional software development experience
- Hands-on experience as a software developer in C++ with excellent track record
- Strong proficiency in C++ with fair knowledge of the language’s paradigms, constructs, patterns and idioms
- Knowledge of the standard library, STL containers and algorithms
- Good understanding of memory management in non-garbage collected environments
- Experience in SCRUM development process
- Experience with development collaboration tools (e.g., JIRA, Git)
Having any of the following is an advantage:
- Strong software development foundation implementing design patterns, OOP and coding best practices
- Experience in analyzing, profiling and determining bottlenecks for improving reliability and performance
- Exposure to or knowledge in high performance computing and low latency development
- Exposure to test driven development using Jenkins and other continuous integration technologies
- Experience working with C#
- Knowledge of low-level threading primitives and real-time environments
- Knowledge in system-level development in intermediate languages such as C
- Experience working with remote data via REST and JSON
- Experience in writing native modules for a high-level language (e.g. Golang, Java, Python)
- Experience in integrating 3rd party libraries, frameworks, messaging and services
Other Skills:
- Strong analytical skills
- Excellent problem-solving ability
- Would like to work as part of a self-organizing Scrum team in a scaled agile framework
- Resourceful and with a Good Learning Attitude
- Strong verbal, written and interpersonal communication skills
- A team player and communicator who enjoys creative freedom and independence
- Proficient in oral and written English communication
- Excellent human relations and customer service skills
- Fast learner, short learning curve
- Ability to learn new language and technologies
- Can work with minimum supervision