Software Engineer
Omnitracs
Who We Are
Solera is a global leader in data and software services that strives to transform every touchpoint of the vehicle lifecycle into a connected digital experience. In addition, we provide products and services to protect life’s other most important assets: our homes and digital identities. Today, Solera processes over 300 million digital transactions annually for approximately 235,000 partners and customers in more than 90 countries. Our 6,500 team members foster an uncommon, innovative culture and are dedicated to successfully bringing the future to bear today through cognitive answers, insights, algorithms and automation. For more information, please visit solera.com.
The Role: Software Engineer Mobile-Android
The Lead Software Engineer is responsible for playing a leading role on a team focused on the development of mobile software applications. This person analyzes, designs, programs, and debugs software enhancements. Using Android/Java/Kotlin programming language, will design and write code and perform testing and debugging of applications. Prepares documentation and procedures for installation and maintenance. May interact with users to define systems requirements and/or necessary modifications. Experienced in object oriented design, coding, performance tuning, and unit testing. Knowledge of logical data modeling and experience in defining and using databases programmatically. The role will be about 75% development and 25% system maintenance and support. This person must also have solid communication and team building skills, and must be able to participate in software design discussions and guide the architecture of the solution based on proven object oriented design concepts, industry standard patterns, and Google best practices. Mentors, guides and aids the growth of less-experienced developers through leadership.
Essential Responsibilites and Duties
Translates business requirements to conceptual solution architecture and high-level project estimates.
Develops, modifies, and implements Mobile applications according to business requirements using:
- Android/Java/Kotlin Development
- SQLite
- Android Studio
- Cross-platform development
- Open Source Technologies
- Bluetooth and Wifi communication
- RESTful interfaces
- XML and JSON protocols
- C/C++ (preferred)
- Kotlin
- JUnit,
- Mockito, Mockk
- Espresso testing framework
- Jetpack Compose
- Dependency Injection frameworks like Dagger/HILT
- Co-Routine
Good to have
- Appium
- Logical data modeling, database definition and manipulation, and data synchronization
- Object oriented design, coding, performance tuning, and unit testing
- Research, extraction and analysis of complex data
- Authors and reviews technical requirements to ensure compliance with business requirements
- Performs proper unit testing and software code writing (including automated unit testing)
- Familiar with appropriate standards and techniques used during the Software Development Life Cycle process (SDLC, security) and applies them appropriately
- Participates in the testing process through test review and analysis, test witnessing and certification of software
- Participates in peer code reviews and develops skill level of others through mentorship
- May work on multiple tasks/projects simultaneously with various team members and/or other groups both internally and externally
- Engages effectively in self-directed time management and prioritization of workload
- Perform such other duties as may be assigned by management
- Coordinates efforts with Host and Embedded teams
Qualifications
- Bachelor’s degree in Computer Science, Computer Engineering, or Electrical Engineering
- Must have experience on Kotlin
- 3+ years’ experience in a relevant roles
- Solid understanding of the full mobile development/application life cycle.
- Unit-test code for robustness, including edge cases, usability, and general reliability
- Ability to write clean, maintainable code which others can work on
- Keenness to decrease tech debt, participate in code review sessions and suggest best practices
Knowledge/Skils/Abilities
- Excellent working knowledge of logical data modeling and Database management systems
- Excellent working knowledge of Android Development environment and process
- Versed in industry standard Software Development Life-Cycle (SDLC) process methodologies and Agile methodologies such as SCRUM
- Knowledge of Agile practices
- Knowledge of Open Source Technologies
- Knowledge of developing mobile applications
- Transportation industry knowledge desired but not required
- Excellent interpersonal and communication skills
- Experience mentoring less experienced developers
- Approaches software development using industry standard concepts, practices, and procedures
- Ability to work on multiple tasks simultaneously with various team members and/or other groups both internally and externally
- Ability to effectively engage in self-directed time management and prioritization of workload
- Ability to work independently to develop new skills as needed to support new products and applications
- Ability to coordinate and oversee parallel efforts for multiple developers
- Ability to work across timezones