Artistry of Code: Recent Episodes

Grzegorz Godlewski, Marek Urbanowicz and Artur Wolny

The IT podcast where Grzegorz Godlewski, Artur Wolny and Marek Urbanowicz, together with their guests, talk about topics related to the world of IT. We are looking for ways of doing things right and having fun with in doing so. Software, architecture, soft skills, teamwork (and other, crazy, buzzwords).

View Details

๐Ÿ“š 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/

View Details

๐Ÿ“š 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/

View Details

๐Ÿ“š 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/

View Details

๐Ÿ“š 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/

View Details

๐Ÿ“š 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/

View Details

๐Ÿ“š 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/

View Details

๐Ÿ“š 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/

View Details

๐Ÿ“š 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/

View Details

๐Ÿ“š 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/

View Details

๐Ÿ“š 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/

View Details

๐Ÿ“š ABOUT THE EPISODE

In the 13th episode of the main series, we hosted a friend of ours: Jarosล‚aw Wiล›niewski, who's working as Technical Leader and Architect at Viessmann R&D Center.

Together with Jarek, we talked about "Why long-term projects are really awesome". We did it by sharing valuable experiences, lessons learned and actionable tips you might want to pick up!

๐Ÿ“‘ TOPICS COVERED

๐Ÿ‘‰ The key lessons learned from developing the same product for 8 years

๐Ÿ‘‰ How iterative code refactoring could ease your customer's cognitive shock

๐Ÿ‘‰ How to communicate UI/UX changes to the customer's to avoid the backlash

๐Ÿ‘‰ Deciding between evolution and revolution in a software product

๐Ÿ‘‰ How working longer with a product helps in building professional seniority and open your path to a leadership role

๐Ÿ‘‰ What are the pros and cons of working long with the same product

๐Ÿ‘‰ What helps to keep great developers on board

๐Ÿค THE EPISODE'S GUEST

Jarosล‚aw Wiล›niewski

Technical Leader, Architect at Viessmann R&D Center

Personal web page: https://appsisle.com/

LinkedIn: https://www.linkedin.com/in/softdeveloper/

๐Ÿค 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/

View Details

๐Ÿ“š ABOUT THE EPISODE

In the 12th episode of the main series, we hosted Pierre de Wulf - the co-founder and one of the core developers of ScarpingBee.

Tune in to learn about Pierre, his path to running a successful business and the challenges he had to face along the way. In this episode, we also cover the technical challenges of building & operating developer-oriented software products. Together with us, you'll see that a "programmer's life" comes in different forms and flavours!

๐Ÿ“‘ TOPICS COVERED

๐Ÿ‘‰ How programmers could use their day-to-day job to find a business idea
๐Ÿ‘‰ Advantages and disadvantages of being a dev and building a product (both for marketing and building)
๐Ÿ‘‰ Getting involved in the community you want to help now
๐Ÿ‘‰ How ScrapingBee is built internally
๐Ÿ‘‰ Why developers are the coolest testers in the world :)
๐Ÿ‘‰ How Pierre approaches architecture and scalability challenges
๐Ÿ‘‰ What techniques and practices are applied to help a small team to build their product

โŒš TIMELINE

00:00:00 - Intro
00:01:02 - Welcome to 12. episode - meet our guest - Pierre de Wulf
00:10:59 - How developers can find ideas for their own products?
00:16:10 - How to make business out of the open-source projects?
00:18:21 - Is it worth to target developers as potential customers?
00:19:40 - What it takes to stop being the developer and start an own business?
00:25:00 - How to distribute responsibilities - on the example of ScrapingBee team.
00:26:00 - How to use the power of developers community to kickstart your product?
00:30:14 - What problem does ScrapingBee solve?
00:32:41 - What (technical) challenges Pierre needed to solve to make ScrapingBee work?00:38:58 - How ScrapingBee is secured against misusing of its API?
00:42:50 - What's under the hood of ScrapingBee API?
00:47:24 - What are the good development practices that are cultivated in ScrapingBee?
000:50:56 - What programming languages have been used to create ScrapingBee and why those?
00:54:44 - What programming principles are applied to ScrapingBee API codebase?
00:57:12 - Pierre's "words of wisdom" for our listeners
01:03:11 - Pierre's recommendations on valuable resources to learn from
01:04:30 - How to reach Pierre and find more about ScrapingBee

