Senior Software Engineer-Java
at SenzMate IoT Intelligence in Colombo, published on 26 Aug. 2024
Job Title: Senior Software Engineer - Java
Status: Permanent Full-Time
Location: SenzMate / Remote
SenzMate IoT Intelligence eliminates the inequality in access to the best quality state-of-the-art IoT and AI technologies all around the world. For the last 7 years, the essence of our company and culture has been built by the incredible people of SenzMate – where our many humanitarian contributions reflect our values.
We are looking for a Senior Java Developer for designing and implementing backend solutions for our Artificial Intelligence and Internet of Things platforms. The successful candidate must have proven experience in building high-performing, high-availability, scalable applications. You will be part of a talented software team that works on mission-critical applications which includes managing real-time Kafka streams, Multi-threaded applications and AI/ML integrations. Your responsibilities include designing, developing and delivering high-volume, low-latency applications for mission-critical systems.
Job Description:
- Be a core participant in the requirements gathering and analysis, design, implementation and testing of software solutions.
- Identify and incorporate existing solutions and technologies to shorten development time and still maintain a high-quality codebase.
- Create specifications, provide estimates, and develop software for those specifications.
- Create automated tests and ensure the code is well-tested before committing any code changes.
- Create and manage build scripts to ensure that software packages are built according to industry and company standards.
- Be a project lead to coordinate a team to ensure timely delivery of project milestones, deadlines, and/or demos.
- Produce well-designed, testable, efficient code
- Conduct code reviews to ensure code is written according to industry and company standards and to ensure the team is using shared libraries for maximum re-use.
Mandatory Skills:
- Knowledge of Hadoop Hive & Trino.
- Knowledge of Kafka, Kafka streams & Spark
- Solid experience writing multithreaded applications.
- Development experience with network protocols (HTTP, TCP / UDP, SNMP) and Java NIO
- Hands-on development experience in high-volume, low-latency applications
Qualifications:
- Bachelor of Engineering or Bachelor of Computer Science
- 5+ years of professional software development experience
- Experience with big data technologies such as Hadoop, Hive and Trino
- 5+ years developing enterprise-level applications using Java 6 and above
- At least 3 years of experience in the Spring Framework
- Experience with deploying, developing and testing in high-performance computing, or big data solutions
- Experience with relational databases, SQL and ORM technologies (Hibernate)
- Experience configuring Oracle, MySQL and/or PostgreSQL
- Solid experience consuming and creating REST API
- Positive mindset, with strong interpersonal skills and the ability to work constructively within a team environment
- Strong analytical and problem-solving capabilities
- Ability to learn new technologies quickly and work independently
- Excellent verbal and written communication skills (in English) with experience in creating clear and concise documentation
- Experience in conducting code reviews and merging code
- Experience using Gradle or Maven to manage build dependencies
- Experience using GIT, ability to branch, tag and version release packages
- Experience deploying, installing and debugging applications running on Linux