工作內容
# Primary Responsibilities
- Accurately comprehend and execute the architect's designs, with the ability to independently design detailed software components without requiring extensive intervention. Developing software in C++ often involves independently designing components that the architect may not directly oversee, making strong software design skills a core value for senior C++ engineers.
- Transform proof-of-concept designs or minimum viable products into complete software solutions.
- Maintain existing codebases and continuously refactor them to ensure compatibility with various futures trading APIs.
- Review C++ code written by team members, provide guidance, and help them produce high-quality C++ code.
- Stay updated on the latest C++ advancements, share insights with team members, and guide the team in effectively leveraging advanced C++ language features.
# Required Skills
- Educational Background: Master's degree or higher in Computer Science. As a senior C++ engineer, you are expected to have taken advanced courses such as Advanced Computer Architecture, Advanced Operating Systems, and Software Engineering to ensure you possess the skills to develop high-performance parallel programs while maintaining clean, testable, and maintainable architectures.
- Modern C++ Expertise: Familiarity with C++20 or later and a deep understanding of the design principles behind C++ language mechanisms, beyond their surface-level usage.
- C++ Core Guidelines: Comprehensive knowledge of the guidelines, including their underlying principles. A senior engineer should understand when and how to apply or deviate from these guidelines based on project requirements.
- C++ Idioms: Proficiency in widely used idioms like NVI, PImpl, RAII, and Copy-and-Swap to minimize errors, optimize performance, and reduce compile times.
- Cross-Language Design Concepts: Understanding design patterns in Modern C++ and their trade-offs. A senior engineer must have strong analytical and design skills to adapt and refactor software iteratively based on evolving business needs.
- Debugging and Diagnostic Tools: Proficient in using debuggers and tools for memory and multithreading debugging.
- Clang Tools: Experience integrating tools like clang-format and clang-tidy into your workflow.
- Linux Proficiency: Advanced Linux system operations, including CMake and GNU make.
- System Programming: Familiarity with Linux system programming and system calls.
- Testing Frameworks: Knowledge of unit testing frameworks like GoogleTest.
- Cross-Platform Network Programming: Expertise in developing cross-platform networked applications.
- Database Programming: Proficiency in SQL syntax and database programming.
- Git Mastery: Advanced Git command-line operations.
- AI Tools: Skilled in using modern AI tools to enhance productivity and learning efficiency, enabling problem-solving in new and challenging domains.
# Bonus Skills
- Advanced English reading and listening skills, enabling efficient learning from English books and YouTube channels. While AI tools can help overcome language barriers, direct comprehension remains an advantage.
- Deep understanding of differences across C++ language standards and ability to resolve ABI issues.
- Expertise in performance analysis tools such as gprof, perf, valgrind, KCachegrind, or Intel vTune to identify and resolve performance bottlenecks.
- Experience in developing low-latency trading systems.
- Knowledge of other programming languages.
- Familiarity with Clean Architecture and Domain-Driven Design.
- Advanced algorithmic skills for performance optimization.
- Experience in developing, modifying, and optimizing Linux drivers.
- Advanced skills in Docker, Podman, and Kubernetes.
- Proficiency in advanced Linux system administration.
- Experience in financial product trading (stocks, futures) or related system development.
工作說明
-
工作縣市:新北市
- 上班地點:新北市新莊區
-
工作待遇:120000 ~ 150000
-
上班時段:日班,
-
需求人數:1
條件要求
-
工作經歷:
5年以上
-
學歷要求:碩士
-
科系要求:
資訊工程相關
-
專長需求:
-
擅長工具:
Linux OOAD OOP Systems Analysis UML Git C++ MySQL
- 具備駕照:
-
其他條件: