Summary
Join Procore Technologies as a Software Engineer II - Android and contribute to the Mobile Team. You will collaborate with the Project Management team, designing, building, and shipping software using your analytical and engineering skills. This role involves building new features using the latest Android technologies, conducting code reviews, and providing mentorship. You will also help set team standards and handle the full development lifecycle, including operational support. The position reports to the Engineering Manager and offers the option of working remotely from the Cairo office. Immediate employment is desired.
Requirements
- Bachelor’s Degree in Computer Science, Engineering, or a related field, or equivalent work experience
- 2+ years of Engineering Experience (1+ years of experience building native Android applications using Kotlin)
- Understanding of Android’s architectural components (Room, LiveData, Jetpack, Compose, etc.) and the MVVM architecture
- Experience working with RESTful APIs
- Broad and deep understanding of Android’s architectural components (Room, LiveData, Jetpack, Compose, etc.) and the MVVM architecture
- Understanding of multi-threading, concurrent programming, and performance optimization
- Proven ability to develop and ship high-quality software products that are performant and reliable
- Proven working knowledge of good software engineering techniques, methodologies, and best practices
- Strong communication skills and the ability to work closely with others both within and adjacent to the existing team
Responsibilities
- Collaborate with Engineering, Product, and UX to design and build solutions that delight users and solve critical business problems
- Build new features leveraging the latest Android technologies, backed by robust unit tests and analytics
- Utilize a customer-centric approach to lead architectural design decisions that improve scalability and performance for users
- Develop fellow teammates by conducting code reviews, providing mentorship, pairing, and training opportunities
- Help set standards for your teams, providing technical and procedural advice, and decision-making
- Self-direct your work and task selection. Anticipate functional limitations of systems they’re developing
- Handle the full lifecycle of development within your team, including operational support and incident resolution
- Challenge tasks that seem unclear or would benefit from further direction
- Use a customer-centric approach to lead architectural design decisions
- Develop fellow teammates by conducting code reviews, providing mentorship, pairing, and training opportunities
- Have a significant impact that extends beyond the boundaries of your team, on projects affecting scalability, performance, and new value delivery
Preferred Qualifications
- Experience with Coroutines and Flows is a plus
- Experience building apps with offline capabilities is a plus
Benefits
- Generous paid time off
- Healthcare coverage
- Career enrichment and development programs
Disclaimer: Please check that the job is real before you apply. Applying might take you to another website that we don't own. Please be aware that any actions taken during the application process are solely your responsibility, and we bear no responsibility for any outcomes.