Adam Kopeć

Software craftsman and clean code enthusiast

Adam Kopeć

Software craftsman and clean code enthusiast

Contact me

Hi, I'm Adam Kopeć!

Software craftsman and clean code enthusiast

AWS Certified Solutions Architect - Associate badge AWS Certified Cloud Practitioner badge

Profile

Full name

Adam Kopeć 

BORN

30. June 1989 – Sosnowiec, Poland 

Mail

adam.kopec@gmail.com 

FIND ME ON

WORK EXPERIENCE

OnAir Entertainment, Kraków

Backend Developer - April 2022 - Currently working here

  • Writing Scala for the onlino casino domain
  • Working with a fully event-sourced, microservice based project
  • Backend, socket-based communication with frontend, Akka and Typelevel stack
  • Going through the whole lifecycle of three separate games (all deadlines met)
  • Giving some architectural feedback to the team, mentoring
  • Speaking at Scala meetups

Grand Parade, Kraków

Principal Java Developer - November 2019 - April 2022

  • Hired as Java developer, but transitioned to Scala after two months (no regrets),
  • Development of a few microservices in Scala (ZIO, circe, akka-http, cats, scalatest + Kafka, sttp, Redis, Cassandra, PostgreSQL),
  • Design of a configurable business process engine in Scala for a multi-tenant application,
  • Constant architectural supervision of a multi-module, multi-container, multi-artifact sbt project – the trickiest part of the project was not the logic itself, but rather proper interface definition, layer design and module composition, because the features of the application were composable at runtime.
  • Applying production-ready practices for high traffic – circuit breakers, monitoring, logging, tracing, full Kafka schema compatibility etc.
  • AWS Architect certification during free time (in order to better understand the applications and more effectively leverage the AWS ecosystem),
  • Working on CI/CD pipelines architecture (Amazon EKS, Kubernetes, Helm, Kaniko, Gitlab CI),
  • Analyzing business requirements, writing RFCs, conducting interviews, running demos for management,
  • Design of a simple, but modern, reactive API using Java 11, Spring Boot, Spring Cloud components.

CRIF, Kraków

Software Architect / ITS - February 2019 - November 2019

  • Leading the team of 8 people (responsible for development and maintenance of existing platform),
  • Playing the architect role in a new, more modern project (developed by ~5 people, dealing with high volume of data and challenging SLA) – drawing diagrams, analyzing requirements and available tools, assessing risk, consulting with the development team and business analysts,
  • Supervising and analyzing the impact of design changes made to the existing, legacy system,
  • Gathering and analyzing business requirements, negotiating scope with business representatives of different company units and other teams,
  • Successful introduction of the event storming practice to the company,
  • Making code reviews, mentoring team members, making them familiar with the company business model and its technical practices, interviewing candidates,
  • Communicating with external companies (data suppliers) and contractors,
  • Popularizing the usage of Kubernetes in the company, refining CI/CD processes

CRIF, Kraków

Java Software Developer - February 2018 - February 2019

  • Java 8 and advanced SQL Server programming,
  • Implementation of a large business application that was loading complex data structures into the system (more than a year of development, >50k LOC written alone),
  • Technical design consultations (especially regarding lowering of the cross artifact dependency level, introduction of internal libraries, versioning scheme etc.),
  • Debugging, analysis and refactoring of internal concurrency related algorithms and tools,
  • International business and architectural meetings participation (in english),
  • Supervising external contractor teams, defining requirements and making code reviews,
  • CI/CD pipeline configuration (git, svn, maven, jenkins, gitlab),
  • Participation in a group which aimed to introduce Docker and Kubernetes to the organization

Synerise S.A., Kraków

Software Engineer - November 2016 - February 2018

  • API development (from scratch in Java 8 on Spring Boot) – I was responsible for all architectural concerns (documentation maintenance and versioning, package structure, logging, cross-service request identification in logs, versioning, rate limiting etc.) and most of coding. I used Redis, Kafka, Apache Phoenix for HBase etc.
  • Third party integration development (connected with payment collection and real-time data aggregation),
  • Java services development (different features added to existing projects),
  • Infrastructure automation with Ansible (provisioning, deployment and build scripts),
  • Jenkins pipeline configuration,
  • PHP application structure normalization (Vagrant introduction, build script creation, test reorganization),
  • JavaScript widget development (sophisticated dynamic forms, written mostly in Backbone + Marionette) and some node.js development (mostly tools and fixes for existing services),
  • Training of junior developers and interns, team mentoring, development workflow consultation.

Grupa Unity, Kraków

