About Trimble:
Trimble is a leading provider of advanced positioning solutions that maximize productivity and enhance profitability for our customers. We are an exciting, entrepreneurial company, with a history of exceptional growth coupled with a disciplined and strategic focus on being the best. While GPS is at our core, we have grown beyond this technology to embrace other sophisticated positioning technologies and, in doing so, we are changing the way the world works. Those who successfully lead others to meet our objectives are vital to our organization. Leadership at Trimble is much more than simply exercising assigned authority; we expect our leaders to embrace a mission-focused leadership style, demonstrating the strength of character, intellect and the ability to convert ideas to reality. www.trimble.com
Job Description
Trimble is recruiting for a Lead Software Engineer to fill an opportunity in Chennai, India. You will be responsible for leading and mentoring a team of software engineers in the development and maintenance of complex .NET applications. You will collaborate with product managers, architects, and other stakeholders to ensure the successful delivery of high-quality software solutions.
Job Purpose
Design and Develop Software solutions to meet the functional requirements of innovative products developed by Trimble.
Make use of well-established design patterns, architectures and follow agile development processes.
Responsible for designing, implementing, and maintaining software applications.
Perform unit testing of the code developed, develop unit test cases and test harness.
Perform system integration and bug fixing, develop user documentation, generation of relevant reports and review similar work done by peers.
The candidate is also anticipated to manage the Indian, US and Australian time zones effectively to attend client calls, handle production issues, and so forth.
Provide guidance, mentorship, and support to ensure the team's efficiency and effectiveness in development and release activities
Should have experience with agile methodologies, monitoring all stages of software development to identify and resolve system malfunctions to meet quality standards.
Should be able to assess and communicate potential risks related to software quality, helping the team to prioritize testing efforts based on the potential impact.
Main Responsibilities
Read and understand high-level product descriptions or requirement documents and propose one or more software designs at the module level that are highly reusable and subject to the design principles of the software’s target host platform.
Decompose design elements into the structured code as per prevailing coding guidelines, preparation and execution of unit test cases and development of test codes or test harnesses. Traceback through code, design and resolve issues and bugs.
Plan, organize and execute assignments with very little or moderate supervision, in an agile environment
Responsible for deliveries within the required deadlines. Deliveries can be modules, documentation, customer releases, etc.
Collaborate with business analysts, stakeholders to gather and analyze business requirements
Coordinate with the team for the timely delivery of work products. Ensure the quality of work products by reviews.
Write and maintain clean, efficient, and well-documented code
Ensure data integrity and accuracy through data analysis and data cleansing activities
Create and maintain technical design documentation
Participate in code reviews and provide constructive feedback to peers
Develop and execute unit and integration tests
Support the deployment of solutions into production environments
Provide ongoing maintenance and support for existing Salesforce applications
Sub-Module level responsibility in large projects and Module (or component) level responsibility in small/medium sized projects and complete responsibility is small-sized projects, depending upon the complexity and decomposition
Work with User Experience, QA teams to ensure the validity of the solution
Be contemporary by adopting technological and market evolutions
Other responsibilities as assigned by the management from time to time
Key Result Area
Timely delivery of development and quality release on a sprint-to-sprint basis.
At least 90% of unit test coverage must be automated (90% of manual test cases must be automated).
Effective reporting of work and reports.
Skillsets
Strong proficiency in Angular and TypeScript
Web Technologies and Protocols:
Understanding web technologies like HTML, CSS, and JavaScript
Familiar with HTTP, HTTPS, RESTful APIs, React, Redux and PWA
Strong proficiency in Microsoft technologies like C#, ASP.NET, Entity Framework, SQL Server, IIS, etc.
Experience with cloud platforms (e.g., Azure, AWS, GCP).
Experience with Storybook or similar tools for component development and testing
Strong command of C# for developing applications with .NET Core and .NET Web API
Experience with cloud-based web development platforms such as Wix is a plus.
Experience with cloud platforms (e.g., Azure, AWS, GCP).
Understanding microservices architecture and containerisation technologies (e.g., Docker, Kubernetes).
Experience in developing mobile applications for iOS and Android platforms.
Knowledge of MVC and MVVM patterns for designing and structuring applications.
APIs and Integration:
Experience with RESTful APIs and third-party integrations.
Experience with developing microservices
Project Management:
Estimate project timelines and resource requirements.
Manage project deliverables and ensure timely completion.
Identify and mitigate technical risks.
Monitor project progress and adjust plans as needed.
Database Management:
Proficiency in working with databases like MSSQL / Mongdb, etc.
Version Control Systems:
Bitbucket / GitHub
Managing code changes and collaborating with other team members
Maintaining a history of code revisions.
Continuous Integration/Continuous Deployment (CI/CD):
Tools like Jenkins/Bamboo/Buildkite
Integrating the automation into CI/CD pipelines
Problem-Solving and Analytical Thinking:
Designing efficient automation solutions/Framework
Ability to identify and troubleshoot complex software defects
Leadership and Mentoring:
Guiding and mentoring other team members
Providing technical expertise and guidance
Agile Methodologies:
Agile methodologies such as Scrum or Kanban
Planning for Iterative development cycles
Manage frequent releases
Risk Assessment and Mitigation:
Ability to identify and mitigate risks related to software quality.
Measure how well risks are documented and managed throughout the project.
Resource Management:
Resource allocation and team management,
Assess the efficiency and productivity of the testing team.
Ensure resources are allocated effectively to meet project deadlines and quality goals.
Qualifications & Experience
Graduated from a premier institute.
B.E / B.Tech or M.E / M.Tech / M.S. in Computer Science Engineering or an equivalent degree with a good JEE / AIEEE / GATE score.
10th Grade: State Boards 90%. Central or International Boards: 80%
12th Grade: State Boards 90%. Central or International Boards: 80%
An impressive performance in any national-level Olympiad or talent search examination would be a valuable asset.
Presenting a paper at a national-level forum, contributing to open-source projects, and participating in standards bodies would be beneficial additions.
Working experience in a tier-1 organization for a period of min 5 to 10 years.