๐Ÿค THE EPISODE'S GUEST

Pierre de WulfCo-Founder of ScrapingBee

You can find more about the project here: https://www.scrapingbee.com/

Twitter: https://twitter.com/PierreDeWulf
Mail: pierre@scrapingbee.com

๐Ÿค 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

Podcast Social Accounts

Facebook: https://www.facebook.com/ArtistryOfCode
Twitter: https://twitter.com/ArtistryOfCode
LinkedIn: https://www.linkedi

View Details

๐Ÿ“š ABOUT THE EPISODE

In the 11th episode of the main series, Grzegorz, Marek and Artur talk about their experience with live coding during job interviews for programming positions. How did these look like and if they enjoyed it at all.

Tune in to hear about the thoughts and opinions on the matter, along with ideas on how to make it a pleasant experience for everyone involved. If you're hiring a lot, that's a must-listen :)

๐Ÿ“‘ TOPICS COVERED๐Ÿ‘‰ How each of the hosts experienced live-coding exercises - what was great or bad about it
๐Ÿ‘‰ Based on the bad experiences, how can this be done better
๐Ÿ‘‰ How can this exercise be helpful or harmful for employer branding
๐Ÿ‘‰ What are the traps waiting for the interviewers and candidates alike
๐Ÿ‘‰ Tips on preparing for such an exercise
๐Ÿ‘‰ Should live-coding exercise be part of all interviews

โŒš TIMELINE00:00:00 - Intro
00:01:34 - Highlights from the last two weeks
00:06:52 - Marek's experience with live-coding during interviews
00:11:50 - Artur's experience with live-coding during interviews
00:15:55 - Grzegorz's experience with live-coding during interviews
00:21:32 - What information about the candidate does a live-coding exercise provide?
00:32:34 - Tips for doing the live-coding exercise right
00:35:38 - The importance of doing it right for employer branding
00:37:08 - Retrospective summary - how do we feel about live-coding after this conversation
00:47:20 - 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

Podcast Social Accounts
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/

View Details

ABOUT THE EPISODE

This episode follows up on the subject of challenges in asynchronous communication which was started in episode #009 ๐Ÿงต. Join us for another journey into the depths of this domain!

TOPICS COVERED
In episode #010, in which we dug deeper into the ground of Asynchronous Communication, talking about:

๐Ÿ”ข How we can deal with "out of order" processing? Is it the responsibility of the transport layer only?

๐Ÿ“ฌ How to ensure the message delivery? What strategies are used by message brokers to give us some guarantees? How does using those strategies affects a producer and a consumer code?

โฑ Using Asynchronous Communication in long-running business processes and how to make it blend into the synchronous APIs environment?

That's not all the concerns one needs to consider when implementing Asynchronous Communication. We intend to follow up on this in future!

TIMELINE00:00:00 - Intro
00:01:37 - Our last 2 weeks
00:07:37 - The problem of ordering in async communication
00:10:06 - Issues with ordering comming from the producer
00:11:20 - Competing consumers as source of ordering problems
00:14:03 - Tackling the concurrency issues on the entity level
00:22:13 - Ordering in queues vs event streams
00:25:55 - Ensuring delivery
00:36:05 - Idempotency in the asynchronous communication
00:42:26 - Long running processes
00:51:08 - Importance of requestId/correlationId
00:53:15 - Wrap up

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/

View Details

Welcome to episode #009. Today's topic is the Challenges of asynchronous communication.

Do you have enough of waiting for HTTP responses to finish? Your application times out on a day-to-day basis? Check out the 9th episode to see if async communication patterns can ease, or maybe aggravate your pain?

In this episode, you'll learn:

๐Ÿ‘‰ How to determine if using asynchronous communication is the right choice

๐Ÿ‘‰ What are the most popular patterns of asynchronous communication

๐Ÿ‘‰ What are the aspects worth considering when picking a pattern for your use case

๐Ÿ‘‰ What to focus on while implementing the async communication pattern in the application

๐Ÿ‘‰ How to handle processing issues during message processing

BTW. Something new is coming to the Artistry of Code podcast: This time we showed our faces with a video recording!

View Details

