We are in the TOP 10 Great Place to Work CERTIFIED™ Take a look here!

Sr. Java Engineer

Location: Remote

We are looking for a Sr. Java Engineer to join us!

The team is growing to face new and exciting challenges. We are looking for senior engineer with technical expertise and a passion for low-level programming.

Job Description

We are building a top-level Java backend team to work on an innovative product in the analytics industry. For this position, we are looking for experienced Java Engineers (+5 years) who enjoy low-level programming and have a deep understanding of technology at its core.

We expect candidates with outstanding analytical skills and a keen desire to learn and apply state-of-the-art technologies.

Committed to:

  • Implement new functionality and analyses in a real-time distributed query engine using cutting-edge technologies while working with massive data sets.
  • Research and develop solutions to help scale systems and eliminate performance bottlenecks emphasizing high scalability, high reliability, and low latency.
  • Build systems to support easier integration of customer data.
  • Be an integral part of a team that works and adapts fast, and enjoys working together.
  • Be a self-starter, self-learner, and contribute to the better development of the product.

Experience

  • Minimum five years of work experience as a Java software/infrastructure engineer.
  • Significant experience with scalable distributed systems architectures using modern commercial cloud infrastructure (we use a mix of web servers, containers, load balancers, databases, message queues, and caches from the big providers).
  • Solid CS foundation — you’re able to justify the data structures, algorithms, and techniques used in your code, and you’re able to analyze it with regard to time/space complexity.
  • Experience with tools like YourKit, VisualVm, or Console.
  • Experience with distributed data stores like Cassandra, HBase, Hive, Druid, Clickhouse.
  • Experience with applications in production, and/or debugging applications in production.
  • Experience tuning garbage collection in the JVM.
  • Demonstrated track record of shipping quality products

Additional Knowledge

  • Deep understanding of the heuristics of the JVM, memory, and garbage collection.
  • The ability to debug programs in your head.
  • Able to build articulate and justify trade-offs when architecting new functionality
  • A solid understanding of the fundamentals of how computers and networks operate, TCP/IP, DNS, the difference between CPU/DISK/Network IO and how that impacts programming decisions.

Skills

  • Teamwork.
  • Proactivity.
  • Good job estimation.
  • Methodical, organized, and consistent in completing your work
  • Able to move and adjust quickly.
  • Able to operate independently and can speak up when help is needed.
  • Good English and Spanish written and oral communication skills.
  • Constant interest in learning.

Join our team