Software Engineer
Role details
Job location
Tech stack
Job description
As a Software Engineer at Rowden, these are some of the core areas you'll be working in:
- Developing and testing standalone Android apps and plugins.
- Designing and implementing core components of an Android-based operating system, such as kernel modules, device drivers, memory management, and process scheduling.
- Developing system libraries and APIs that facilitate communication between components and applications.
- Debugging complex issues including handling concurrency problems, memory leaks, and system crashes, ensuring stability and reliability.
- Developing and executing comprehensive test plans, including unit tests, integration tests, and performance tests, to validate the operating system's robustness and stability.
- Utilising version control systems, particularly Git, to manage and track changes to our codebase.
- Working within Agile frameworks, participating in sprints, stand-ups, and other Agile practices.
Requirements
Do you have experience in Software development?, We are looking for someone who is passionate about technology and who actively invests in their technical skills and abilities. You will be constantly learning and developing in this role, but some key skills and experience you should already have include, * Proficient in both Java\Kotlin, C#, C++ or another Object Orientated language with extensive experience in developing, testing, and debugging software applications.
- Capable of writing clean, efficient, and maintainable code, utilising object-oriented programming principles, data structures, and algorithms to solve complex problems.
- Familiar with software development tools, version control systems (such as Git), and build tools to streamline development workflows and maintain high code quality,
- Demonstrates strong analytical and problem-solving skills with the ability to quickly grasp new technologies and adapt to changing project requirements.
- Experience in working on diverse projects, from legacy codebases to modern applications, ensuring seamless integration and enhancement of functionalities.
Communication and Collaboration:
- Collaborative mindset, with experience working in cross-functional teams in Agile frameworks.
- Exhibits a high level of professionalism, reliability, and effective communication skills. Able to work independently with minimal supervision while also collaborating effectively, contributing to project goals, and delivering quality results within agreed timelines.
Security Focus:
- In-depth knowledge of Android security practices, with a proactive approach to identifying and mitigating potential security risks.
- Experience in developing secure, resilient, and compliant mobile solutions.
Highly Desirable Experience:
- Knowledge of a variety of programming languages such as Python, Rust, Go, C# etc.
- Experience in regulated sectors delivering complex networked systems, such as defence, national security, telecommunications, financial services, or automotive industries.
- Experience in developing Android applications, with a strong understanding of the Android SDK, application lifecycle, Android development tools and UI/UX design principles., The ideal candidate will have a strong balance of the below technical skills, experience, and the behavioural competencies that we believe are key to success in the role:
- Teamworking and collaboration - you'll work closely with other engineers and developers as part of a cross functional team. The ability to communicate well, share knowledge and challenge constructively is an essential skill for the role.
- Ability (and desire) to learn - our industry changes rapidly, and you should be comfortable with regularly learning new technologies, programming languages and platforms. Lack of experience in any technology should not be a barrier to your involvement in a project that uses it.
- Adaptability, resilience, and the ability to work in a fast-paced environment.