In the fifth bonus episode of the Artistry of Code Snippets series, Grzegorz shares his experience in achieving the "Sustainable Pace of development".

Tune in for an interesting story and some good tips on how to implement this practice for yourself or the team you're working with. The steps are simple, and the return of investment is quite fast. What to expect from it? Happy and performant teams, better balance, more quality outcomes, less overburdening and exhaustion, nurtured performance and creativity.

There's much more to that - start from this episode, and experience it yourself!

Links to resources mentioned in episode:

  • https://agilemanifesto.org/
  • https://agilemanifesto.org/principles.html
  • https://kanbanize.com/agile/project-management/principles
  • http://www.extremeprogramming.org/rules.html
  • http://www.extremeprogramming.org/rules/overtime.html
  • http://www.extremeprogramming.org/rules/velocity.html

Link to Grzegorz's article:
[To Be Added]

View Details

Another episode is out live! In the #008 weโ€™ve taken a look at the latest 26th volume of ThoughtWorksโ€™ Technology Radar. Each of us brought a few points of his choice from the report, making a highlights list of things that we find especially interesting, valuable or important in our daily work.

If you donโ€™t know what the Technology Radar report is - itโ€™s fine, because weโ€™ve made an effort for our listeners to understand its assumptions and how to read it.

Read the full Technology Radar report on the Thought Works website: https://www.thoughtworks.com/radar

Interested in AMQP Prosumer - the OS project from Grzegorz?
You can find it in the NPM registry:
https://www.npmjs.com/package/amqp-prosumer

View Details

Welcome to the โ€œJames Bondโ€ of AoC episodes - #007. We used this special opportunity to host a special guest - Nicolas De Boose, Tech Lead from Urbantz. Nicolas is a friendly, warm and open-minded person and a true professional at the same time, which makes him a perfect fit for the position.ย 

In our conversation we revealed a few highlights from his career, we got to know what drives him for development, but mostly we focused on his love for Clean Architecture and his experience in applying that idea in a real-life, business environment.

Links and resourcesBlog of Nicolas
https://www.mechantblog.com/

Nicolas on Twitter
https://twitter.com/nicodeboose

View Details

In this episode, Artur, Marek and Grzegorz share their views and experiences with different forms of so-called "knowledge sharing" on levels of: organizations, teams and individuals.

๐Ÿ’ก Some of the ideas can be implemented by you in a matter of hours, some of them require more time and alignment with the surrounding organization. But all of them are worth giving them a try!

๐ŸŽฌ We'd like to encourage you to implement such initiatives as we consider them as great means for both: professional development and ensuring that your projects or products succeed.

๐Ÿ’˜ If you learned something or got inspired by this episode, feel free to share it with others, leave us a comment under the episode!

๐Ÿ“ฃ And if you're new to the show, consider subscribing to our channels over YouTube, Apple Podcasts, Spotify or any podcasting app of your choice. This way we'll stay in touch and you won't miss any updates!

Enjoy the show!

View Details

In the third episode of the Snippet series, Marek shares his 4 tips on the professional development of software developers. If you want to grow as a developer - this episode is for you!
Do you have any other tips to help others to grow? Share them in the comments on our social media profiles!

Make sure you've subscribed to our podcast, don't hesitate to share this episode with others and tell us what you think about the content we deliver.

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

View Details

Another episode released! In #005 weโ€™ve tried to answer the question โ€œWho is the QA anyway?โ€ of delivered software. Is it a manual tester, Quality Assurance Engineer, or someone else?

Weโ€™ve analyzed the typical process of Agile software development to find an answer. Do you have your opinion already? Press the โ€œplayโ€ button and compare it to our findings!

View Details

In the third episode of the Snippet series, Grzegorz shares his tips on implementing the "Learn, Apply, Repeat" mantra. If you were looking for ways on how to structure your personal development - you will find this episode really useful!

The full article can be found here:
https://www.linkedin.com/pulse/learn-apply-repeat-grzegorz-godlewski

Make sure you've subscribed to our podcast, don't hesitate to share this episode with others and tell us what you think about the content we deliver.

View Details

Episode #004 is already here! This time we wanted to share with you the selection of tools that might help you forget about the routine tasks and focus on things that really matter (and fortunately machines canโ€™t do them yet ๐Ÿ˜… ) - solving business problems.

