Lead Developer/Senior Software Engineer
Our client is a leader in monitoring IoT technology, developing innovative critical resource monitoring solutions. Exceptional software is at the core of their customers innovations.
As a Lead Developer/Senior software engineer you will lead a cross-functional team of talented developers, contribute hands-on to software development, drive the technical direction of their products, and play a key role in expanding their digital product portfolio.
About the Role
We are seeking an experienced developer/software engineer to help deliver the company's digital product strategy. You will take ownership of a key part of the digital product portfolio, working closely with the Head of Digital to shape its future. Additionally, you'll lead a technical team to deliver the strategic commitments.
This role requires strong software engineering expertise, an understanding of system design and the ability to solve complex problems collaboratively.
Key Responsibilities
* Technical Leadership: Lead a cross-functional technical team, providing mentorship, technical guidance, and process enhancements to ensure team success.
* Collaboration: Work with the Head of Digital, Tech-Leads, and stakeholders to define and prioritize product features, ensuring technical implementation meets business needs.
* Development: Design, develop, and maintain web and app software using the core tech stack (C# .NET, React, Azure, Git, .NET MAUI).
* Firmware & APIs: Develop and maintain firmware, APIs, and database systems using technologies like C, C++, and Azure.
* System Improvements: Identify opportunities to enhance system reliability, simplicity, and maintainability, recommending tech stack updates where needed.
* Innovation: Stay informed of industry trends and emerging technologies, evaluating their potential impact on the product portfolio.
* Risk Mitigation: Identify and address technical risks and develop strategies to manage technical debt.
* Culture Building: Foster a culture of innovation, experimentation, and continuous learning.
* Cross-team Contributions: Participate in architecture discussions and support wider software development initiatives.
* User Support: Provide responsive support for urgent issues affecting system users.
Role Requirements
Leadership Skills
Whether you're an experienced or first-time leader, you'll need:
* Strong verbal and written communication skills.
* Ability to motivate and inspire team members.
* Excellent interpersonal skills for effective collaboration with stakeholders and team members.
* Problem-solving and troubleshooting expertise.
* A flexible attitude to manage changing priorities.
* Understanding of agile software development methodologies and their trade-offs.
Technical Skills
Core Requirements:
* 5+ years of experience in software development.
* Proficiency in Linux/Unix and Windows environments.
* Familiarity with cloud services, especially Azure.
* Strong knowledge of networking, network security, and IT security.
* Understanding of best practices for always-on, always-available services.
* Open-mindedness and a willingness to learn new technologies as needed.
Technical Expertise by Team Focus
Product Development Team:
* Full-stack web development experience with C# .NET, React, Git, and CI/CD pipelines.
* Experience with .NET MAUI for app development (a plus).
* Strong knowledge of RDBMS and SQL, especially PostgreSQL.
Embedded & Data Platform Team:
* Expertise in C and C++ development.
* Firmware development experience for Embedded and IoT devices.
* API development experience.
* Strong understanding of computer architecture, operating systems, and device drivers.
* Proficiency in debugging firmware for microcontrollers and SoCs.
* Familiarity with IoT protocols (eg, MQTT).
* Strong knowledge of communication protocols (TCP/IP, I2C, MODBUS, SDI12, etc.).
* Understanding of device management and security protocols (eg, TLS, DTLS).