Java developer(Fulltime)

  • Full-time

Company Description

KRG Technologies Inc.

25000 | Avenue Stanford | Suite 253 | Valencia, CA 91355

Phone no:361 - 661-8000 EXT 257


Job Description

Concurrency

How to deal with multiple threads understand (Executors, Callable, Futures) pros and cons of threads and how to

Data Structure

How to choose best collection for a given problem
Deep Understanding of Hashmap and its usage

Core concepts

Clear understanding of dealing with Floating Point Numbers
Difference between reference equals and identity equals

OO Design
Understanding of good software design – Immutability, Single Responsibility Principle

Testing
Understand Test Driven Development – Knows Junit, Mocks difference between unit/integration test

JDBC - database
Demonstrate good understanding of Data Access layer Pattern
Demonstrate good experience in JDBC coding
nice to have ORM mapping - Hibernate, JPA

Java 8 (nice to have)
stream api and lambda’s – Nice to have

Architecture Skills
Demonstrate ability to think on their feet with sample problems
Understand core design patterns. (Decorator, Observer, Façade, Strategy) Be able to give use cases and explain how to
Demonstrate Really good understanding of Messaging Patterns including Webservices
Demonstrate understanding of "micro service" a.k.a component architecture, SOA
Nice to have Distributed System problems/challenges of dealing with distributed applications across geographically separate data centers.
Nice to have Experience in High Performance Environment a big plus

Distributed Messaging (nice to have)
Issues with trying to ensure a message was delivered from point A to point B
Prior use with JMS or AMQP a plus however we use proprietary messaging framework
How best to trace message flow between different locations
How best to optimize throughput in a distributed messaging system

Algorithmic Skills
How to design stateful, event-driven algorithms
Solid understanding of Algorithmic time complexity and "big-O" notation

Networking Skills (nice to have)

Understanding of how IP protocol works (Routing, DNS, ICMP)
Understanding of TCP and UDP and experience developing TCP based client using either blocking/non-blocking socket IO tools
Understand of how to debug lost or garbled connection over a highly distributed system
Difference between Blocking Socket IO and Non-Blocking Socket IO
Able to think on their feet and be able to handle white board problems in this area

Build/OS Skills

Experience using Maven 3.x and Nexus Repository
Experience with TeamCity/Jenkins build server
Understand Linux command line tools – bash, wc, tail, grep, pipe
Basic understanding how to connect and manipulate data in an oracle dbms – DML and DDL

Qualifications

Intangible Skills
Ability to learn custom frameworks and new tools quickly
Ability to selectively apply concepts and implement techniques provided by other frameworks.
Ability to invent new tools and yet not re-invent the wheel

Additional Information

Immediate Interview