Skip to content
View dompiotr85's full-sized avatar
😊
😊

Block or report dompiotr85

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
dompiotr85/README.md

Change language to English|Polish

Piotr Domanski (DomPiotr85)

Expert profile in Software Engineering and Information Systems Architecture


Introduction

This profile showcases my extensive experience and multidisciplinary skills in the areas of software engineering, information systems architecture, data analysis, and database technologies. My expertise covers both theoretical aspects, based on solid scientific foundations, and the practical application of acquired knowledge in real-world projects. My approach to software development is rooted in software engineering methodologies, emphasizing requirements analysis, architectural design, implementation, testing, and code documentation.

Areas of Expertise and Specialization

Core Areas of Interest

  • Software Engineering: Specialization in developing desktop applications (both frontend and backend), data analysis, and designing efficient database solutions. My competencies include both structural and object-oriented programming paradigms.

  • Information Systems Architecture: Designing scalable and high-performance information systems, considering aspects of security, reliability, and ease of maintenance.

Research Interests

  • Build Automation: Research on optimizing software build processes, with a specific focus on using CMake to achieve modularity, reproducibility, and automation. Comparative analysis of compilation and code generation methods, considering performance criteria.

  • Database Technologies: Advanced studies in SQL, including ANSI and UNICODE standards, and exploration of Relational Database Management Systems (RDBMS). Implementation of database solutions in SQLite, Microsoft SQL Server, MySQL, MariaDB, PostgreSQL, and Oracle Database, with an emphasis on query optimization and database performance.

  • Concurrent Object-Oriented Programming in Java: Research on advanced patterns and libraries for concurrent and multithreaded programming in Java, with a focus on optimization and deadlock avoidance. Performance and scalability analysis of multithreaded applications.

  • macOS Platform: Exploration of the specifics of the closed macOS ecosystem, with a focus on extending the functionality of Open Source projects, including the use of the Xcode programming platform and the Swift language to ensure full compatibility and application performance.

Technical Skills

Programming Languages

Programming Language Proficiency Level Paradigms
Pascal (with Free Pascal) Expert Structural Programming
Delphi Expert Object-Oriented Programming
C Expert Structural and Systems Programming
C++ Expert Object-Oriented, General-Purpose, Concurrent
Java Expert Object-Oriented, Concurrent
HTML5 Advanced Semantic Markup
CSS Advanced Cascading Stylesheets
SQL Good Declarative Query Language

Analogy: Programming languages are tools in a software engineer's workshop. Each language has its unique properties and is designed for specific tasks, much like different types of hammers, screwdrivers, and saws in a mechanical workshop.

Databases

Relational Database Management System (RDBMS) Proficiency Practical Aspects
SQLite In-depth Implementing databases in applications, libraries
Microsoft SQL Server In-depth Query optimization, database architecture
MySQL In-depth Database management, security
MariaDB In-depth Clustering, replication
PostgreSQL In-depth Extensions, geospatial data
Oracle Database In-depth Advanced features, large databases

Analogy: Databases are data warehouses, and RDBMS are systems that manage these warehouses. Good database management is crucial for application efficiency, just as proper warehouse organization is crucial for smooth business operations.

Tools and Technologies

  • Version Control Systems: Git (in-depth knowledge), GitHub (professional utilization).
  • Editors and Development Environments: Microsoft Visual Studio Code, Microsoft Visual Studio, Code::Blocks, Xcode, Embarcadero Delphi.
  • Compilers: GNU Compiler Collection (GCC, g++, gobjc, gcj, gpc), MSVC Compiler, MinGW-w64, FPC, DCC.
  • Graphics Technologies: GIMP, Adobe Photoshop.
  • Containerization: Docker (experience in creating, deploying, and managing containers).
  • Testing: Writing unit and integration tests using testing frameworks (e.g., JUnit in Java, CUnit in C, Boost Test Library for C++, DUnit and DUnitX for Delphi, FPCUnit and Tap4Pascal for Free Pascal).

Analogy: Tools are instruments that enable quick and efficient software creation. A professional software engineer must be proficient in using a variety of tools, much like a virtuoso musician skillfully uses their instrument.

Development Interests

  • Algorithmics: Designing algorithms with optimized computational complexity, with a particular focus on solving problems in the field of computer science.
  • Containerization Technologies: Expanding knowledge in the area of container orchestration and cloud application deployment (e.g., Kubernetes, Docker Swarm).
  • Operating Systems Architecture: Exploring the mechanisms of operating systems, including resource management, memory management, and process management.
  • Graphics Engines: Developing knowledge in the creation of 2D and 3D graphics engines using DirectX, OpenGL, and Vulkan APIs, with a focus on optimizing rendering and utilizing hardware resources.

Methodologies and Approach

