Senior Software Engineer
Legrand has an exciting opportunity for a Senior Software Engineer to join the Data Center Power and Control ZPE Systems Team in Blumenau, SC, Brazil. This senior position will work on ZPE Cloud project, that is a SaaS solution hosted on a cloud provider and integrated inside Nodegrid OS. This position will work on the platform team, building and operating the cloud microservices that manage a large fleet of distributed network devices. For this role we are looking for a person with strong engineering principles that can help plan, document and then execute with quality as a priority. ZPE Cloud as a product provides a centralized view and management platform for Nodegrid OS, that in its turn is the Linux based OS for our serial console and service routers products.
Among the main responsibilities:
- Design, build and maintain cloud microservices that manage a large fleet of distributed network devices.
- Plan and document technical solutions before implementation, keeping quality, security and reliability as first-class concerns.
- Model and operate device-to-cloud communication over MQTT, working with message queues to handle telemetry, configuration and command flows at scale.
- Develop and evolve cloud-side microservices backed by PostgreSQL and RabbitMQ, keeping them performant and observable.
- Lead code reviews, set and uphold coding standards, and mentor engineers across levels.
- Own architectural decisions for your area and contribute to the long-term technical vision of ZPE Cloud.
- Participate in incident response and root cause analysis, and drive process improvements that raise team effectiveness.
We are looking for a senior engineer with strong ownership who can plan, document and then execute with quality as the priority. You should communicate clearly with technical and non-technical stakeholders and raise the bar for the people around you.
- Deep expertise in software architecture, scalability and system design.
- Proven experience delivering complex projects with minimal oversight.
- Ability to reason about distributed systems: message brokers, queues, eventual consistency and fault tolerance.
- Comfortable with ambiguity, able to balance immediate delivery with long-term technical health.
- Mentors and coaches others and influences technical direction through evidence and consensus.
Skills/Knowledge/Abilities:
These are the minimum skills we’re looking for in a good candidate:
- Strong programming skills in Python and Go (Golang).
- Experience building and consuming REST or message-driven APIs in microservice architecture.
- Solid knowledge of relational databases, particularly PostgreSQL.
- Hands-on experience with messaging and queueing systems such as RabbitMQ.
- Practical understanding of security, performance and reliability trade-offs.
- Experience with CI/CD pipelines, testing discipline and clear technical documentation.
- Excellent written and verbal communication.
Nice to Have:
- Good command of Linux and computer networking concepts (TCP/IP, routing, services).
- Programming experience in C++.
- Experience with MQTT for messaging.
- Front-end development with React.
- Experience with cloud platforms and infrastructure as code.
- Background in managing or monitoring fleets of distributed network devices.