Weโ€™ve brought our daily helping tools that can:

  • keep an eye on the code quality and style, help you write the code or can be useful when testing or deploying it;
  • collaborate with other developers;
  • visualize the problem to solve and the solution from a higher perspective.

We encourage you to try out our selection of tools and weโ€™re looking forward to your proposals that you consider handy in the daily work.

List of contents:
00:00 ๐ŸŽผ Intro
00:47 ๐Ÿ’ก What NodeJS tools Marek found lately?
02:52 ๐Ÿ˜“ What occupied Artur that much?
04:37 ๐Ÿ“š What Grzegorz is preparing to?
05:37 ๐Ÿ… What tools can help us deliver the code of good quality?
22:04 ๐Ÿค How proper tools can help us with collaboration?
38:50 ๐Ÿ”Ž What tools can be handy in the testing procedure?
48:54 ๐Ÿค– What can assist us in our daily work?
55:20 ๐Ÿ’Œ Will you share your favourite toolkit with us?

Tools mentioned in the episode:

General usage:
โžญ SonarQube: https://www.sonarqube.org/
โžญ JetBrains IDEs: https://www.jetbrains.com/products/
โžญ JetBrain Code With Me: https://www.jetbrains.com/code-with-me/
โžญ docker-compose: https://docs.docker.com/compose/

Visualization:
โžญ Excalidraw: https://excalidraw.com/
โžญ Miro: https://miro.com/
โžญ Figma: https://www.figma.com/
โžญ Web Sequence Diagrams: https://www.websequencediagrams.com/
โžญ Obsidian: https://obsidian.md/
โžญ mermaid.js: https://mermaid-js.github.io/mermaid/#/

For Node:
โžญ eslint: https://eslint.org/
โžญ prettier: https://prettier.io/
โžญ jest: https://github.com/facebook/jest
โžญ npm-check: https://github.com/dylang/npm-check
โžญ stryker: https://github.com/stryker-mutator/stryker-js

For PHP:
โžญ humbug: https://github.com/humbug/humbug
โžญ PHP CodeSniffer: https://github.com/squizlabs/PHP_CodeSniffer

For testing:
โžญ MockServer: https://mock-server.com/
โžญ Gatling: https://gatling.io/
โžญ ToxiProxy: https://github.com/Shopify/toxiproxy
โžญ Blockade: https://blockade.readthedocs.io/en/latest/ (deprecated)

View Details

In the second episode of The Snippet Series Artur is giving his insights into the topic of proper sizing "unit" for Unit Testing.

  • How to make Unit Testing well-grained?
  • Is every piece of code worth having separate test suite?
  • What to do when the size of your test files overwhelm you?

You can find answers to those questions in the episode.

00:00 Intro ๐ŸŽผ
00:28 How it all started? ๐Ÿ“†
01:22 How to classify Unit Testing? ๐Ÿ‘จ๐Ÿปโ€๐Ÿซ
02:07 What is the "unit" for Unit Testing? ๐Ÿงฉ
03:41 Is every "unit" worth being tested? ๐Ÿ”ฎ
06:15 What if the "unit" is too big? ๐Ÿ‹
07:42 Summary ๐Ÿ—’

Make sure you've subscribed to our podcast, don't hesitate to share this episode with others and tell us what you think about the content we deliver.

View Details

In the third episode, Artur, Marek and Grzegorz share their approach towards refactoring of code.

  • How to be well prepared?
  • What to focus on?
  • What to avoid while performing refactoring?

Answers to these and other questions can be found inside.

Make sure you subscribe to the show in your podcasting app! You can also drop us a review :)

View Details

In the first episode of our SNIPPETS series, which we deliver to you with a promise of all episodes being not longer than 10 minutes, Marek talks about migrating the code to TypeScript, the ways to do that right and safe, but also explaining why it is a business decision, not only a technical one.

