Senior Backend Java Developer
Senior Back-end Java Developers are responsible for developing, maintaining and the enhancement of complex software systems. The problem domains range from processing-intensive analytics, system integration, manipulation of extremely large data sets, real-time systems and business management information systems in a myriad of industries such as finance, retail, transportation, logistics and health care. They have experience building real-world robust applications, with high availability and scalability in mind. They apply modern software development methodologies including unit testing, build automation and code reviews.
We are looking for a talented and passionate Senior Back-end Java Developer. You will lead backend engineering efforts from rapid prototypes to large-scale applications. You will brainstorm, define and build collaboratively with members across multiple distributed teams. You will take the initiative obsessing about learning and proposing new technologies for architectural review. We are looking for candidates who constantly re-evaluate and improve the architecture, models, performance and stability of the systems developed.
What we’d like to see:
- 5+ years working in Java back-end development
- Solid understanding and development experience in Java
- Experience in all areas of IT applications development including design, analysis and data modeling.
- Experience working with Spring Framework (Spring boot, MVC, Spring Data, Spring security)
- Experience with distributed systems development, messaging systems, caching systems
- Good understanding of SOLID principles.
- Experience with Relational Databases like MySQL or PostgreSQL and Non-Relational Databases like MongoDB or Elasticsearch.
- Solid understanding and extensive experience using distributed version control system tools such as Git.
- Experience doing test-driven development (TDD).
- Experience developing REST APIs
- Experience integrating with external web services.
- Strong Unix/Linux skills.
- Ability to produce maintainable, stable and scalable software.
- Exceptional problem solving and ability to work independently.
- Exceptional learning skills.
- Fluency in both oral and written English.
- Ability to communicate proficiently, contribute in planning meetings and document engineering decisions.
Nice to have:
- B.S/M.S. in Computer Science or equivalent (Strong Computer Science fundamentals)
- Experience working with Docker and/or Linux containers.
- Experience with automated builds and continuous integration servers such as Jenkins.
- Experience working with microservices: designing, creating, deploying, testing and monitoring.
- Experience building scalable systems with cloud infrastructures like AWS.
- Familiarity with on-premise deployments on VMware ESX.
- Familiarity with Kubernetes.
- Familiarity with Kafka and other data processing tools and frameworks.
- Familiarity with Agile Methodologies.