PHP Solution Architect - September 2015 - November 2016

  • Playing a lead architect role in a team that worked on company’s flagship product – an in-house e-commerce platform. My work has been focused on transition from dedicated solution, that had to undergo major changes from project to project, into a framework with a consistent, but customizable domain model, that could handle many conceptually different systems.
  • Participation in technical meetings with customers,
  • Making diagrams and writing documents about the architecture,
  • Training of junior developers,
  • Knowledge crunching with customers, writing proposals, project boundary negotiations.

Grupa Unity, Kraków

PHP Architect - October 2013 - September 2015

  • Implementation of customer’s performance problem solution. Major architectural leap from ad-hoc, stored procedure-based calculations to an asynchronous, messaging-based solution built on the top of RabbitMQ. Development of a custom intermediate data generation algorithm for effective caching.
  • Project and implementation of a sophisticated loyalty point calculation program, in some ways similar to Payback™. Project consisted of a calculation engine and an intuitive GUI written in JS, which provided a way to enter even very complex, custom rules.
  • Project and implementation of an automated tool, that was able to merge product catalogs from many vendors. It was capable of handling many different protocols, mainly EDI-Wheel, EDIFACT INVOIC, SOAP and Xpartner. Challenges: queueing systems, different data models, event-driven programming, big range of data,
  • Activities aimed at modernization of the company’s software development methodology. Introduction of formal code reviews and build automation procedures based on Phing and Jenkins.
  • Conducting weekly internal trainings for coworkers. Topics: software engineering, Domain Driven Design, new technologies, elegant design patterns etc.

Empathy, Kraków

PHP Programmer - April 2012 - October 2013

  • Programming of e-commerce platforms and dedicated systems for key customers.
  • Implementation of integration solutions and business rule modeling.
  • Spreading of good software engineering practices: unit testing, object oriented design, refactoring.
  • Extending the company’s framework with a DI container, event bus and other components.
  • Maintaining legacy systems.

Indexo, Kraków

PHP Programmer - August 2009 - April 2012

  • Development of dedicated systems, challenges: XML-RPC, AMF, Lucene, Facebook API, Google Maps API, automatic e-mail responders, PDF generation, web-crawler design, payment systems integration (payu.pl, dotpay.pl) etc.
  • Web server administration – deployment, PHP and SQL optimization, domain management.
  • Main projects: http://pokaz.to/, http://www.preseller.pl/, http://frauscherboats.pl/, http://www.mountainapartments.pl/, http://ibhp.pl/, indexo.pl homepage and many automated SEO tools

Indexo, Kraków

Intern - July 2009

Web programming with HTML, CSS and JS, SEO tools development

Education

Master of Computer Science (incomplete)

Applied informatics, AGH University of Science and Technology in Kraków - 2011-2013

I passed all the exams but decided not to write my thesis because it had to be connected with metallurgy, which I was not very much interested in

Bachelor of Computer Science

Applied informatics, AGH University of Science and Technology in Kraków - 2008-2011

Computer science studies flavoured with a little bit of metallurgy, materials science and thermodynamics

High School

II High School in Dąbrowa Górnicza - 2005-2008

Class of mathematics, physics and informatics

SKILLS


Soft Skills

  • 75% Complete
    Communication 75%
  • 90% Complete
    Diplomacy 90%
  • 80% Complete
    Savoir-vivre 80%

Architectural Skills

  • 85% Complete
    Knowledge crunching and asking questions 85%
  • 95% Complete
    Identifying abstractions and analysis 95%
  • 70% Complete
    Formalization and visualisation 70%
  • 80% Complete
    Implementation and integration assistance 80%
  • 75% Complete
    Scrum 75%

Programming skills

  • 90% Complete
    Server side development 90%
  • 90% Complete
    Object-oriented design 90%
  • 60% Complete
    Asynchronous processing 60%
  • 70% Complete
    Enterprise integration patterns 70%
  • 80% Complete
    Testing 80%

Interests

Guitar

I play the electric guitar in a garage band and do some acoustic, even fingerstyle playing in my free time. I listen a lot to jazz and classical music, but I don’t despise metal, rock or electronic.

Books

I like to read books, especially when they offer me a good intellectual exercise. That’s why I’m particularly keen on postmodernism, magic realism and sometimes even hard science fiction.

IT

I work in IT because of passion, not money or future prospects. I like everything computer-related, ranging from math and theory to intelligent cars and cryptocurrencies. I’m excited to observe how the technology changes our civilization.

 

Contact

SEND ME A MESSAGE

    ADDRESS

    ul. Grzegórzecka 67G/170 31-559 Kraków

    MAIL

    adam.kopec@gmail.com

    Thank You

    Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

    Martin Fowler