Senior Java Software Engineer
R 65 000
Looking for an expert senior Java developer who is comfortable working with C++ components. One must possess a solid understanding of design patterns, object oriented methodology and current trends.
The successful candidate will be working as part of a highly skilled dynamic team that build and support applications in a technically exciting and challenging industry. The candidate will be expected to design, develop, test, document and support applications written in Java as well as a few applications in C++ running on Linux.
Minimum applicant’s requirements as follows
Experience
- 5+ year’s recent development experience. Formal qualification is a plus.
- Exposure to the full software life cycle.
- Experience developing high performance, scalable, reliable applications.
- Proven experience meeting deadlines and delivering quality code.
- Proven experience working in an Agile environment
Development skills
- Strong OO development skills in core Java
- Multithreaded, stand-alone server application development
- Inter-process communications using TCP/IP sockets
- SQL, relational database design and JDBC, preferably with MySQL
- Strong JVM configuration and tuning experience
- Following skills are a bonus, not a requirement:
- Java Server Pages (JSP)
- Java ME
- FireFly, Glassfish, Spring, karaf or OSGI framework.
- Design patterns
- Communications protocols
- Test driven development (TDD)
- Linux
- C++, Delphi, PHP or other language experience.
- Strong OO development skills using C++ (not C or C#).
- Experience with CMAKE
- Understanding and practical use of the C++ standard template library.
- Strong, practical, Linux skills (Red Hat and/or Centos is advantageous)
- Development of multi-threaded, server side applications, using C++
- Inter-process communications using sockets (TCP/IP & unix sockets)
- SQL and relational database design (MySQL advantageous)
Following skills are a bonus, not a requirement:
- Boost and ACE libraries
- Design patterns
- Communications protocols
- Test driven development (TDD)
- Familiarity with Source control tools like Subversion and/or Git
- Memory leak detection tools like Valgrind.
Competencies/Skills required
- Applicant must be able to interact and work with a dynamic and ambitious team.
- Well-spoken with good interpersonal communication skills.
- Positive and motivated attitude.
- Applicant has a strong ethos of writing high quality applications they are proud of.
- Strong problem-solving skills.
- Team player with genuine interest in technology.
- Can work with little supervision, proactive and takes on responsibility for code and applications developed.
- Ability to practice consistent delivery, to a high standard, in a stabled environment.