Job Software Developer/ Engineer/ Architect

Principal Software Engineer

Trimble is 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. Our solutions are used in over 140 countries and we have incredibly diverse lines of business.

Our employees represent this diversity and can be found in over 30 countries, working closely with their colleagues around the world. Due to our geographic, product and customer reach, there is plenty of room at Trimble for exceptional people to grow. Come position yourself with an innovative industry leader and position yourself for success.

Position - Principal Software Engineer - Java:

Trimble is seeking a principal software engineer to work within their Trimble Railway Asset Solutions group. Trimble’s rail asset lifecycle management products are an integrated suite of on premise and software-as-a-service (SaaS) solutions that manage the lifecycle of rail transport assets from operation through maintenance and repair. The solutions that encompass real-time remote diagnostics, component condition monitoring, and asset maintenance management include the integration of IoT sensor feeds and handle vast Big Data sets of information. This is an exciting opportunity to work in the fields of IoT, streaming analytics, and complex event processing.

Job Summary:

As a principal software engineer, you will be expected to participate in the full software development lifecycle - from review and analysis of product requirements, through the design, development, and release of fully tested software that meets established requirements. You will be part of a globally distributed team of software engineers and other professionals, where you will lead by example, consistently demonstrating attention to detail, initiative, and technical skill. You will also encourage the use of industry best practices where applicable, and will work closely with your team to select and implement iterative, incremental improvements that will improve the team’s productivity, consistency, and well-being. Finally, you will effectively work with subject matter domain experts within an established process framework, demonstrating a set of fundamental software engineering skills that result in predictability in engineering, scheduling, and the quality of products developed.

Skills & Experience Required:

  • Bachelor's degree, preferably in Computer Science, Information Technology, Computer Engineering, or related IT discipline, or substantial professional experience.
  • Proven Java development experience in a software development organisation using servlets, web services, JAX-RS, J2EE, Spring Boot, JPA, JDBC.
  • Proven experience in a software development leadership position, or demonstrable history of leadership in a software development context.
  • Experienced with relational databases and their design (SQL Server, MySQL).
  • Experienced with web development technologies, including client side technologies such as HTML, CSS, and Javascript.
  • Understanding of design principles of scalable applications; software principles, secure development, object-oriented design; SOLID, key design patterns (GoF).
  • Strong analytical and problem solving skills.
  • Excellent communication skills, both verbal and written, including technical writing.
  • Excellent teamwork and interpersonal skills. Action and results oriented.

Desirable Skills:

  • Scala & Play Framework.
  • One or more scripting languages e.g. Python, Bash.
  • Familiarity with containers (e.g. Docker).
  • Experience with Amazon Web Services (EC2, ECS, S3, CloudWatch) or another cloud provider.
  • Familiarity with non-relational databases (e.g. key value stores, time series databases).
  • Experienced with message queue / streaming technologies such as Kafka / Kinesis.
  • Line management responsibility experience.
  • Familiarity with Agile software development.
  • Experience with Linux.