Sobes.tech
Intern

Give an example when you had to develop a product under a tight deadline.

sobes.tech AI

Answer from AI

Developed a network traffic analysis module in a performance monitoring library. The deadline was two weeks, as the client was awaiting a release with this functionality.

Main challenges:

  • Lack of detailed specifications — had to research protocols independently.
  • High performance requirements — traffic could be intensive.
  • Need to integrate with an existing, quite complex codebase.

Solution:

  1. Prioritization: Identified key protocols (TCP, UDP, IP, HTTP) and focused on them first.
  2. Using existing solutions: Applied the libpcap library for traffic capture and nlohmann/json for report generation. This sped up development and increased reliability.
  3. Testing: Developed automated tests for each protocol to quickly identify errors.
  4. Iterative development: Constantly demonstrated working prototypes, receiving prompt feedback.

Here is an approximate structure of the HTTP traffic parser code:

#include <iostream>
#include <string>
#include <vector>

// ... other header files ...

struct HttpRequest {
    std::string method;
    std::string path;
    std::string version;
    std::vector<std::pair<std::string, std::string>> headers;
    std::string body;
};

HttpRequest parse_http_request(const std::vector<unsigned char>& packet_data) {
    HttpRequest request;
    // Logic for parsing HTTP request from raw packet data
    // ...
    return request;
}

int main() {
    // Usage example
    std::vector<unsigned char> packet_data = { /* raw packet data */ };
    HttpRequest parsed_request = parse_http_request(packet_data);

    std::cout << "Method: " << parsed_request.method << std::endl;
    // ... output other fields ...

    return 0;
}

As a result, the module was delivered on time, functional, and passed internal and external testing. The main lesson was the importance of flexibility, effective use of existing tools, and constant communication with stakeholders.