The Senior Software Engineer role will report to their line manager who will be aligned to the engineering discipline (where possible). The Senior Software Engineer will help lead the development of our cloud platform product Rise-X EOP. This is a hands-on role responsible for overseeing and implementing the latest technologies to ensure that the platform is running on the most advanced technology stack. The Senior Software Engineer will be expected to code on a daily basis (80%+).
The Senior Software Engineer must have skills in the technology utilised in this platform that include:
dotnet 9+ including asp.net, Orleans, MVC, OAuth 2.x
MongoDB queries and tuning
General Azure Services including:
Container Services
Key Vault
App Services
Blob storage and CDN
React 18+
Understanding of modern architectures such as the Jamstack architecture and event sourcing
As a Senior Software Engineer, you will work closely with the platform Architects and Clients to help continue to build the software engineering and development culture of our company. You will be responsible for implementing the latest secure development practices into the development process. You will collaborate with the fellow engineers to implement the technology stack with the company's long-term objectives.
In addition to providing technical leadership and mentorship to the software engineering team, your key responsibilities will include the following:
Development and Coding [Coding]
1. Writing and Reviewing Code:
Develop new features and maintain existing codebase using .NET C#.
Write clean, scalable, and efficient code.
Review and approve PRβs including code reviews to ensure adherence to coding standards and best practices.
2. Debugging and Troubleshooting:
Identify and fix bugs or issues in the software.
Perform root cause analysis for production issues as needed.
Technical Leadership [Coding]
1. Technical Guidance:
Provide technical guidance and mentorship to junior and mid-level developers.
Lead technical discussions and ensure best practices are followed.
2. Architecture and Design:
Collaborate with Architects to design and architect new features or modules.
Participate in design reviews and provide feedback on system architecture.
Project Management [Coding]
1. Sprint Planning and Management:
Participate in agile ceremonies such as sprint planning, daily stand-ups, and retrospectives.
Break down tasks and assign them to team members.
2. Project Coordination:
Work closely with project managers and line managers to align on project goals and timelines.
Ensure project deliverables are met on time and within scope.
Customer Interaction [Coding/Other]
1. Technical Leadership in Customer Projects:
Act as a technical point of contact for customer projects.
Lead customer project implementations, providing technical expertise and ensuring customer satisfaction.
2. Requirements Gathering and Analysis:
Work with customers to understand their requirements and translate them into technical specifications.
Provide technical input during customer meetings and presentations.
Cloud Services and Database Management [Other]
1. Azure Services:
Utilize Azure services for deployment, scaling, and management of the application.
Monitor and optimize Azure resources for cost and performance.
2. Database Management:
Design and maintain MongoDB databases.
Ensure data integrity, performance, and security of database systems.
Continuous Improvement [Other]
1. Research and Development:
Stay up-to-date with the latest industry trends and technologies.
Experiment with new tools and technologies that could benefit the project or the team.
2. Process Improvement:
Identify and implement process improvements to enhance team productivity and software quality.
Advocate for and implement DevOps practices to streamline the development pipeline.
Documentation and Reporting [Other]
1. Technical Documentation:
Write and maintain clean code and update notion resources as required
Document technical decisions and project plans.
2. Reporting:
Provide regular status updates to Architects and line managers.
Contribute to reports and presentations as needed for stakeholders.
By handling these duties, a Senior Software Engineer plays a crucial role in ensuring the technical success of the software product, leading the development team, and interfacing with customers and internal stakeholders to deliver high- quality solutions.