C++ Developer
Primary stack
Job description
About the Position
We are seeking a skilled C++ Developer to create a robust application for searching strings in files. This role requires expertise in multi-threading, error handling, and efficient memory usage.
Responsibilities
- Create an application which can be used to search for a string in files.
- The application will receive two command line parameters. The first parameter is a path to a file or folder, while the second parameter is the string to be searched for (maximum length of 128 characters).
- Print the output to stdout in the format
<file>(<position>): <prefix>…<suffix>.<file>: Name of a file containing the string<position>: Offset within the file where the string started (zero based)<prefix>: Contains three characters in front of the match<suffix>: Contains three characters after the match
- When there are not enough characters for the whole prefix or suffix (at the beginning or end of the file), use as many as there are available.
- In the prefixes and suffixes, tabs should be printed as
\tand new lines as. - The application must be able to recursively traverse and process all files in sub-directories.
- The application must take into account that files might be very large (potential memory constraints/limitations).
- The application must not crash for any reason (ensure that exceptions are handled properly, handling of errors from API functions, etc), and should print meaningful error messages when a problem occurs (informing when there was not enough arguments provided, input path is invalid, etc).
- The solution should make use of multi-threading in processing data (at least theoretically). Please note that a single threaded solution may be faster in this sequential scan, especially on slower drives. Try to maximize speed and compare your results with a single threaded solution.
Requirements
- Advanced knowledge of C++
- Proficiency in multi-threading
- Strong understanding of error handling and exception management
- Efficient memory management skills
- Usage of object-oriented programming principles
- C++ programming best practices
- Systematic use of naming conventions
- Good code structure
- Handling of error states and exceptions
- Avoidance of dangerous or error-prone constructs
- Understanding of the “inner workings” of C++ and standard functions (e.g.: wastage of memory or unnecessary (implicit/internal) string/memory copy operations)
- Avoidance of memory leaks
We Offer
- Opportunity to demonstrate your programming style and expertise
- Potential for a higher job level and more appealing salary offer
- Detailed discussion of your solution during an interview
About the Company
By taking this challenge, you accept ESET Terms and Conditions and acknowledge ESET Privacy Policy.
Send us your solution to the following email address: [email protected]
© ESET. This job description was sourced from the employer's public career page. TheJob is not the employer — we index the posting and route candidates to the source. All content rights and hiring decisions belong to the employer.
Cybersecurity,Software Development,Financial Services,Retail,Telecommunications
About the Company ESET is a global digital security company protecting millions of customers and hundreds of thousands of companies worldwide. The company has developed its solutions based on 30 years of expertise, with 13 research and development centers globally and local customer support. Products, Services & Tech Stack Core Solutions: ESET Antivirus: A paid antivirus program popular in Poland. ESET PROTECT: A platform for comprehensive protection. ESET HOME: Optimal protection for personal devices. ESET BUSINESS: Comprehensive protection for workstations, data, and networks. Technologies & Frameworks: AI-based Threat Detection: Utilizes advanced AI for proactive threat detection and blocking. AI-enhanced Computer Protection: Leverages AI capabilities for faster and more effective protection. Military-grade Encryption: Secures files and USB drives with military-level encryption. VPN: Offers unlimited bandwidth and protection for up to 10 devices. Project Scope & Target Clients Client Base: Home Users: Individuals seeking protection for personal devices. Businesses: Companies requiring comprehensive protection for workstations, data, and networks. Engineering Scale: Global Reach: With 13 R&D centers worldwide, ESET operates on an international scale. Local Support: Provides local customer support to cater to regional needs.