Senior Java Developer

Job description

We are looking for experienced Java developers for backend programming tasks. You will support our new developments on the backend side, as well as maintain our existing systems in a modern, microservice-based architecture. You will also have the opportunity to learn and use Kotlin, as we are using both languages in our service architecture.

  • Development of Java microservices
  • Writing high quality, reusable, „clean” code
  • Writing tests
  • System design
  • Recognizing and fixing architecture related issues, performance optimization
  • Database design
  • Database query optimization

What we offer

  • Bonus system
  • Travel voucher and paid extra leave (if company-level annual targets are met)
  • Extra paid leave: In addition to the normal paid leave, we also provide + 5 days paid leave for our colleagues who join us during the year
  • Challenging and interesting problems to solve
  • Full time employment
  • We support home office and remote work
  • Quiet & convenient work environment
  • High performance DELL and HP workstations with 2 or more monitors
  • Atlassian (Jira, Confluence, BitBucket) and JetBrains based software stack
  • In-house workshops and English courses
  • Traveling opportunities (mainly US)

About Us

Seattle based ICF Technology Inc. is the owner - developer of one of the world’s most visited online streaming platforms, serving 200M+ of users globally. Out of its offices in 4 countries, the company is employing 500 people.

The Budapest office opened its doors in 2019 with the goal of increasing the company’s development capacity, now at a global level.

Building on top of the tested, successful, American style and developer oriented structure of ICF Technology, we are focusing on building a successful team in Budapest too, playing an instrumental part in the development of the company’s services and the shaping of its future.

Job requirements

Required technical knowledge

General software developer skills

  • Algorithmic complexity, basic algorithms
  • Memory management fundamentals (heap, stack)
  • Exception handling
  • Clean code concepts
  • Understanding of the more frequently used UML diagrams (class diagram, activity diagram, deployment diagram)
  • User-level experience with Linux (SSH, Bash, permission management)
  • Git fundamentals:
    • Commit, push fetch
    • Branches; creation of merge commits

Object oriented programming

  • OOP fundamentals, polymorphism, abstraction
  • Design patterns: MVC, Dependency Injection, Adapter, Factory
  • SOLID concepts

Java knowledge

  • Experience in a Java framework (eg. Spring, Guice, EE CDI)
  • Experience in an ORM system (eg. JPA, Hibernate)
  • Understanding build processes and dependency management (Maven, Gradle, Ant)
  • Understanding types and keywords (eg. class, interface, static, final)
  • Thread management (Thread, Runnable, ExecutorService)
  • Memory management, JVM (references, stack, heap, GC)
  • Java features (eg. string pooling, autoboxing, foreach, Iterable)
  • Collections API (List, Stack, Queue, Set, Map)
  • Exception handling (checked/unchecked exception, try/catch/finally)
  • Performance optimization techniques and tools


  • Database anomalies, normal forms, normalization
  • Entity-Relationship diagrams (design and reading)
  • Foreign keys, unique keys, contraints
  • Indexes
  • Concurrent data handling anomalies, transactions
  • Writing complex SQL queries
  • Optimizing SQL queries for performance


  • Experience in Docker
  • Experience in CI / CD pipelines
  • Redis, Apache Kafka knowledge
  • Unit testing experience (JUnit, Mockito)
  • Java EE knowledge
  • Kotlin knowledge
  • Webservices (SOAP, JSON REST) knowledge

Soft Skills

  • Intermediate level English (written, spoken)
  • Good communication skills
  • Proactive, solution oriented approach
  • Willingness to work in a team