Logo
    Search

    About this Episode

    πŸ“š ABOUT THE EPISODE

    In the 19th episode of the main series Grzegorz Godlewski, Marek Urbanowicz and Artur Wolny discuss their experiences and preferences regarding the implementation of Continuous Integration. We really encourage you to give this episode a listen, as we're sure that having a great CI implementation is key to launching products faster and with better developer experience!Β 

    Tune in for experience and inspiration! 🎧

    πŸ“‘ TOPICS COVERED

    πŸ‘‰ The common misconception about Continuous Integration
    πŸ‘‰ How implementing Continuous Integration can benefit your team & product
    πŸ‘‰ What it takes to have a successful CI implementation
    πŸ‘‰ Some tools/products which you might consider for your implementation

    ⌚ TIMELINE

    00:00:00 - Intro
    00:01:19 - How do we define Continuous Integration
    00:05:59 - The benefits of Continuous Integration
    00:16:20 - Challenges and requirements for CI
    00:23:36 - CI tools for pipelines (NodeJS)
    00:29:19 - Wrap up

    πŸ”— LINKS FROM THE EPISODE

    Continuous Delivery by Jez Humble and Dave Farley
    https://martinfowler.com/books/continuousDelivery.html

    Bulb light indicator
    https://en.wikipedia.org/wiki/Build_light_indicator

    🀝 CONTACT US / COLLABORATION

    If you:
    - want to send us your valuable feedback
    - you would like to appear on the show as a guest
    - you would like to help out the show to grow
    - you would like to sponsor the show

    Then please contact us via: podcast@artistryofcode.com
    You can also check out our website: https://artistryofcode.com

    😍 FOLLOW US ON SOCIAL MEDIA

    Facebook: https://www.facebook.com/ArtistryOfCode
    Twitter: https://twitter.com/ArtistryOfCode
    LinkedIn: https://www.linkedin.com/company/artistry-of-code
    Reddit: https://www.reddit.com/r/ArtistryOfCode/

    Grzegorz Godlewski
    LinkedIn: https://www.linkedin.com/in/ggodlewski/
    Twitter: https://twitter.com/GGodlewski

    Marek Urbanowicz
    LinkedIn: https://www.linkedin.com/in/marek-urbanowicz-0ba65254/
    Twitter: https://twitter.com/UrbanowiczDev

    Artur Wolny
    LinkedIn: https://www.linkedin.com/in/artur-wolny-35150664/

    Recent Episodes from Artistry of Code

    #023: Innovation vs. Expertise: Tech Decision Challenges

    #023: Innovation vs. Expertise: Tech Decision Challenges

    πŸ“š ABOUT THE EPISODE

    Software projects are filled with all these hard decisions. Deciding between making use of a known technology or pattern versus picking something entirely new is one of the most difficult and impactful ones. In this episode, Grzegorz Godlewski, Artur Wolny and Marek Urbanowicz discuss how they approach this particular type of decision. Tune in for valuable insights!

    πŸ“‘ TOPICS COVERED

    πŸ‘‰ When we think it's good to go with the solutions we already know
    πŸ‘‰ What are the benefits of embracing the unknown
    πŸ‘‰ What are the factors you should take into account while making such decisions
    πŸ‘‰ Considering the macro, impact of the decision on your and other teams

    ⌚ TIMELINE

    00:00:00 - Intro
    00:01:24 - Examples of choices we had to make
    00:05:24 - What can drive the decision making process
    00:10:00 - Unknown as a possibility for learning
    00:13:59 - Proof of Concept implementations - a way to explore
    00:19:30 - When would we go for "the new" solution to a problem
    00:23:52 - When would we stay with "the known" solution to a problem
    00:27:04 - Wrap up

    πŸ”— LINKS FROM EPISODE

    https://twitter.com/GregBDavies/status/1144530496078123009

    🀝 CONTACT US / COLLABORATION

    If you:
    - want to send us your valuable feedback
    - you would like to appear on the show as a guest
    - you would like to help out the show to grow
    - you would like to sponsor the show

    Then please contact us via: podcast@artistryofcode.com
    You can also check out our website: https://artistryofcode.com

    😍 FOLLOW US ON SOCIAL MEDIA

    Facebook: https://www.facebook.com/ArtistryOfCode
    Twitter: https://twitter.com/ArtistryOfCode
    LinkedIn: https://www.linkedin.com/company/artistry-of-code
    Reddit: https://www.reddit.com/r/ArtistryOfCode/

    Grzegorz Godlewski
    LinkedIn: https://www.linkedin.com/in/ggodlewski/
    Twitter: https://twitter.com/GGodlewski

    Marek Urbanowicz
    LinkedIn: https://www.linkedin.com/in/marek-urbanowicz-0ba65254/
    Twitter: https://twitter.com/UrbanowiczDev

    Artur Wolny
    LinkedIn: https://www.linkedin.com/in/artur-wolny-35150664/

    #022: Monorepos: The Good and Bad

    #022: Monorepos: The Good and Bad

    πŸ“š ABOUT THE EPISODE

    Are you considering moving to Monorepos with your projects? In the 22th episode Grzegorz, Artur and Marek share their valueable opinions and experiences realted to working with these. Tune in to learn about the potential benefits and challenges of this approach.

    πŸ“‘ TOPICS COVERED

    πŸ‘‰ We share subjective opinions and experiences from working with Monorepos in the JavaScript/TypeScript ecosystem
    πŸ‘‰ We talk about hidden complexity - when a "simplification" on one end results with higher complexity in other areas
    πŸ‘‰ We comment on the state of tooling for Monorepos specific in the JS/TS ecosystem

    ⌚ TIMELINE

    00:00:00 - Intro
    00:01:12 - Subjective opinions on Monorepos
    00:03:58 - Benefits and challenges of Monorepos
    00:26:20 - Recap and closing thoughts

    🀝 CONTACT US / COLLABORATION

    If you:
    - want to send us your valuable feedback
    - you would like to appear on the show as a guest
    - you would like to help out the show to grow
    - you would like to sponsor the show

    Then please contact us via: podcast@artistryofcode.com
    You can also check out our website: https://artistryofcode.com

    😍 FOLLOW US ON SOCIAL MEDIA

    Facebook: https://www.facebook.com/ArtistryOfCode
    Twitter: https://twitter.com/ArtistryOfCode
    LinkedIn: https://www.linkedin.com/company/artistry-of-code
    Reddit: https://www.reddit.com/r/ArtistryOfCode/

    Grzegorz Godlewski
    LinkedIn: https://www.linkedin.com/in/ggodlewski/
    Twitter: https://twitter.com/GGodlewski

    Marek Urbanowicz
    LinkedIn: https://www.linkedin.com/in/marek-urbanowicz-0ba65254/
    Twitter: https://twitter.com/UrbanowiczDev

    Artur Wolny
    LinkedIn: https://www.linkedin.com/in/artur-wolny-35150664/

    #021: What went wrong with Microservices

    #021: What went wrong with Microservices

    πŸ“š ABOUT THE EPISODE

    In the 21th episode Grzegorz Godlewski and Artur Wolny share their negative experiences with implementing Microservices. Three examples of misuse of that useful pattern shows us that even the greatest idea can lead us down the blind alley, when we are narrow-minded about it.

    Listen and take conclusions from those lessons that we learned!

    πŸ“‘ TOPICS COVERED

    πŸ‘‰ Impact of blindly following recommendations: costly premature optimisations.
    πŸ‘‰ Thing that might go wrong when you're focused too much on domain assignment of feature and too less on the app maintainability.
    πŸ‘‰ How microservice hype-trains and poor organisational decisions lead to project failure.

    ⌚ TIMELINE

    00:00:00 - Intro
    00:02:08 - Story #1: Blindly following recommendations.
    00:08:22 - Story #2: Too much domain, too little maintainability.
    00:14:20 - Story #3: Microservice hype-train.
    00:19:15 - Microservices or monolith? Benefits & drawbacks.
    00:34:46 - Outro

    🀝 CONTACT US / COLLABORATION

    If you:
    - want to send us your valuable feedback
    - you would like to appear on the show as a guest
    - you would like to help out the show to grow
    - you would like to sponsor the show

    Then please contact us via: podcast@artistryofcode.com
    You can also check out our website: https://artistryofcode.com

    😍 FOLLOW US ON SOCIAL MEDIA

    Facebook: https://www.facebook.com/ArtistryOfCode
    Twitter: https://twitter.com/ArtistryOfCode
    LinkedIn: https://www.linkedin.com/company/artistry-of-code
    Reddit: https://www.reddit.com/r/ArtistryOfCode/

    Grzegorz Godlewski
    LinkedIn: https://www.linkedin.com/in/ggodlewski/
    Twitter: https://twitter.com/GGodlewski

    Marek Urbanowicz
    LinkedIn: https://www.linkedin.com/in/marek-urbanowicz-0ba65254/
    Twitter: https://twitter.com/UrbanowiczDev

    Artur Wolny
    LinkedIn: https://www.linkedin.com/in/artur-wolny-35150664/

    #020: Continuous Deployment

    #020: Continuous Deployment

    πŸ“š ABOUT THE EPISODE

    In the 20th episode of the main series Grzegorz Godlewski, Marek Urbanowicz and Artur Wolny discuss their experiences and preferences regarding the implementation of Continuous Deployment. With this episode we complete our micro-series focused on CI/CD implementation. We strongly believe that all code should hit production as soon as possible, as frequently as possible in a reliable, repeatable andΒ  automated manner.

    Tune in for experience and inspiration! 🎧

    πŸ“‘ TOPICS COVERED

    πŸ‘‰ How implementing Continuous Delivery can benefit your team & product, optimizing costs and shortening the feedback loop
    πŸ‘‰ What it takes to have a successful CD implementation
    πŸ‘‰ Some tools/products which you might consider for your implementation

    ⌚ TIMELINE

    00:00:00 - Intro
    00:01:21 - How do we define Continuous Deployment
    00:05:20 - Benefits of Continuous Deployment
    00:13:21 - Challenges and requirements for CD implementation
    00:21:54 - Tools which you can use to build CDΒ 
    00:30:49 -Β Outro

    🀝 CONTACT US / COLLABORATION

    If you:
    - want to send us your valuable feedback
    - you would like to appear on the show as a guest
    - you would like to help out the show to grow
    - you would like to sponsor the show

    Then please contact us via: podcast@artistryofcode.com
    You can also check out our website: https://artistryofcode.com

    😍 FOLLOW US ON SOCIAL MEDIA

    Facebook: https://www.facebook.com/ArtistryOfCode
    Twitter: https://twitter.com/ArtistryOfCode
    LinkedIn: https://www.linkedin.com/company/artistry-of-code
    Reddit: https://www.reddit.com/r/ArtistryOfCode/

    Grzegorz Godlewski
    LinkedIn: https://www.linkedin.com/in/ggodlewski/
    Twitter: https://twitter.com/GGodlewski

    Marek Urbanowicz
    LinkedIn: https://www.linkedin.com/in/marek-urbanowicz-0ba65254/
    Twitter: https://twitter.com/UrbanowiczDev

    Artur Wolny
    LinkedIn: https://www.linkedin.com/in/artur-wolny-35150664/

    #019: Benefits of Continuous Integration

    #019: Benefits of Continuous Integration

    πŸ“š ABOUT THE EPISODE

    In the 19th episode of the main series Grzegorz Godlewski, Marek Urbanowicz and Artur Wolny discuss their experiences and preferences regarding the implementation of Continuous Integration. We really encourage you to give this episode a listen, as we're sure that having a great CI implementation is key to launching products faster and with better developer experience!Β 

    Tune in for experience and inspiration! 🎧

    πŸ“‘ TOPICS COVERED

    πŸ‘‰ The common misconception about Continuous Integration
    πŸ‘‰ How implementing Continuous Integration can benefit your team & product
    πŸ‘‰ What it takes to have a successful CI implementation
    πŸ‘‰ Some tools/products which you might consider for your implementation

    ⌚ TIMELINE

    00:00:00 - Intro
    00:01:19 - How do we define Continuous Integration
    00:05:59 - The benefits of Continuous Integration
    00:16:20 - Challenges and requirements for CI
    00:23:36 - CI tools for pipelines (NodeJS)
    00:29:19 - Wrap up

    πŸ”— LINKS FROM THE EPISODE

    Continuous Delivery by Jez Humble and Dave Farley
    https://martinfowler.com/books/continuousDelivery.html

    Bulb light indicator
    https://en.wikipedia.org/wiki/Build_light_indicator

    🀝 CONTACT US / COLLABORATION

    If you:
    - want to send us your valuable feedback
    - you would like to appear on the show as a guest
    - you would like to help out the show to grow
    - you would like to sponsor the show

    Then please contact us via: podcast@artistryofcode.com
    You can also check out our website: https://artistryofcode.com

    😍 FOLLOW US ON SOCIAL MEDIA

    Facebook: https://www.facebook.com/ArtistryOfCode
    Twitter: https://twitter.com/ArtistryOfCode
    LinkedIn: https://www.linkedin.com/company/artistry-of-code
    Reddit: https://www.reddit.com/r/ArtistryOfCode/

    Grzegorz Godlewski
    LinkedIn: https://www.linkedin.com/in/ggodlewski/
    Twitter: https://twitter.com/GGodlewski

    Marek Urbanowicz
    LinkedIn: https://www.linkedin.com/in/marek-urbanowicz-0ba65254/
    Twitter: https://twitter.com/UrbanowiczDev

    Artur Wolny
    LinkedIn: https://www.linkedin.com/in/artur-wolny-35150664/

    #018: Implementing background jobs

    #018: Implementing background jobs

    πŸ“š ABOUT THE EPISODE

    Welcome to the 18th episode of the main series!

    This time Grzegorz Godlewski and Marek Urbanowicz met up to discuss their experience and recommendations on implementing background jobs. Any system which is growing in scale, will need those at some point either to implement performance improvements (by putting some work into the background) or new business requirements (which are supposed to run in background).

    Tune in for insights on how this can be done! 🎧

    πŸ“‘ TOPICS COVERED

    πŸ‘‰ How simple business analysis can help you in determining candidates for background jobs
    πŸ‘‰ What software architecture patterns come in handy while implementing them
    πŸ‘‰ What are the best practices for reliable implementations
    πŸ‘‰ Some tools/products which you might consider for your implementation

    ⌚ TIMELINE

    00:00 - Intro
    01:14 - How to identify candidates for background jobs
    08:28 - Employ the transactional outbox pattern
    11:53 - Dealing with state in background jobs
    15:29 - Scheduling and processing batched operations
    18:40 - Avoiding state with Event Carried State Transfer pattern
    21:14 - Silver bullets and golden hammers - the tooling
    28:08 - Emphasis on idempotency

    πŸ”— LINKS FROM THE EPISODE

    M. Fowler: What do you mean by β€œEvent-Driven”?
    https://martinfowler.com/articles/201701-event-driven.html

    Transactional outbox pattern description
    https://microservices.io/patterns/data/transactional-outbox.html

    BullMQ
    https://docs.bullmq.io/

    RabbitMQ Delayed Message Plugin
    https://github.com/rabbitmq/rabbitmq-delayed-message-exchange

    Temporal:
    https://temporal.io/

    🀝 CONTACT US / COLLABORATION

    If you:
    - want to send us your valuable feedback
    - you would like to appear on the show as a guest
    - you would like to help out the show to grow
    - you would like to sponsor the show

    Then please contact us via: podcast@artistryofcode.com
    You can also check out our website: https://artistryofcode.com

    😍 FOLLOW US ON SOCIAL MEDIA

    Facebook: https://www.facebook.com/ArtistryOfCode
    Twitter: https://twitter.com/ArtistryOfCode
    LinkedIn: https://www.linkedin.com/company/artistry-of-code
    Reddit: https://www.reddit.com/r/ArtistryOfCode/

    Grzegorz Godlewski
    LinkedIn: https://www.linkedin.com/in/ggodlewski/
    Twitter: https://twitter.com/GGodlewski

    Marek Urbanowicz
    LinkedIn: https://www.linkedin.com/in/marek-urbanowicz-0ba65254/
    Twitter: https://twitter.com/UrbanowiczDev

    Artur Wolny
    LinkedIn: https://www.linkedin.com/in/artur-wolny-35150664/

    #017: Why you should write Unit Tests

    #017: Why you should write Unit Tests

    πŸ“š ABOUT THE EPISODE

    Welcome to the 17th episode of the main series!

    This time we reach the bottom of the Test Pyramid, focusing on the most common type of test: the Unit Test. As big fans of TDD (Test Driven Development) we happily discuss our experiences and approaches. We cover proven benefits which you could use as support material in introducing the practice of Unit Testing and TDD in your organization or day-to-day work.

    Tune in for new stream of inspiration! 🎧

    πŸ“‘ TOPICS COVERED

    πŸ‘‰ How unit testing can be beneficial for individuals and organizations
    πŸ‘‰ The do's and don'ts of unit testing
    πŸ‘‰ How to write testble code
    πŸ‘‰ Some mocking libraries for NodeJS which you might want to try out

    ⌚ TIMELINE

    00:00 - Intro
    01:35 - To be clear: how do we define Unit Tests
    05:02 - Sound reasons for why we write Unit Tests
    12:38 - To mock, or not to mock?
    20:58 - Writing testable code
    27:02 - Wrap up

    πŸ”— LINKS FROM THE EPISODE

    ts-mockito mocking library
    https://www.npmjs.com/package/@johanblumenberg/ts-mockito

    jest-mock-extended mocking library
    https://www.npmjs.com/package/jest-mock-extended

    inversify library for dependency injection
    https://www.npmjs.com/package/inversify

    🀝 CONTACT US / COLLABORATION

    If you:
    - want to send us your valuable feedback
    - you would like to appear on the show as a guest
    - you would like to help out the show to grow
    - you would like to sponsor the show

    Then please contact us via: podcast@artistryofcode.com
    You can also check out our website: https://artistryofcode.com

    😍 FOLLOW US ON SOCIAL MEDIA

    Facebook: https://www.facebook.com/ArtistryOfCode
    Twitter: https://twitter.com/ArtistryOfCode
    LinkedIn: https://www.linkedin.com/company/artistry-of-code
    Reddit: https://www.reddit.com/r/ArtistryOfCode/

    Grzegorz Godlewski
    LinkedIn: https://www.linkedin.com/in/ggodlewski/
    Twitter: https://twitter.com/GGodlewski

    Marek Urbanowicz
    LinkedIn: https://www.linkedin.com/in/marek-urbanowicz-0ba65254/
    Twitter: https://twitter.com/UrbanowiczDev

    Artur Wolny
    LinkedIn: https://www.linkedin.com/in/artur-wolny-35150664/

    #016: Tips on integration testing

    #016: Tips on integration testing

    πŸ“š ABOUT THE EPISODE

    Welcome to the 16th episode! We continue our step-down and share with you our understanding of integration tests and best practices we've learned when implementing them. In the IT world full of APIs, SaaS and databases, checking how your code collaborate with third parties is a must have.

    Want to know our way of integration testing? Just press play  🎧

    πŸ“‘ TOPICS COVERED

    πŸ‘‰ Learn about our opinions on integration testing
    πŸ‘‰ What NodeJS community is doing wrong in integration tests
    πŸ‘‰ Get useful hints from people who implement integration tests on a daily basis
    πŸ‘‰ Learn about the pros of having your code collaboration tested
    πŸ‘‰ Learn when to favour integration testing over E2E or unit testing

    ⌚ TIMELINE

    00:00:00 - Intro
    00:00:56 - What is our definition of integration testing?
    00:06:50 - Why do we need integration tests?
    00:14:06 - When do we favour integration tests over E2E tests?Β 
    00:21:37 - What tools we use for integration testing in Node?Β 
    00:25:44 - How to make your integration tests robust and solid stable?
    00:29:15 - Wrap up

    🀝 CONTACT US / COLLABORATION

    If you:
    - want to send us your valuable feedback
    - you would like to appear on the show as a guest
    - you would like to help out the show to grow
    - you would like to sponsor the show

    Then please contact us via: podcast@artistryofcode.com
    You can also check out our website: https://artistryofcode.com

    😍 FOLLOW US ON SOCIAL MEDIA

    Facebook: https://www.facebook.com/ArtistryOfCode
    Twitter: https://twitter.com/ArtistryOfCode
    LinkedIn: https://www.linkedin.com/company/artistry-of-code
    Reddit: https://www.reddit.com/r/ArtistryOfCode/

    Grzegorz Godlewski
    LinkedIn: https://www.linkedin.com/in/ggodlewski/
    Twitter: https://twitter.com/GGodlewski

    Marek Urbanowicz
    LinkedIn: https://www.linkedin.com/in/marek-urbanowicz-0ba65254/
    Twitter: https://twitter.com/UrbanowiczDev

    Artur Wolny
    LinkedIn: https://www.linkedin.com/in/artur-wolny-35150664/

    #015: Leveraging E2E tests in your project

    #015: Leveraging E2E tests in your project

    πŸ“š ABOUT THE EPISODE

    In the 15th episode we met to discuss the matter of E2E (end-to-end) tests. DefinitelyΒ  one of the most difficult types of testing which also has considerable benefits, next to a comparable list of drawbacks.

    We decided that from this episode we'll aim to deliver shorter content, so that you can enjoy it more spontaneously 🎧, without scheduling a big block of time. Tell us if you like the new format πŸ’–!

    πŸ“‘ TOPICS COVERED

    πŸ‘‰ Learn about our opinions on E2E testing
    πŸ‘‰ Get useful hints from people who did implement E2E tests
    πŸ‘‰ Learn about the traps and caveats of E2E testing
    πŸ‘‰ Learn how you might set this up in your organization

    ⌚ TIMELINE

    00:00:00 - Intro
    00:01:15 - What is the "Test Pyramid"
    00:03:13 - Defining E2E tests and hints for implementation
    00:09:37 - Why should we invest in E2E tests
    00:12:52 - Who should be responsible for E2E tests
    00:19:18 - The length of the feedback loop
    00:22:10 - Wrap up

    🀝 CONTACT US / COLLABORATION

    If you:
    - want to send us your valuable feedback
    - you would like to appear on the show as a guest
    - you would like to help out the show to grow
    - you would like to sponsor the show

    Then please contact us via: podcast@artistryofcode.com
    You can also check out our website: https://artistryofcode.com

    😍 FOLLOW US ON SOCIAL MEDIA

    Facebook: https://www.facebook.com/ArtistryOfCode
    Twitter: https://twitter.com/ArtistryOfCode
    LinkedIn: https://www.linkedin.com/company/artistry-of-code
    Reddit: https://www.reddit.com/r/ArtistryOfCode/

    Grzegorz Godlewski
    LinkedIn: https://www.linkedin.com/in/ggodlewski/
    Twitter: https://twitter.com/GGodlewski

    Marek Urbanowicz
    LinkedIn: https://www.linkedin.com/in/marek-urbanowicz-0ba65254/
    Twitter: https://twitter.com/UrbanowiczDev

    Artur Wolny
    LinkedIn: https://www.linkedin.com/in/artur-wolny-35150664/

    #014: About data and state consistency in software

    #014: About data and state consistency in software

    πŸ“š ABOUT THE EPISODE

    In the 14th episode we met in our full squad to talk about our hands-on experiences of data consistency challenges.

    Each of us has brought one detailed example from his career that challenged us to make the choice between strong and eventual consistency.

    Did you have to make that decision? Or maybe you're about to make one? Listen to this episode to learn what we have done to align data consistency and service availability.

    πŸ“‘ TOPICS COVERED

    πŸ‘‰ How to make security team arrive at the right property?
    πŸ‘‰ How to make decisions based on multiple asynchronous sensors in home automation systems?Β 
    πŸ‘‰ How to present temporal inconsistencies to the end user?

    ⌚ TIMELINE

    00:01:17 - πŸ– Little warm up - about our vacations
    00:08:10 - πŸš” Security system's data consistency
    00:23:59 - 🏠 Smart home - decision making based on asynchronous inputs
    00:31:44 - πŸ“² How eventual consistency affects the end-user experience
    00:38:57 - πŸ‘‹πŸΌ Dear listener, we need your help!


    🀝 CONTACT US / COLLABORATION

    If you:
    - want to send us your valuable feedback
    - you would like to appear on the show as a guest
    - you would like to help out the show to grow
    - you would like to sponsor the show

    Then please contact us via: podcast@artistryofcode.com
    You can also check out our website: https://artistryofcode.com

    😍 FOLLOW US ON SOCIAL MEDIA

    Facebook: https://www.facebook.com/ArtistryOfCode
    Twitter: https://twitter.com/ArtistryOfCode
    LinkedIn: https://www.linkedin.com/company/artistry-of-code
    Reddit: https://www.reddit.com/r/ArtistryOfCode/

    Grzegorz Godlewski
    LinkedIn: https://www.linkedin.com/in/ggodlewski/
    Twitter: https://twitter.com/GGodlewski

    Marek Urbanowicz
    LinkedIn: https://www.linkedin.com/in/marek-urbanowicz-0ba65254/
    Twitter: https://twitter.com/UrbanowiczDev

    Artur Wolny
    LinkedIn: https://www.linkedin.com/in/artur-wolny-35150664/

    Artistry of Code
    enSeptember 05, 2022