Source description
About the role
Software Engineer - Premium Engineer
Are you looking to work for a company that provides an innovative work environment, and your voice is heard? We have a position for a Software Engineer - Premium Engineer to work onsite at our client in Kanata, ON.
Who we are
LER TechForce is an industry leader in embedded controls, software, functional safety, and engineering talent. For over 20 years LER has been working with customers across North America. Follow us at: LER TechForce on LinkedIn.
What you will be doing:
Design, develop, test, and maintain software applications and products to meet customer needs across the entire software development lifecycle, including software architecture design, writing code, testing for quality, and deploying software.
Work on proof of concepts and implementation for next-generation digital cockpit and infotainment system experiences.
Be an active participant in a community of software developers, test engineers, designers, technical artists, technical product managers, and leads to champion best-in-class quality and functionality throughout the full life cycle of product development.
Deliver great code for graphical user interfaces, middleware, and services.
Engage with customers to deeply understand their use cases, pain points, and requirements, showcasing empathy and advocating for user-centric software solutions.
Solve complex problems by designing, developing, and delivering using various tools, languages, frameworks, methodologies (such as agile), and technologies.
Assess the requirements of the software application or service and determine the most suitable technology stack, integration method, deployment strategy, etc.
Create high-level software architecture designs that outline the overall structure, components, and interfaces of the application.
Collaborate with cross-functional teams including product owners, designers, and architects.
Define and implement software test strategy, guidelines, policies, and processes in line with organization vision, industry regulations, and market best practices.
Work on continuously improving performance and optimizing the application; implement new technologies to maximize development efficiency.
Support security practices to safeguard user data, including encryption and anonymization.
Create user-friendly and interactive interfaces.
Develop and maintain back-end applications such as APIs and microservices using server-side languages.
Evaluate and incorporate emerging technologies and capabilities to deliver solutions; monitor and participate in solutions for new stack layers, often involving industry collaboration.
Demonstrate dedication to quality, initiative, and a strong ability to collaborate with other members of your team, other teams, and other disciplines.
What you'll need to be successful
-
Essential:
-
Bachelor's or foreign equivalent degree in software engineering, computer science, or a related field.
-
5 or more years of experience with a mix of HMI/GUI/UX and middleware software development.
-
Proficiency using multiple programming languages, including at least three years with Kotlin.
-
Involvement with a small feature or component over multiple releases.
-
Development experience in a complex application ecosystem (e.g., client and multiple servers, displays on multiple screens, databases, thread synchronization, networking, etc.).
-
Experience working with visual designs and functional requirements, defining software architecture, developing, testing, shipping, and supporting applications with postmortem, crash, and stability analysis.
-
Experience with software design patterns and software engineering practices including: validating code with unit-testing and mock frameworks (e.g., Mockito, MockK, or Robolectric); static and dynamic code analysis tools (e.g., SonarQube, Klocwork, Valgrind, or equivalent); and profiling and performance optimization.
-
Experience with Android debug tools (using ADB, logcat, ANR trace analysis, and bug reports).
-
Experience using code revision tooling (such as Git) for creating pull requests and contributing to code inspections.
-
Demonstrated experience with JetPack Compose.
-
Demonstrated experience with Kotlin Coroutines and Kotlin Flow.
-
Demonstrated experience with SQL databases (such as RoomDB).
-
Demonstrated experience with Android build systems (such as Gradle and Soong).
-
Demonstrated experience with Android services (e.g., Bound Services, Foreground Services, Job Intent Service), AIDL, local binders, and messengers.
-
Demonstrated experience with dependency injection libraries such as Dagger, Hilt, or similar.
-
Understanding of when it is appropriate and effective to use LLM/AI tools to improve productivity and quality.
-
Ability to go beyond code coverage and articulate effective unit testing practices; takes a test-driven development approach.
-
Familiarity with JetPack libraries and coroutines.
-
Experience with dependency injection, Android services, Android build systems, and databases (especially RoomDB) - does not have to be using Kotlin.
-
Intermediate to advanced software engineering skills: ability to work in complex architectures and app ecosystems, familiarity with profiling and performance optimization, static code analysis, Android debug tools, crash analysis, and understanding of design patterns and UML.
-
Experience working in an environment that required collaboration with designers, testers, and engineers from other teams.
-
Familiar with programming practices such as test-driven development, continuous integration, and continuous delivery.
-
Hybrid schedule during the first couple of weeks of the assignment; required to be onsite 5 days per week thereafter.
-
Preferred:
-
High level of experience with RoomDB and Gradle.
-
Experience with other JetPack libraries such as LiveData and Life Cycle.
-
Experience working on both Android applications and inside the AOSP, including working with the repo tool.
-
Experience with build automation tools such as Jenkins and GitHub Actions.
-
Industry-specific experience with automotive development technology, specifications, and processes (e.g., CAN, ASPICE, FMEA, etc.).
-
Personal or professional experience with design and development tools related to digital arts, animation, game development, or related fields.
What you'll get
-
Full benefits: medical, dental, vision, HSA and FSA
-
401K with a match and immediate vesting
-
Short-term and Long-term disability, life insurance and other optional benefits
-
Employee Assistance Program
-
Employee Discounts
-
Ongoing professional development opportunities including Technical Training and Leadership Development
-
The opportunity to work on industry leading projects
More at LER TechForce