Software Engineer - Java

Kraków, Poland

About role
  • As a Backend Software Engineer you will work in a product-oriented environment with people who care about their craft and the quality of the product. You will design, implement and operate high performance software for serving and analysing Internet ads. You will also collaborate with business teams and other stakeholders at Codewise to deliver software that solves real problems of Zeropark’s customers. You will take ownership of solution design, architecture, implementation and how it performs in the production environment.
Key Responsibilities
  • Tech you will work with:
  • Operate in the AWS cloud
  • EC2, VPC, S3, RDS, DynamoDB, ElasticCache, SQS, SNS, SES, CloudFront, Route53, Lambda, ElasticSearch, CloudWatch, Athena, IAM and others
  • 16 applications/microservices running Java 10
  • Hard data:
  • 200K Queries Per Second on average (260K at peak times)
  • Bid requests processing time < 10ms
  • ~180 servers in the production environment in autoscaling mode
  • Pushing 6M of data points every second to our internal reporting database
  • Spring/Spring Boot
  • PostgreSQL, DynamoDB, Redis, Memcached
  • Netflix/Eureka based load balancing with TCP communication
  • Hibernate/myBatis, Hollow, Docker
Requirements
  • Strong team player with “can do” attitude
  • Product oriented mindset
  • Good problem solving skills with metrics driven attitude
  • Advanced programming skills: design, implementation, deployment and maintenance of software written in Java
  • Ability to write clean, maintainable code, applying best practices and patterns
  • Experience in Java 8+ Stream API
  • Advanced understanding of concurrent programming
  • Fluent command of developer workflow - git, CI, CD, maven and your IDE of choice
  • 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.)
  • Good Linux skills including practical use of tools and ability to diagnose issues
  • Experience with AWS cloud
  • Experience with Spring framework components