Android Developer
Job description
.
About the role
Konrad is a next generation digital consultancy dedicated to solving complex business problems for global clients with creative and forward-thinking solutions. The company fosters a culture built on innovation and a commitment to creating best-in-class digital products used by hundreds of millions of consumers worldwide. It hires exceptionally smart, analytical, and hard working people who are lifelong learners. As an Android Developer, you will own the development of Android applications, working within the software development team to assist in building consumer and enterprise solutions. This role is designed for developers who feel confident in their technical ability and want to be an integral part of a highly-skilled and constantly improving development team at Konrad.
Key facts
What you'll do
- Architect and implement robust Android features by writing maintainable, testable, and performant software in close collaboration with our world-class team.
- Champion quality across the development lifecycle by participating in code review and performing extensive testing to ensure we deliver high quality software that meets business goals.
- Scout and evaluate emerging tools and technologies, then research new capabilities and share those findings with the team to drive continuous improvement.
- Translate complex requirements into clear technical specifications while communicating clearly and effectively with all members of our cross-functional team.
- Optimize application performance, responsiveness, and scalability to ensure an exceptional user experience on a wide range of Android devices.
- Apply modern Android development practices, including Android Jetpack components, and leverage design patterns such as MVVM and MVP to build reliable and maintainable codebases.
- Collaborate with backend engineers to define and consume RESTful APIs and integrate server-side components seamlessly into mobile clients.
- Mentor junior developers by sharing knowledge of Kotlin and Java, promoting code standards, and fostering a culture of learning within the team.
- Contribute to the evolution of development workflows and processes, identifying bottlenecks and proposing improvements that increase efficiency and quality.
- Participate in agile ceremonies, provide status updates, and help refine the product backlog to ensure priorities align with stakeholder expectations.
- Investigate and resolve production issues, using logging, analytics, and crash reporting tools to diagnose problems and implement timely fixes.
- Explore third-party libraries and SDKs, assessing their suitability and integrating them safely into the application architecture.
- Document technical decisions and implementation details to support long-term maintenance and future feature development.
- Support the release process by creating build variants, managing versioning, and validating releases across different environments before deployment.
Requirements
- Demonstrate experience developing Android applications from concept to production, with a portfolio of shipped apps that showcase your technical capabilities.
- Show a strong command of important programming and computer science concepts, including data structures, algorithms, and software design principles.
- Prove an understanding of how mobile applications are built from end-to-end, including client-side logic and server-side interactions and dependencies.
- Exhibit fundamental knowledge of core mobile principles, such as UI implementation, lifecycle management, common development frameworks, and REST APIs.
- Apply a working knowledge of modern Android development, Java and/or Kotlin, Android Jetpack libraries, and established design patterns such as MVVM and MVP.
- Display great interpersonal skills, since the role requires very close collaboration with product managers, designers, and other engineers on a daily basis.
- Maintain a proactive personality with a strong desire to deliver your best work and take ownership of challenges and outcomes.
- Show a genuine love for improving software development workflows, processes, and tooling to drive efficiency and quality across the team.
Nice to have
- Understanding of functional reactive programming and ReactiveX frameworks is a plus!
- Experience with or an understanding of newer approaches to networking, like GraphQL.
- Other mobile development experience, such as iOS development using Swift, or cross-platform development with React Native, Flutter, Ionic, Xamarin, or Cordova.
Practical notes
The role is based in Toronto and requires availability during standard business hours. Travel is not required for this position. The position is open to eligible candidates who can meet Canadian work authorization requirements.