Generative AI
ChatGPT and Generative AI – why NOW is the time to understand them?
In modern workplaces, employees look for far more than just an earning opportunity when considering a job. They want to feel like they are much more than just a resource and a workforce. And a leader's attitude largely determines how employees perceive the environment in which they work. Investing in the development of people in a company influences its overall success.
People are the most valuable asset of any company. If they aren’t growing and improving, there is no organisational development. Therefore, companies' strategic goals and substantive plans should include a place for constant employee professional development.
Each new acquired skill, even minor, increases self-esteem. People then believe in their competencies and use them more willingly, take up challenges and share their experiences with others. Caring for employee development:
More information on how to care for the value of an employee in a company: How to keep a valuable employee in a company?
A way to plan employee professional development in a company can be to prepare an individual professional development plan. It is a process that should be carried out jointly by the employee and the leader and consists of 3 steps:
Having development plans for everyone in the team, it is worth looking over them in terms of the entire organisation's needs and seeing if employees share some any common areas
It doesn't matter how much money a company invests in development if the chosen form doesn’t fit its employees. This choice is a major decision, so it is worth consulting plans in this regard with employees themselves because they are beneficiaries of the development program. Such plans may include, for example:
To systematically care for the development of its employees, WEBSENSA has created the Knowledge and Development Laboratory. As part of it, our people established a series of meetings called eLWiRa (thus taking the character of a graceful female name).
Its aim is to allow for the exchange of knowledge and experience between employees. Particular meetings are usually lectures, but also practical laboratories. Currently, they are held remotely, but they increasingly involve more and more participants and show how the discussed issues look like in practice. All employees meet online for approximately two hours on Fridays. Then one of the employees presents a selected topic related to the scope of his work.
The better our people are at what they do on a daily basis, the better the entire organisation is
Although these meetings are generally one-sided speeches, they often turn into lively discussions that continue after the presentation. We are thrilled to notice our employees’ openness to acquire knowledge and new skills or share their experience.
Such meetings are integrating and allow for exciting discussions and contact with colleagues – in general, we have always tried to provide an opportunity to work on projects other than those for clients one day a week. Such internal initiatives give employees an opportunity to develop in the direction they choose, and not imposed by the needs of a project created for a client – says Julia Wasilewska, Marketing & Event Manager at WEBSENSA.
The initiative of such meetings came in September 2019 from Jan Twardowski - Software Architect in our company, with the support and approval of its CEO – Michał Paluśkiewicz.
Jan Twardowski explains the motives of his idea:
Initially, it was supposed to be a form of expanding knowledge within a small project team. However, the idea turned into something broader, company-wide. I came to the conclusion that there is no point in limiting it to a selected group of people since almost everyone in the company can benefit from it.
We started by building foundations, i.e. improving the essential skills we expect from the people we work with. Then there were more advanced topics related to specific specialisations, systems architecture, or just somehow related to our industry.
These meetings are aimed at raising competencies as well as building a culture of sharing knowledge. From the listener's point of view, it seems to be an attractive form of developing one's own knowledge and exploring new areas. It also brings a lot of benefits to the person who conducts the meeting.
Preparation of a lecture/laboratory requires in-depth cognisance of the topic and is often the best form of systematising knowledge on a given topic. And the regularity of such meetings creates a culture of continuous learning and sharing knowledge with others, which the creators of the idea care about very much.
Its animator, Jan Twardowski, adds: I notice the satisfaction of the people involved and their outrightness to learning new skills. I am also delighted with the involvement of many people in the preparation of meetings because it shows openness to sharing knowledge.
Below, we summed up dome of our lectures and workshops – from the newest to the oldest.
Kuba once again presented us with his flagship speech. He talked about how you can use your work environment quickly and efficiently, starting with the use of hotkeys, going through the selection of hardware and software, to efficient programming in Vim.
The essence of Szymon's presentation was to show the basic principles of web accessibility. The author explained to us how to present information and user interface elements in digital products to be perceived by people with various disabilities and understandable to them. Szymon touched on many aspects related to the subject of Web Content Accessibility in detail and drew attention to its growing importance.
This collective presentation raised the main issues related to our DCU (Deep Content Understanding) project. The team presented its architectural and machine learning elements. They described how the system we created helps, for example, in recognising faces or searching for similar images based on specific features.
Krzysiek introduced the 12 Agile Principles to us and described them against the background of other traditional and agile methods (Agile vs Waterfall, Scrum, Kanban, Scrumban). He compared their advantages and disadvantages and explained which types of projects would be best suited to each of them.
During the meeting, Rafał presented the queue design pattern and its typical applications in IT systems (e.g. event-driven programming, asynchronous communication between threads, batching). Then he gave the architecture of the RabbitMQ environment and the advantages and disadvantages of using queues in practice.
This collective presentation was intended to introduce the subject of artificial intelligence and machine learning. Our in-house data science team began by presenting the development of the field of artificial intelligence, moving to the areas of machine learning application up to the way neural networks work. It was a valuable introduction to the subject of machine learning for those of us who do not work in ML-based projects on a daily basis.
From the perspective of a graphic designer, Alicja raised the issue of the visual reception of digital products. She discussed the principles of the human brain and the sense of sight and then presented good practices for creating materials for visual communication in the digital world.
Bartek introduced us to the subject of Go Modules. He presented the methods of managing and distributing the source code in Go and the differences between packages, modules and repositories. He discussed the Go versions that support the use of modules and explained how to create and run a module in Go and how its structure should look like.
Damian revealed the new features of Vue 3 through comparison with Vue 2. Among the most important novelties, he mentioned: greater speed, size, reactivity, ease of development and friendliness to native platforms.
The author of the presentation described his writing code experience based on one year of experience working on one of our projects. He distinguished topics such as dependency injection + components, testing, monitoring, fallback, two deploys from one code, comparison with Python and code review.
Krzysiek included the theoretical part in the presentation, in which he initially explained the issue of asynchronicity and parallelism and introduced the concept of threads and processes in operating systems. Then he discussed GIL in Python, compared threading, multiprocessing, asyncio libraries; the last detail (Event Loop, async/await, Tasks/Futures/Couritines). The workshop part was about creating drum loops with asyncio.
This presentation mainly covered bugs and their types. Rafał mentioned typos, syntax errors (incompatibility with the grammar of the language), logical (incorrect implementation of the algorithm), functional (non-compliance with requirements), ”heisenbugs” (errors difficult to replicate, mainly in multithreaded processing); he also discussed defensive programming, the debugging process and available tools.
Bartek introduced us to the principles of operation of the ClickHouse database, showing how to use it effectively. He showed how to process information with the use of a multidimensional database and generate analytical reports in real-time and with the use of SQL queries. He also mentioned how to deal with erroneous data.
The presentation introduced the problem of algorithms and their use in programming. Marek approached the topic from the practical side and asked participants several algorithmic tasks available on the LeetCode platform (for learning and improving coding skills). The workshop gave us the opportunity to practice algorithmic problems and data structures.
The purpose of Janek's presentation was to explain what a frontend is, showing it as an area between the user and the backend. He listed the elements that make up the frontend (e.g. JQuery, HTML, CSS, UX, UI, Responsive WDA, MDV, HIG, PHP). He briefly discussed the construction of internet search engines and described the tools and ways to build your own functional application.
Rafał presented backend secrets in relation to web applications. He discussed the issues of typical components for a backend application (application, server, databases, queues, storage), communication options (CRUD, REST, synchronous and asynchronous) and the most common data interchange formats (HTTP, WSDL, gRPC).
Janek summed up the meetings so far from the beginning of the existence of eLWiRa. He mentioned the acquired knowledge in the fields of: efficient use of the system and command line, Git and Docker operation, or your own work environment. Then he proposed to make (mainly individually) mini-projects. They allowed the participants to check in practice whether the topics turned out to be clear and understandable for them.
The author of the presentation – Janek, argues that understanding the basics of Docker allows you to use ready-made images or create your own. As part of the workshop, he proposed three exercises with the use of Docker. They were: 1. Date display; 2. Serving files; 3.Using Registry.
The purpose of Janek's presentation was to show more practical aspects of using Docker. He emphasised that knowledge of Docker is essential in our daily work. He covered things like setting up a database, creating an application in django and connecting to a new database. Finally, he encouraged the participants to explore the documentation on their own.
Several of our employees (Bartek Wiśniewski, Jan Siemiński, Marek Wawreniuk, Rafał Klusek, Jakub Szumski and Kateryna Rozanova) shared their experience related to the organisation of their own work environment and the tools they use to improve it. They spoke, among others, about which keyboard shortcuts they use, about tools useful in their work and how to organise windows or run code.
Janek's presentation explained how Git works and our approach to using it in projects. He discussed topics such as distributed version control system (DVCS), staging area, conscious committing, or elements that make up the appropriate workflow.
Janek's presentation introduced us to the issue of using the terminal. Janek distinguished the elements that make up the efficient navigation through it: browsing, files, symbols, systems, editors, SSH, environment variables. Then he discussed the path to its launch and gave a practical task to participants to check the acquired knowledge.
Project management methods in IT are divided into traditional (cascade) and modern (agile). Read about traditional methods such as Waterfall or PRINCE2.
What is Web Accesibility? What guidelines are included in WCAG? How can we make internet use easier for people with disabilities? Read in the article.