DESCRIPTION
What we are looking for
- As a member of our development team, the Sr. Java Developer will design and develop high volume, low latency applications for mission-critical systems, delivering high availability. You will support web based application development and maintenance, and contribute to and grow our software engineering competency. The Sr. Java Developer must have broad experience in web application development.
- The Sr. Java Developer provides input and support for and performs full systems life cycle management activities (e.g., analysis, technical requirements, design, coding, testing, implementation, etc.) of application software. This position collaborates with teams and supports emerging technologies to ensure effective communication and achievement of objectives. This position provides knowledge and support for applications development, and integration and maintenance.
- The selected candidate must have excellent communication skills and strong organizational skills, be able to meet deadlines, as well as interact effectively with other developers, and management.
Responsibilities:
- End-to-end responsibility for projects of increasing complexity that encompass more than their own development
- Be independent with little oversight beyond high level direction, works on complex tasks and completes them despite roadblocks, including debugging techniques
- Appropriately scope high-level project requirements, find a solution, implement and launch that solution
- Help large groups of engineers deliver complex projects with drama-free launches, owning the
technical testing and performance planning side of these projects - Deliver software on-time and improve the accuracy of team’s estimations
- Understand the business that their code supports, and possess empathy for the users of their software, using this understanding to influence their task prioritization
- Understand the tradeoffs between technical, analytical and product goals, and strive to create solutions that satisfy all of these goals
- Know how to not only identify technical problems and create solutions, but are also able to get crossteam buy-in for their solutions and manage projects to make these solutions come to life
- Write consistently high-quality code, deliver features to QA that they believe are well-baked and bugfree, being aware of industry best practices and trends
- Be known outside of their core team as a technology leader, working effectively with non-tech members of their pillar. Ability to identify problems with requirements and help their team coursecorrect around these issues
- Involved in setting the standards for the entire organization and providing technical advice and decision-making that affects not only their group but other teams or the company at large
- Research and propose new technologies, and have a broad understanding of the entire architecture, as well as very detailed understanding of their area
- Identify big issues and opportunities in the technology and organization, and work across teams to create solutions to these issues
- Proactively identify and clean up technical debt before it turns into a long-term problem, and encourage and enable their team to do the same
- Identify risks in code, features, and design, and communicate these to the appropriate parties
- Set the direction in some major part of the technology for their pillar and have a major role in the pillar or team’s decision-making process
- Participate in architecture designs providing feedback and also providing designs with guidance from the architecture team, as appropriate
- Ability to identify and suggest areas of future work for themselves and others while contributing to the common standards for the team
- Balance leadership and individual contribution by providing extensive mentoring of junior team members while maintaining deep individual contribution
- Seek evidence to support their ideas and start to build cases for these ideas
- Support deployment releases as needed and maintain the application once it’s in production
Qualifications and Education Requirements:
- BS/MS degree in Computer Science, Engineering or a related subject
- Proficiency in Java and Enterprise Java technologies and development
- Expert in the Spring framework (Spring, Spring MVC, Spring Boot, Spring Security, etc)
- Expert in designing and implementing RESTful web services
- Expert building web applications from the ground up
- Experience converting business requirements into technical design documents
- Ability to write well-designed, testable, efficient code
- Knowledge of or working experience with CI/CD pipelines; including technologies such as Docker, Jenkins/Concourse
- Experience with cloud technologies, such as GCP
- Agile (scrum) based delivery practices, test driven development, test automation, and continuous delivery
- Solid understanding of object-oriented principles
- Demonstrated success in building design patterns and software engineering best practices
- Experience with Oauth2
- Solid understanding of hibernate
- Solid understanding of microservices
- Excellent knowledge of Relational Databases, SQL and NoSQL
- Experience with maven
- Experience with JBoss application server
- Experience with Java Messaging
- Understanding of gitflow workflow
- Spanish: Native
- English: Excellent command / highly proficient in spoken and written English
Experience:
- Java: 5+ years
- Spring: 4+ years
- CI/CD: 2+ years
Preferred Skills:
- Experience with Angular2+
- Experience with Cloud-Native design & development
- Experience with Spanner DB
- Experience leading a development team
- Experience with financial applications, especially in the peer-to-peer space and involving payment cards
Tipo de empleo: Remote
Ubicación del empleo: LATAM