Senior Backend Java Developer

All offices

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.

Why you should work here:

Professional Development
Competitive Salaries
Fortune 500 Projects
Exchange Programs
Work From Home
Business trips to US and Canada
Backend Development
Apply Now!
Upload requirements
Upload requirements
Upload requirements
Upload requirements
Upload requirements
Upload requirements
//Consider a staircase of size n = 4: // # ## ### #### // //Observe that its base and height are both equal to n, and the image is drawn using # symbols and spaces. The last line is not preceded by any spaces. // //Write a program that prints a staircase of size n. // //Input Format //A single integer, n, denoting the size of the staircase. // //Output Format //Print a staircase of size n using # symbols and spaces. // //Note: The last line must have 0 spaces in it. // //Sample Input //6 // //Sample Output // # ## ### #### ##### ###### // //Explanation //The staircase is right-aligned, composed of # symbols and spaces, and has a height and width of n = 6.
Simple Array Sum
//Given an array of integers, find the sum of its elements. // //Input Format //The first line contains an integer, n, denoting the size of the array. //The second line contains n space-separated integers representing the array's elements. // //Output Format //Print the sum of the array's elements as a single integer. // //Sample Input //6 //1 2 3 4 10 11 // //Sample Output //31 // //Explanation //We print the sum of the array's elements: 1 + 2 + 3 + 4 + 10 + 11 = 31.
Solve me First
//Complete the function solveMeFirst to compute the sum of two integers. // //Function prototype: //int solveMeFirst(int x, int y); // //where, // //x is the first integer input. //y is the second integer input // //Return values //sum of the above two integers // //Sample Input //x = 2 //y = 3 // //Sample Output //5 // //Explanation //The sum of the two integers and is computed as: 2 + 3 = 5.