Job Purpose
The Senior Software Developer calls for an experienced, knowledgeable, and talented individual to design and develop software for the User Configurable Open System (UCOS) product.
As a senior software engineer, you will have an opportunity to apply your versatile embedded, systems, and application software development skills to UCOS’s expanding use in myriad industrial controls and automation systems and Industrial IoT. You will lead and collaborate with other engineers while contributing at all phases of the software development lifecycle.
Job Description
- Architect, design, implement, test, and deliver high-quality, performant software products.
- Work cross-functionally with software, application, and quality engineers to ensure products meet engineering and client success criteria.
- Actively participate in the definition and implementation of new processes and improvements.
- Identify and create new technologies and ideas to increase the organization’s intellectual property and better address customer needs.
- Present your designs and solutions to internal and external teams and review designs of software and quality engineers.
- Develop test plans and test automation processes to increase automated functional tests.
- Mentor team members in development/test technologies, tools, and processes.
- Location: Tech Center - Ilha do Fundão - RJ
You are meant for this job if:
- You have a Bachelor of Science degree or related qualification.
- You possess expertise in software engineering.
- You have expert experience in C/C++, developing embedded software and systems software.
- You have deep knowledge of object-oriented programming and experience with at least one of the following: Java, C#, Python, Ruby.
- You are familiar with containerization technologies (such as Docker), Kubernetes technologies (such as K3S, Helm charts, Rancher), and IoT protocols (MQTT, REST API, Kafka).
- You have knowledge of cloud technologies such as AWS.
- You have systems software programming knowledge of Windows and Linux OS.
- You have working knowledge of GUI frameworks like Microsoft MFC, WPF, Qt, or similar.
- You understand database technologies such as SQL, ODBC, and relational database schema design.
- You understand networking protocols (TCP/IP, UDP), wired interfaces (Ethernet, USB), and wireless interfaces (Wi-Fi, Bluetooth, Cellular, Satellite).
- You have experience designing, building, and maintaining APIs for internal/external services.
- You have exposure to industrial protocols and APIs such as OPC, Profibus, Profinet, Modbus, EtherIP, etc.
- You have exposure to serial communication protocols (I2C, RS-485, RS-232, CAN, SPI).
- Knowledge of embedded design and debugging tools (JTAG, protocol analyzers, emulators) is a plus.
- You are familiar with web technologies such as JavaScript, CSS, HTML5, XML, JSON, and Ajax.
- You have experience with configuration management tools (version control, bug tracking, change management, automated builds, coding standards).
- You are experienced in agile and iterative software development processes.
- You possess excellent verbal and written communication skills.