Software Engineer - Java

Kraków, Poland

Key Responsibilities
  • As Software Engineer - Java you will design, implement and operate high performance software for serving and analysing Internet advertisements at scale
  • You will take active ownership of requirement analysis, architecture and implementation of your Team’s components and their operations in production
  • You will work with smart people who care about their craft and quality
  • You will collaborate with business and other stakeholders at Codewise to deliver software that solves right problems
Requirements
  • Experience in design, deployment and maintenance of software in Java
  • Advanced skills in Java language programming including Java 8
  • Broad experience with JDK and common open source Java libraries
  • Advanced understanding of concurrency including different programming styles like events, reactive, threads, and their implementation in Java
  • Fluent command of developer workflow - git, CI, CD, maven and your IDE of choice
  • Experience with testing at all levels (unit, integration, acceptance) and test-first approach
  • Ability to write clean, maintainable code, applying best practices and patterns
  • Good understanding of networks and protocols, including IP, HTTP, modern API design and their Java interfaces
  • Good Linux skills including practical use of tools and ability to diagnose issues
  • Familiarity with common data structures and algorithms and their performance characteristics
  • Advanced problem solving skills
  • Good team player with “can do” attitude
  • Good communication skills
  • Written/spoken English
Nice to have
  • Good understanding of architecture of distributed systems, including concepts of big data and working with eventual consistency
  • Practical experience with performance tuning, including understanding of file systems, GC, java memory model, low latency programming
  • Good understanding of infrastructure and operational aspects (monitoring, logging, load balancing, scaling, zero downtime deployment, troubleshooting, etc.)
  • Experience with Spring framework components
  • Experience with cloud (we use AWS)