Position: Expert Java Developer for Ciklum Digital
Company: Ciklum
Experience required: 5y
English level: upper

Ciklum is a leading global digital services and software engineering company, serving Fortune 500 and fast-growing organisations. Headquartered in the UK, we unite 3,500+ software developers, designers, product managers and data scientists around the world building tailored digital solutions that leverage emerging technologies.

We are enabling digital transformation for some of the largest household names and platforms in the digital economy. Ciklum is the place to make your tech ideas tangible and join the global projects redefining industries.

We are looking forward to seeing you as a part of our team!

Description



You will join a highly motivated team and will be working on a modern solution for our client. We are looking for technology experts who want to make an impact on new business by applying best practices and taking ownership.

Project description:

Our client is one of the UKs leading fintech scale-ups. We are looking for a number of software engineers to join our rapidly expanding technology team. You will be part of a scaling business in a high-quality team that is working on new products and features while solving interesting technical challenges. In this role you will work in a cross-functional co-located team who are asked to solve a problem, rather than handed a task to do. This is an excellent opportunity to work in a high-growth environment with a fast-paced and collaborative culture where you will have access to the latest technologies.

About client:

Our client is a payments business providing API-based solutions for commercial and wholesale customers. Client’s customers include neobanks, crypto platforms, travel companies and payroll/accountancy software providers. Businesses no longer tolerate the slow and costly infrastructure provided by legacy institutions – with client’s services, businesses can eliminate historic hidden inefficiencies and build fast-to-market products on top of our award-winning payments platform.

Responsibilities
- Lead and improve the decision-making process in design solution architecture, solution development, architecture and code review
- Back-end development to meet customer’s business needs and implement components according to modern software development environment (cloud-based platforms, microservice architecture, etc.)
- Develop and review feature design documents and provide inputs/update to specifications for the solution
- Design and implement a set of various types of tests (unit, integration, functional, etc)
- Proactive position in architecture preparation, solution development, processes improvements
- Working in an international distributed team in an Agile environment
- Communicate with PMs, engineers, Architects, QA and other colleagues and stakeholders
- Delivering the product roadmap and plannings
- To use high coding standards, software best practices and write highly testable, automatable and performant code over the whole SDLC

Requirements
- Experience in software development for more than 7 years
- Excellent knowledge in Computer Science, Computing Theory:
- Paradigm & Principles (OOP, SOLID, DDD, TDD, BDD)
- Database theory (RDBMS, NoSQL)
- Code testing practices
- Algorithms
- Data structures
- Architectural, Enterprise and Design Patterns
- Deployment patterns
- Security patterns, Reverse engineering resistance, Common attacks types (OWASP)
- Understanding of network interactions:
- protocols;
- conventions (e.g. REST, RPC)
- authentication and authorization flows
- standards and practices (e.g. oAuth, JWT)
- Excellent knowledge and experience in Java (ideally experience with Java 11) (more than 5 years)
- Practical commercial experience with:
- REST API development
- Web application frameworks (e.g. Spring Boot Framework) (more than 4 years)
- Testing frameworks (e.g.e.g. JUnit, PowerMock, WiresMock) (more than 4 years)
- Java related Open Source technologies, such as Spring and Hibernate
- RDBMS (e.g MySQL/MariaDB, PostgreSQL, Oracle) (more than 4 years)
- NoSQL (e.g. MongoDB, ElasticSearch, CouchDB)
- Search Engines (e.g. ElasticSearch, Azure Search, Apache Solr)
- Key-value storages (e.g. Redis, Memcached)
- Messaging systems (e.g. RabbitMQ, Apache Kafka, Active MQ, AWS SQS, Azure Service Bus, Google Pub/Sub)
- Web Servers
- Version control systems (GIT)
- Cloud solutions (e.g. AWS, Google Cloud Platform, Microsoft Azure)
- Integration with 3rd party solutions
- Docker
- Continuous Integration tools (e.g. Gitlab Pipeline, Jenkins, TeamCity, Bamboo)
- Builders
- Experience of micro-services using SpringBoot or similar
- Strong understanding of OOP and design patterns
- Experience of building a high-performance services-based platform
- Experience with:
- Leading Team
- Troubleshooting, profiling and debugging applications
- Creation software architecture and design of complex applications, platforms, microservices solutions
- Agile software processes and technologies
- Code Review process
- Refactoring process
- Fluent English is a must

Desirable
- Certifications on:
- Java
- Spring Frameworks
- Cloud providers
- Delivery processes (SAFe, Agile, etc)
- Experience with Leading and Supporting medium to large size solution delivery projects
- Understanding of orchestration and containerisation (e.g. Kubernetes, Swarm)
- Practical commercial experience with:
- Serverless architecture
- Provisioning tools (e.g. Terraform, Ansible)
- Quality tools (e.g. SonarQube)

Personal skills
- Supervise individuals and teams, and work under general direction within a clear framework of accountability. Lead, support and monitor progress against agreed quality and performance criteria. Facilitate effective working relationships between team members
- Perform a broad range of complex technical or professional activities, in a variety of contexts. Investigate, define and resolve complex issues
- Drive distributed cross-functional teams. Influence customers and team members on the project level
- Contribute to project team composition planning, conduct interviews. Facilitate selection, assessment and onboarding processes, and Ciklumers’ allocation on projects
- Communicate fluently, and can present complex information to both technical and non-technical audiences
- Identify, proactively rise and manage risks (resolutions, corrective actions and lessons learned)

What's in it for you
- Career growth opportunities
- Realization of your innovative ideas in building new Ciklum Solutions and Services
- Friendly collaborative teams and an enjoyable working environment
- Professional skills development and training programs
- Variety of knowledge sharing, training and self-development opportunities
- State of the art, cool, centrally located offices with a warm atmosphere which creates really good working conditions