Java Developer (Experienced)

in Budapest, Hungary
Full-time
Senior,

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 (SOA) 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

  • Challenging and interesting problems to solve
  • Full time employment
  • Experience and performance aware salary
  • Bonus system
  • Quiet & convenient work environment
  • High performance DELL and HP workstations with 2 or more monitors
  • Atlassian (Jira, Confluence, BitBucket) and JetBrains based software stack
  • Traveling opportunities (mainly US)
  • Free coffee

About Us

Seattle based ICF Technology Inc. is the owner – developer of one of the world’s most visited online streaming platforms, serving tens of millions of users globally, every day. Out of its offices in 3 countries, the company is employing 400 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, agile 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

Databases

  • 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

Advantages

  • Experience in Docker
  • Experience in CI / CD pipelines
  • Redis, Apache Kafka knowledge
  • Unit testing experience (JUnit, Mockito)
  • Java EE 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
  • Name
    Email
    Cover letter (optional)
    Curriculum vitae
    If you provide sensitive personal data to us, this constitutes explicit consent for us to process such data. You may revoke consent at any time by clicking here.