My approach to software design is based on the principles of software engineering, incorporating an iterative and incremental development process. I place particular emphasis on:

  • Requirements Analysis: Thorough understanding of client needs and system specifications.
  • Architectural Design: Creating scalable, efficient, and easy-to-maintain solutions.
  • Implementation: Writing clean, readable, and well-documented code.
  • Testing: Ensuring high-quality software through comprehensive unit and integration tests.
  • Documentation: Creating clear documentation, facilitating system maintenance and development.

Open Source Projects

Introduction 🔭

This section presents my current open-source projects, which reflect my skills and passion in the field of software engineering. These projects are developed following best programming practices, with an emphasis on code quality, performance, and modularity. The goal of these projects is not only to expand my own skills but also to provide valuable and useful technology to the open-source community.

Invitation to Collaborate 🤔

Seeking Active Collaborators for Open Source Projects

Due to the dynamic development of the open-source projects WinRuler and PitahayaEngine, I cordially invite ambitious and talented programmers, software engineers, and technology enthusiasts to actively collaborate. I am looking for people who want to join the team, contribute to the development of projects, share their knowledge and experience, and create innovative solutions together with me.

Areas of Collaboration 👯

Collaboration may include the following areas but is not limited to them:

  • Feature Development: Implementing new features and extensions in both projects based on planned roadmaps (described in the previous section).
  • Optimization: Analyzing performance, identifying bottlenecks, and optimizing code to improve speed and efficiency.
  • Testing: Creating unit and integration tests to ensure high code quality and application stability.
  • Documentation: Creating and updating technical documentation, tutorials, and usage examples.
  • UI/UX Design: Support in user interface design and improving the user experience (especially in the WinRuler project).
  • Community Support: Active participation in discussions, answering questions, supporting new users and contributors.
  • Research and Development: Exploring new technologies and methods that can be incorporated into the projects.
  • Algorithm Implementation: Developing and implementing graphic, physics, and other algorithms.
  • Database Work: Optimizing database queries and creating data schemas.
  • Porting Support: Porting projects to other platforms (e.g., porting WinRuler to macOS).

Expected Competencies

I am looking for people with the following skills and characteristics:

  • Solid Programming Foundations: Good knowledge of C++ (preferred) and experience in object-oriented programming.
  • Knowledge of Technologies: Experience using system libraries (Windows API, OpenGL), wxWidgets, and development tools (Git, CMake).
  • Passion and Dedication: A willingness to learn, experiment, and solve problems.
  • Teamwork Skills: Ability to work effectively in a team, communication, and a willingness to share knowledge.
  • Familiarity with Agile Methodologies: Understanding and practical approach to agile software development methodologies.
  • Analytical Thinking: Ability to analyze requirements, solve problems, and propose solutions.
  • Responsibility: Accuracy in performing tasks, responsibility for assigned tasks, and meeting deadlines.
  • Independence: Ability to take initiative independently.

Analogy: Collaboration on an open-source project is similar to the work of a research team, where each member contributes their unique skills and knowledge to collectively achieve a set goal. Like in an orchestra, where every instrument plays a vital role in a harmonious sound, every contributor has an important contribution to the development of the project.

How to Join?

If you are interested in collaborating, I invite you to:

  1. Familiarize Yourself with the Project: Review the repositories of WinRuler and PitahayaEngine on GitHub.
  2. Express Your Interest: Contact me via GitHub by creating an issue in the appropriate repository or sending a private message with a description of your skills, interests, and ideas.
  3. Collaboration: After agreeing on the details, I invite you to actively participate in the development of projects.

Benefits of Collaboration

  • Skill Development: Opportunity to work on real open-source projects, developing your skills and experience.
  • Collaboration with Professionals: Exchange knowledge and experiences with other developers.
  • Contribution to the Community: Participation in the creation of valuable software for the open-source community.
  • Networking: Building a network of contacts in the IT industry.
  • Satisfaction: Satisfaction from contributing to the development of open-source projects and creating innovative solutions.

Tools, Technologies and Programming Languages I know

Some Frameworks and Platforms I'm familiar with

In what Operating Systems I'm working in

Summary

My multidisciplinary expertise, commitment to continuous development, and solid theoretical and practical foundations enable me to effectively execute complex projects in the field of software engineering. I am confident that my skills and experience can contribute to the success of your endeavors.


The above text is a comprehensive presentation of my skills and experience, taking into account all guidelines. I hope it will be valuable and help in the professional presentation of your GitHub profile.

  • 💬 If you have more questions, don't hesitate to ask me.
  • 📫 You can contact me using E-Mail or the Facebook platform.

Some statistics

Profile views
GitHub stats
GitHub Streak

Attribution

This README.md file use free Third-Party images and icons from Icons8, Wikipedia, Free Pascal Compiler.

Pinned Loading

  1. WinRuler WinRuler Public

    WinRuler is a computer application that operates on various graphical operating systems, allowing users to accurately measure distances on the computer screen. The application displays a virtual ru…

    C++