Roger Zacharczyk
Software developer

I am a long experienced software developer, designer, architect and mentor.
I know how to develop and maintain projects with long living code base. I specialize in backends and Java.
I am self-employed as Byte Imagination.

About me

I am a developer with passion

I soaked into IT when I was a kid. It always fascinated me how all these electronic devices work, what makes them act as we want them to act. Computer games made me curious how to create colorful and melodious worlds out of nothing.

My journey began with Commodore 64 and Basic. As years passed by, new programming languages emerged, computers evolved and shrank into a size smaller than a finger, I became better and better in controlling them with Pascal, C/C++, Java and many others. Nowadays it's not only about programming a computer but also about making the still-getting-bigger software manageable and understandable not only by a processor but also by human.

I believe that being an outstanding software developer is to write not only clean code but also to design clean architecture keeping in mind standards, security and ethics.

At the end of the day, there is a client who the software is created for.

 

  • Assessing client needs, risks and possibilities, estimations
  • Client-developer and developer-developer communication
  • Building and managing a team
  • Clean architecture and best practices
  • Needs over technologies (picking the right tool for the job)
  • Relational and NoSQL databases (PostgreSQL, Oracle, MongoDB and others)
  • State of the art tools (Git, Docker and others)
  • State of the art frameworks (Spring, Angular and others)
  • Vast spectrum of programming languages (mainly Java but also C/C++, Python, Ruby, JavaScript and others)
  • Automated tests and automated tasks

Skills

Client communication

It is important to understand the need, the problem, the goal.

Architecture

The only constant is change. Automating and testability come first.

Mentoring

Spreading the knowledge makes the software better.

Java, Kotlin, Scala

From oldest version to the newest. Long living projects tend to stick with specific LTS version for years.

SQL

PostgreSQL, Oracle Database, MySQL. No matter the vendor, data is important.

NoSQL

Neo4j, mongoDB, Redis. Key-value or not, relations are not always tabular.

HTTP

REST, SOAP, gRPC. Information exchange is the key.

Web / mobile

HTML, CSS, JavaScript, Android, iOS. As close to user as software can be.

Frameworks

Spring, Spark, Angular, React. Reliable tools helps to make the job done.

Experience

Neontri
Developing and maintaining backend services for mobile banking applications and frontend applications for client's internal use. Interservice communication. Using technologies like Java, Kotlin, Docker, SOAP, REST, Oracle Database, React. Communicating with clients. Designing architecture. Code reviews. Recruiting developers.
Code Can Fly
Developing and maintaining backend services for frontend applications for public sector. Interservice communication. Supervising other developers, mentoring. Consulting solutions.
Kontomatik
Software and architecture development, code reviews, communication with other team members, PMs, and clients. Working mainly with Java but also Ruby and many others.
Implementing company’s core project from scratch using Java, Spring, Hibernate, Postgres, Gradle, Ansible, Gitlab and many others. This project allows to gather information from one’s personal banking account(s) history, process the data and unify it regardless of the source of this data, which then would allow to decide whether or not one is trustworthy enough to give him or her a loan.
Designing clean architecture for the core project as well as its API for communication with different services.
Being a Project Owner of the core project.
Cooperating with other team members working on the core project as well as with members working on related projects. Communicating with clients.
Reviewing code of other team members before pushing it to production.
Actively and holistically supervising core project and other projects and how their relations look like, how they communicate with each other.
KSI.pl
Implementing computer games for Android, designing projects architecture.
BuzzGroup
Implementing computer games using the Flash (ActionScript) technology, designing projects architecture, managing.
Orchid Games
Implementing computer games for PC, Android, iOS (iPhone, iPad), Mac OS.
C/C++, Lua, Objective-C, Java, Microsoft Visual Studio, Xcode, Photoshop, Windows, Mac OS.
Spongierki.pl
Creating Spongierki.pl's webpage. Implementing computer games using Adobe Flash technology. ActionScript, CSS, JavaScript, jQuery, (X)HTML.
Reactor Games
Implementing computer games for Nintendo DS, Nintendo 3DS and PC platforms. C/C++, Lua, SVN, Microsoft Visual Studio, Microsoft Office