Dmytro Hrimov

Senior software engineer

How to: Copy data in Python

Learn the differences between shallow and deep copy in Python to efficiently manage data structures and avoid unintended side effects. Shallow copies create new objects with references to the original elements, while deep copies create fully independent copies. Explore various methods for creating both shallow and deep copies, including using the copy module, list slicing, and custom functions, to ensure your data is handled correctly for your specific needs.

Manage several Java versions on MacOS

Managing multiple Java versions on MacOS can be challenging, but with the right tools, it becomes effortless. This guide walks you through installing Homebrew, setting up several Java versions (8, 11, 17, 21), and configuring your shell for easy switching. By following these steps, you can seamlessly manage different Java versions for various projects, ensuring smooth development workflows. Happy coding!

Closures in JavaScript

Discover the power of closures in JavaScript! Learn how closures allow functions to access variables from an outer function even after it has finished executing. Understand their key characteristics, such as data privacy, preserving state, and lexical scoping. Explore practical uses, including callbacks, currying, memoization, and the module pattern. Mastering closures is essential for writing modular and maintainable JavaScript code.

Decorators in Python

Decorators in Python offer a flexible way to modify function or class behavior, enabling code extension without permanent changes. This blog post delves into first-class functions, simple and advanced decorators, and their usage with arguments and return values. Examples illustrate how decorators enhance code modularity and maintainability. Learn how to apply decorators to functions and classes effectively.

Mutable and Immutable types in Python

In this post, explore the crucial concepts of mutable and immutable types in Python. Understand how immutable types like strings and integers ensure data integrity by preventing changes once created, while mutable types like lists and dictionaries allow in-place modifications. Learn with practical examples and see why grasping these concepts is essential for writing robust and efficient Python code.

Python basic concepts

Discover the fundamentals of Python in this guide. Learn the difference between variables and objects, and understand their core characteristics: value, identity, and type. Understand how variables reference objects in memory and the role of Python's automatic garbage collection. Dive into examples that illustrate these concepts, setting a foundation for more advanced Python topics.

Set up a private PyPi repository

Learn how to set up a cost-effective private PyPi server using pypiserver, Docker, Terraform, and AWS EC2. This guide walks you through generating an SSH key, creating a security group, setting up an EBS volume, and launching an EC2 instance. It also covers Docker installation, creating a user for server protection, and configuring Poetry for package management. Ideal for those seeking a budget-friendly solution for private package management.

AWS Lambda: Concurrency

Learn about AWS Lambda concurrency types, including unreserved, reserved, and provisioned concurrency, and how they impact application performance. Understand SQS and Kinesis event handling for optimal scalability. Discover how to configure concurrency to avoid throttling and ensure smooth operations.