I signed an NDA, and I'm not sure what I can say about my daily work, but I'll try my best to explain it without going into too much detail.
I’m a software engineer at an American multinational company, and I’m programming a middleware that ensures safe and smooth communication between a chatbot AI and various services in order to be able to provide information to the customers related to those services.
I primarily use JavaScript and Node.js, which is a runtime environment for Javascript on the backend. The app runs on multiple Red Hat Linux (RHEL) servers.
We chose Node.js because early development is fast in Node, and we needed to show progress to management as soon as possible. Node.js uses an asynchronous model, which is excellent for efficiently handling a high volume of I/O operations, such as requests to and from APIs. Node is also well-suited for horizontal scaling, meaning you can easily add additional servers running the application to handle increased traffic or workload.
I develop on Windows, but the app itself runs on RHEL servers. We chose RHEL because it’s highly customizable and known for its strong security practices. Managing configurations at a deep level is so much easier on Linux than on Windows, which is essential when handling multiple security layers and certifications. Additionally, we are less dependent on external companies like Microsoft. RHEL is optimized for high-performance applications, offering better memory and resource management than standard Linux. It’s also widely compatible with other enterprise-grade software and includes tools for monitoring, logging, and system performance management, making it easier to integrate into a complex tech stack.
The app is based on the microservices architecture, which allows the app to have as many modules as possible, making it adaptable for various purposes. My middleware, for example, will support not only AI but other applications where secure I/O and API communication are essential.
The team consists of around 30-40 people, but I primarily develop this middleware on my own, although I do have an intern assisting me
I’d say the most difficult part of the job is communicating with others. When I need to reach out to other teams for an API or an app to implement services, or when I need input from other engineers, sometimes they don’t respond—or they give unhelpful answers, which can be frustrating. You really have to be pushy, which I don’t particularly like doing.
The most challenging part of my work is that we always have to rush, which leaves us with little time to follow best practices like Test-Driven Development.
The best part of the job is the coding itself and figuring out solutions for implementing different functionalities into the middleware.
My future goal is to become a recognizable figure in the technology field—writing blogs and speaking on programming topics. That's why I find English so important, and I am working on improving my speaking and writing skills. I want to be a strong public speaker and tech writer.
I’d also like to code more in TypeScript. At the moment, we ensure type safety with JSDoc, but I want to focus more on TDD and incorporate TypeScript in my work.
Do you have any other questions related to my field or me? Feel free to let me know in the comments.
The above is the detailed content of Engineering the Unseen: My Work as a Software Engineer. For more information, please follow other related articles on the PHP Chinese website!