Position: Senior Java developer
Company: Norse
Category: Java
Experience required: 5y
English level: intermediate

Senior Java Developer II
Job Description

Are you interested in working for a hospitality technology company whose ethos includes innovation, culture, and customer service? We’re looking for an individual with grit, integrity, curiosity, and yearns for greatness! If you thrive working in a fast-growing startup and are ready for a new adventure, Concilio Labs could be the next step in your career.
The successful candidate is a confident and self-motivated individual with a willingness to learn and adapt in a team environment. We are seeking for a highly technical, strategic, and hands-on individual.  You’re curious and passionate about new technologies and cutting-edge innovation, and you enjoy pulling together complex pieces of a puzzle to deliver a powerful and meaningful end-product. If you are someone who loves influencing application development and having an immediate impact, this is an ideal role for you! 

About the Position
1. Contribute and participate in the strategy, design and development of application software and dynamic systems that are scalable in both performance and maintainability following the product development life cycle (i.e., design, development, quality assurance, deployment, and maintenance)

2. Evaluate, develop, implement and maintain Java application code and processes with a continued focus on best practices, optimization and scalability

3. Participate in software architectures discussions – help determine areas of complexity and potential risks to successful implementation and proactively define resolutions to mitigate the risks identified

4 Provide technical support, documentation and consultation for Java/Kotlin application code and processes as well as software infrastructure to assist users and other team members

5. Work within multidisciplinary project teams to understand requirements and determine how best to meet them within provided schedules and prioritized activities

6. Assist in translating software requirements into working and maintainable solutions within the existing application framework(s) while evaluating advantages and disadvantages of custom development and third-party integrations

7. Design, document and develop server scripting integrating and supporting application development and database architecture(s)

8. Evaluate and understand existing connectivity within network systems, search engines and information servers

9. Integrate web services with third party partners

10. Develop and execute unit tests, integration tests, and deployment scripts

11. Support formal testing of applications and dynamic systems; assist team members with troubleshooting code and system defects in production and non-production environments across multiple operating platforms

12. Implement and maintain development and test environment tools and software as needed though conducting software analysis and sharing results

13. Continuously update job knowledge through research of new internet/intranet technologies and software products

14. Work on special tasks and projects as needed

15. Provide direct support to the Technical/Team Lead as needed

16. Assist the Technical/Team Lead with mentoring the development team along with junior members of the team driving best practices, collaboration, quality and consistency and growing the team’s collective skill sets

17. Proactively communicate, written and verbal, with internal stakeholders, customers, and partners

18. Create software technical documentation, when needed

About You

- Ability to transform abstract ideas into a working proof of concept to delivery on Production
- Clearly communicate capabilities, opportunities, and recommendations to both technical and nontechnical audiences
- Experience in understanding the source data from various systems and platforms for data integration
- High-energy, decisive, ability to motivate
- Ability meet product launch schedules
- Positive entrepreneurial personality
- Exceptional relationship building skills
- Excellent written and oral communication skills
- Strong analytical capabilities 
- Advanced problem-solving skills
- Ability to influence decision-making and change
- Ability to display good judgment
- Self starter and self motivated
- Comfortable working with customers and internal teams in different time zones

Educational Requirements
- Bachelor's degree in Computer Science
- Real job experience while studying at a university is ideal

Experience
- Minimum of 5+ years experience as a software development in a fast pace environment
- Minimum of 7-10 years experience in Software Development Life Cycle and especially in the development of Java enterprise applications
- Previous experience working in an agile development environment (Scrum) 
- Experience in Scala is a plus
- Applied knowledge of Object-Oriented programming
- Experience with Relational Databases (Apache Spark, PostgreSQL, Oracle)
- Knowledgeable in NoSQL(Mongo, DynamoDB), Kafka
- Experience with caching (Redis, EHCache)
- Experience with Object Relational Mapping Frameworks (Spring-Data, Hibernate)
- Experience with Docker and Kubernetes containers
- Strong knowledge with UNIX/Linux environment
- Software delivery experience in a DevOps/Cloud based environment
- Knowledge of version control systems (Git, Gitlab)
- Knowledge in writing unit testing (jUnit, Mockito, PowerMock)