In this episode you will hear about:
๐ŸŽผ 00:00 Intro and series introduction
๐Ÿ‘‰ 00:30 TypeScript was not great at the beginning
๐Ÿ‘‰ 01:27 Personal disclaimer about Marek and TypeScript
๐Ÿ‘‰ 02:00 TypeScript and business :moneybag:
๐Ÿ‘‰ 02:30 How to justify the cost of the migration?
๐Ÿ‘‰ 03:03 Why itโ€™s worth to await a promise? ๐Ÿ”
๐Ÿ‘‰ 04:30 What are the not obvious benefits of having types in your code?
๐Ÿ‘‰ 05:35 How did the AirBnb benefit from implementing TypeScript in their organisation? ๐Ÿ›
๐Ÿ‘‰ 05:57 Big picture tips and tricks on coding part of this process ๐Ÿ’ป
๐Ÿ‘‰ 08:12 Sad information about TS and quality of the code ๐Ÿ˜ญ
๐Ÿ‘‰ 08:29 Outro ๐Ÿ‘‹

How do you find the SNIPPETS series? We would like to hear your feedback!
Tell us what you think, so that we can prepare more interesting content for you to enjoy.
Hear you next time!

Links mentioned in the episode:
https://twitter.com/remohjansen/status/1093815648566894594
https://marekurbanowicz.medium.com/migrating-large-codebase-to-typescript-do-it-right-from-the-beginning-7109a80b2a3d

Visit us on:
- Facebook: https://www.facebook.com/ArtistryOfCode
- Twitter: https://twitter.com/ArtistryOfCode

typescript #javascript #nodejs #SoftwareDevelopment #SoftwareEngineering #programming #software

View Details

In episode #002 weโ€™ve brought up the topic that some love, others hate, but all of us need to take care of eventually. Errors, defects, mistakes, bugs... Itโ€™s all about them, or rather how to get rid of them and make it stay this way.

In this episode you will hear about:

๐Ÿ‘‰ 00:00 Intro ๐ŸŽผ
๐Ÿ‘‰ 00:30 How grateful we are for your feedback and attention ๐Ÿค—๐Ÿฅฐ
๐Ÿ‘‰ 01:20 What makes Artur excited about his new job? ๐Ÿฅš
๐Ÿ‘‰ 04:35 How effectively Marek is performing full text search? ๐Ÿ•ต๏ธโ€โ™‚๏ธ
๐Ÿ‘‰ 06:50 News from Grzegorz and comments on a recent disaster in OpenSource ๐Ÿง
๐Ÿ‘‰ 10:56 Whatโ€™s a bug anyway? ๐Ÿ›
๐Ÿ‘‰ 12:35 Where do bugs come from? ๐Ÿ—‘๐Ÿ•ณ
๐Ÿ‘‰ 22:35 What does it mean to fix the bug? ๐Ÿ‘จโ€๐Ÿ”ง
๐Ÿ‘‰ 34:08 If fixing bugs can be fun? ๐Ÿฅณ
๐Ÿ‘‰ 36:13 How to get the most out of the buggy situation? ๐Ÿ˜Ž
๐Ÿ‘‰ 40:04 What to do and what to avoid to keep their number under control? ๐Ÿ‘ฎโ€โ™€๏ธ
๐Ÿ‘‰ 49:19 How precious is your feedback? ๐Ÿ’ฐ

We would like to hear your feedback! Tell us what you think, so that we can prepare more interesting content for you to enjoy. Hear you next time!

Links mentioned in the episode:

  • https://oss.redis.com/redisearch/
  • https://snyk.io/blog/open-source-npm-packages-colors-faker/

Visit us on:

  • Facebook: https://www.facebook.com/ArtistryOfCode
  • Twitter: https://twitter.com/ArtistryOfCode

bugs #bug #debugging #qos #QualityOfSoftware #SoftwareDevelopment #SoftwareEngineering #programming #software #defects #opportunities

View Details

Who we are, what we do, where we are from.

In the first episode: Artur, Marek and Grzegorz talk about:

  • measuring the value of software delivery,
  • "managing the time" or rather, "managing ourselves in time",
  • handling our egos at work,
  • introducing "Programmers Workout" to the weekly plan.

We would like to hear your feedback! Tell us what you think, so that we can prepare more interesting content for you to enjoy. Hear you next time!

Visit us on:
- Facebook: https://www.facebook.com/ArtistryOfCode
- Twitter: https://twitter.com/ArtistryOfCode

NewYearResolutions #future #development #SofwareDevelopment #SoftwareEngineering