Position: Senior Java developer
Company: ZiMAD
Experience required: 3y
English level: upper

As a member of the development team you will:

Independently put the company Agile software development process into practice as appropriate.

Takes ownership of product subcomponents including functional specification, design & implementation

Assist in the development of implementation schedules for owned sub components.

Develop, maintain and extend assigned software modules within schedule constraints using the company accepted coding practices.

Specify and perform unit testing of developed software modules

Fix bugs in software modules as necessary.

Assist publications department as required to document the product.

Assist QA engineers as required to develop of test plans and isolate software faults.

Lead a department code review.

Work with other department software engineers to ensure successful development and delivery of product

Report status in timely fashion as requested by Manager or project lead engineer

Essential Criteria

BSc (2.1 or better) degree in Computer Science, Engineering or equivalent relevant to Software Engineering

Minimum 3 years’ demonstrable experience in Java

Knowledge of the Java standard library, containers, and algorithms

Understanding of Object Oriented Programming and Java specific notions, such as interfaces

Familiarity with language tools and infrastructure, such as JVM, jstack etc.

Implementation of automated testing platforms and unit tests

Strong communication skills – both verbal and written

Customer focus, result oriented and strong relationship builder with local and remote teams

Adapts easily to changing priorities and thrives in a fast paced work environment

Flexible ‘can do’ attitude

Demonstrable interest in emerging technologies

Demonstrated ability to identify problems and effectively raise issues

Knowledge of English on intermediate/upper-intermediate level

Desirable Criteria

Experience in writing, troubleshooting, and debugging networking and server code

Understanding of Core TCP/UDP/IP technologies such as: Streams, DHCP, Routing protocols

Detail understanding of unix sockets; working knowledge of netfilter/iptables

Knowledge of data communications principles, architectures and protocols including TCP/IP, routing, switching, and Ethernet technologies

Knowledge of:

Multi-threaded programming

Scripting (Python, Perl, bash)

C/C++ experience is an extra plus

Knowledge of Test Tools / Automation, tracking systems & test methodologies

Unix administration

Demonstrable experience using Eclipse

Demonstrated ability to initiate and contribute to technical discussions

Knowledge of mobile technologies

Conditions:

Competitive salary
Works on complex and interesting IT project
Comfortable office 
Remote work
Additional medical insurance
Flexible start of the working day
English courses
Participation in specialized events (conferences, seminars, trainings) at the expense of the company
Professional and career growth