POSITION SUMMARY:
• Garmin is searching for a talented and passionate Java Developer to join our team of code enthusiasts! You are self-motivated, goal-oriented, and a strong team player who is willing to be an active contributor to the success of the team, providing technical solutions and support in a dynamic and high-performing environment.
• We offer you the chance to join a team of software professionals who work together to achieve the best results for our customers. You'll be working in a dynamic and agile environment, surrounded by people with a pioneering spirit and passion for challenges.
Essential functions:
We're looking for strong technologists who enjoy working on cross-functional teams and are passionate about what they do. Some responsibilities are:
• Developing APIs that are scalable, supportable, and reliable, servicing the entire Garmin ecosystem
• Participating in the full lifecycle of development from conception, analysis, design, implementation, testing, and deployment
• Working with developers across the globe on cutting-edge technologies, including microservices and big data/NoSQL
• Working in an agile environment, delivering code frequently to production so you can quickly see your work in action
• Working on scalability challenges that encourage exploring new technologies and approaches
• Developing cloud-native applications using modern frameworks such as Spring, Spring Boot, and Java
• Designing, enhancing, and developing single and multi-system applications written in Java
• Providing solutions for complex software problems in existing applications
• Maintaining, improving, and extending existing software with limited assistance from other associates
• Working collaboratively and professionally in a team environment to determine general approaches and specific technical solutions
• Reviewing complex tasks for soundness of technical judgment, adequacy, and accuracy
• Working with Garmin IT Analysts to develop and implement unit and system testing processes for single or multi-system projects
• Demonstrating quality and effectiveness in work documentation and organization
Experience and skills required:
Graduated in a technical discipline or equivalent professional experience in computer science (BE/B.Tech/M.Tech/MCA/M.Sc) with a minimum of 6 years of relevant experience.
Qualified candidates will also demonstrate proficiency with:
• Basic server design and debugging experience
• Strong Java skills and Spring experience
• Ability to turn feature requests into technical designs
• Willingness to take initiative and work independently while also collaborating in a team environment
• Knowledge and experience with REST
• Understanding of relational data fundamentals; experience with big data and Elasticsearch is a plus
• Previous relevant experience with HBase or SQL Server is highly desirable
• Experience with test tools like JUnit, Arquillian, JMeter, etc.
• Good communication skills with both technical and non-technical team members
• Fluency in English is required
• Demonstrated experience in the successful implementation of technology solutions
• Must demonstrate proficiency and possess experience necessary to design, enhance, and develop single and multi-system applications
• Must possess demonstrated programming experience using Java, Spring (Boot, Cloud, Data, MVC), JavaScript, CSS, and at least one of Vue.js, Angular, or React
• Ideally have experience with the following technologies: Cloud Foundry, GemFire/Cassandra, Kafka, MySQL, RabbitMQ, and JPA
• Ideally have experience with some of the following tools/frameworks: Git, Jira, Jenkins, Bamboo, Bitbucket, Splunk, Kibana, HAProxy, AppDynamics (for monitoring), and OAuth
• Experience with Agile methodologies such as Scrum/Scrumban, Extreme Programming, and Jenkins CI/CD pipelines