New Horizons Program - Cultivating Self-Development Within Our Teal Team

New Horizons Program - Cultivating Self-Development Within Our Teal Team

Wojciech Marusarz - March 21, 2022

Self-development is key to success in any field. It allows us to grow as individuals and become better professionals. That’s why at nexocode, we offer the New Horizons Program - a 24-day a year program that gives our employees the opportunity to cultivate self-development within themselves. This program is designed to help participants learn new skills, expand their knowledge, develop projects and participate in various workshops. It is essential for cultivating self-awareness and self-improvement within our team. We believe that space for self-development at work is vital for individual growth, and we are committed to helping our team members reach their full potential!

But before we dive into the details of the New Horizons Program, let’s figure out why self-development is crucial for employees as well as employers.

The Importance of Self-Development in the Workplace

The need for self-development in the workplace is nothing new. Numerous studies have shown that self-development can lead to several positive outcomes, such as increased job satisfaction, creativity, and productivity. In fact, self-development is so important that it has even been linked to lower rates of work burnout.

How to Create Space for Personal Development at Work?

There are many ways to create space for self-development at work. One way is to provide opportunities for employees to learn new skills and knowledge. This can be done through training programs, workshops, or e-learning courses. Some companies offer free access to pages with online classes, access to professional libraries, or budgets dedicated to personal development. Another way to create space for self-development is to encourage employees to take on new challenges and responsibilities. This could involve giving them assignments that stretch their abilities or leading projects. Finally, personal development can also be encouraged by simply creating an environment that values personal growth and development. This might include offering coaching and mentorship programs or giving employees the time and resources they need to pursue their goals.

Whatever approach you take, it’s essential that you make self-development a priority in your workplace. By doing so, you’ll not only help your employees reach their full potential, but you’ll also create a more positive and productive work environment for everyone.

Fueling Creativity and How to Deal With Developer Burnout

Burnout is a common problem among software engineers, and self-development can be one way to help address this issue. When we take the time to focus on our growth and development, it allows us to reflect on our strengths and weaknesses and find ways to improve ourselves professionally.

Software engineers are particularly prone to work burnout for several reasons. First, the job can be stressful and fast-paced. This can take a toll on our mental and physical health. Second, we are often expected to work on the same project for months or even years. This can lead to feelings of isolation and disconnection from our work. After a while, not every coding task on the to-do list is something new or creative but somewhat repetitive in nature, which causes feelings of frustration, fatigue, and boredom. Third, we may not have a lot of opportunities for personal and professional development at work. This can cause us to feel stagnant in our career growth. And when these negative emotions start to accumulate, it can be tough for software engineers to maintain their productivity and motivation, taking a significant toll on our personal lives. This is also the point when some of us start looking for a new job as the sole opportunity to improve our situation.

Self-development and setting professional goals allow us to take a step back from our work and reflect on our own goals and values. It helps us find purpose in our work and connect with why we do what we do. This is why, along with providing a sustainable development pace and calm and supportive team environment, it is crucial for software engineers to have space for personal development at work.

New Horizons Program - Our Way to Secure Time for Personal Growth and Explorations

At nexocode, we believe that self-awareness is key to preventing burnout. We know that if our team members are aware of their own needs and motivations, they will be better equipped to manage their work responsibilities healthily.

At first, like many other IT companies, we offered our employees opportunities to join conferences, workshops, or access to online courses. After a while, though, we noticed that many do not use this kind of offer as it is not actionable. We saw that ad hoc and passive participation is not challenging enough and does not create space to utilize knowledge gained. So, as a teal organization, we decided to take a different approach and created the New Horizons program.

The New Horizons program is designed to give our team members the time, space, and resources they need to explore their interests, set professional goals, and grow as individuals by setting challenging projects. The program is open to all team members. It offers a variety of opportunities with the main focus on developing bigger projects and creating a safe, playground-like environment to test new skills, tools, processes, and learn.

The New Horizons Program is essential for self-development and can help software engineers and all other employees at nexocode avoid work burnout. Through this program, we can learn new skills, expand our knowledge, pursue coding projects and participate in various workshops - all while working full time! We believe that this program is crucial for the individual growth of our team members and the success of our company. This program is essential for helping software engineers avoid burnout and cultivate self-awareness and self-improvement attitudes.

New Horizons Rules

When creating the program, we first created a set of ground rules that we felt were essential for the success of the personal development plan.

  1. An opt-in option for all employees - I’m writing this blog post from the software engineering perspective, but New Horizons is available for all employees at nexocode - you can work as a UX designer, product manager, or be responsible for sales and marketing activities. All these positions can significantly benefit from personal development. We want our team members to choose and feel that they are in control of their development path.
  2. Create a personal development plan - Think about what you want to achieve and discuss it with the team to create a program that is achievable and challenging at the same time. Find partners and project allies - either somebody to work with or a peer to mentor and challenge your efforts with a different perspective. Personal growth is all about a positive attitude, so keep it positive.
  3. Set time and block your calendar - personal development should not be an ad hoc activity. Dedicate selected days to your personal development activities and mark them in our New Horizons Google Calendar for everybody to see. Let your team know that this is the time when you will not be available for other tasks, and respect this time for what it is - valuable time spent on developing yourself!
  4. Demo what you achieved and share with others - A crucial part of personal development is sharing your findings with others and getting feedback. This will help you validate your efforts and ensure that you are on the right track with their constructive criticism. It will also help fellow employees learn from your efforts and get inspired.

The New Horizons Program is open to all employees at nexocode. However, it should be noted that personal development takes time and effort. That is why we decided to create two separate learning paths or program variants one might follow, depending on challenge complexity and self-development needs.

We named them Opportunity and Perseverance, just like rovers from NASA missions to Mars, because they both embody challenges and the path of going beyond the known limits, which are essential values for the program.

Opportunity Variant

Opportunity - professional development in the workplace

The first path is called “Opportunity” and is focused on the tutorial approach. It is designed for employees that want to gain new knowledge or practice a new skill in their chosen field by participating in workshops, conferences, or going through the available materials, documentation, online courses to deepen their knowledge on the given subject and reach new career goals.

You have 3 days per quarter to use with the Opportunity learning path. It allows you to learn about smaller matters: a new library, a new framework, a better understanding of the tools used.

On the New Horizons slack channel, we describe what we want to do, add events in the New Horizons Google Calendar, and approach our project.

Demo the outcomes of your project by creating a blog post, presentation, or a short tech talk to share with fellow employees.

Perseverance Variant

Perseverance - professional growth at nexocode

The “Perseverance” variant is designed for employees that want to take on a bigger challenge and work on a long-term practical project with measurable outcomes. This learning path is designed for those who want to put their knowledge into practice by working on a project internally to test new ideas.

It is designed for individuals that want to set and achieve professional goals by working on self-contained projects with measurable outcomes. This might be developing a new project or application, creating open-source tools or integrations, or anything else that would be beneficial for you and the wider company goals. We want to concentrate on the practical part of developing projects that are in line with the development path of our organization. For example, the subjects to cover for software engineers include (among many) exploring projects with a focus on Data-Intensive Applications ( Hadoop, Spark, Kafka), Azure Cloud, GCP, Data Science, and Machine Learning.

You have 24 days per year to use within the Perseverance path. Make sure to use it wisely by planning ahead and getting the most out of it! We create a short meeting with the team to discuss our idea - does it make sense? Maybe someone has an idea for a better, more helpful project. Since we’re going to spend more time on it, it’s better to close all the gaps at the planning stage. You can do the project independently or as part of a team. Whichever path you take, you’ll always get the support of your peers.

Also, failing with a project or getting opposite results than the goals set at the beginning is just as worthy, but it should be seen as an opportunity to learn and reflect.

We encourage our team members to share their findings and results either with co-workers or the tech community through open-sourcing their projects, preparing presentations, or tech talks so we can all learn from each other’s efforts.

Both variants have their advantages, so it is vital to choose the one that best suits your needs. There is no wrong choice, as long as you actively work on personal development.

Both paths offer a variety of opportunities and many benefits. Still, the main difference is that Perseverance focuses on developing more significant projects and creating a safe playground-like environment to build confidence, test, and learn new things. In contrast, Opportunity emphasizes self-paced learning with an opt-in/out structure.

What We Already Achieved - Exemplary Projects From Our Engineering Team

Software engineers at nexocode are constantly self-developing to keep up with the rapidly changing trends in technology. Here are some exemplary projects from our team that showcase this dedication:

Creating TypeScript Dictionaries for Angular Projects

Michał Wójcik, our Frontend Software Engineer, created code that enables superfast key-value dictionary creation for coordinating frontend and backend communication for dictionary fields. We use it daily in our projects, which saves a lot of time for dev teams.

Cypress vs. Protractor - a Comprehensive Comparison

Wojciech Parys, our Frontend Software Engineer, tested and documented a comprehensive guide on the differences between two of the most popular front-end testing frameworks - Cypress and Protractor. If you plan to implement end-to-end tests in your Angular project, make sure to reach out to Wojtek.

Angular Schematics

In this project, Wojciech managed to develop something that brings significant benefits to one of our key business projects. Generating code using schematics in Angular that supports complex logic is a powerful option and a huge time saver. This project is an excellent example of how personal development goals can be in line with business growth and goals

Aggregation Pipelines in MongoDB

Łukasz Kucik, Software Engineer at nexocode, decided to dig deeper into specific use cases while working in MongoDB. In his exploratory work, he covers aggregation pipelines - a framework for data transformation used in many projects.

Reactive Programming

Piotr Kubowicz, who works at nexocode as a Software Engineer, decided to dig deeper into reactive programming with Reactor used in Kotlin projects. He chose to focus on more complex issues like performance traps, testing, and error handling.

Testcontainers

Piotr also explored and prepared a tutorial for others on Testcontainers, a Java library that supports JUnit tests, providing lightweight, throwaway instances of common services like databases that can be run in a dockerized environment.

ArchUnit

Exploring ArchUnit library helped Piotr (and ultimately our whole team) uncover unknown benefits of this library as something much more than a tool to check your system’s architecture. You can read more on Piotr’s findings on the use of ArchUnit in his recent article.

Thymeleaf vs. kotlinx.html

For some time for generating HTML templates, we relied on the Thymeleaf library. Maciej Cebula, our software engineer, decided to explore an alternative in the form of kotlinx.html which is a Kotlin DSL for building HTML.

Gitlab Pipelines

I myself also managed to use the New Horizons program for my personal development and skills building. I took on the challenge of improving our teams’ development processes by implementing Gitlab Pipelines for one of the projects I work on and for all the new projects we set up at nexocode.

I’m happy to say that after my explorations, we have a CI/CD pipeline set up that runs automatically on every code push and detects errors early on. Despite the role, every team member now has a clear and practical understanding of our CI/CD pipelines. You can get more for yourself on the subject from my tutorials: Understanding Gitlab Pipelines - Creating CI/CD Flow and Gitlab Pipelines to Kickstart Your Web Application.

Kafka and Avro

Kafka is a solution I am personally very interested in (you can sometimes see me at conferences and meetups talking about it). I also took on the challenge of learning and understanding Avro - a data serialization format often used with Kafka. I created a presentation explaining how you can use the Avro serialization system in your Kafka-based projects.

New Horizons Program is not only about success stories. We did some projects that one might even consider as fail stories. And that is perfectly fine. The program allows us to experiment with new technologies, ideas, and projects without the burden of possible failure.

An example of a fail story would include:

Arrow and Kotlin

Piotr evaluated the Arrow library’s use for typed functional programming in Kotlin. He created a small project to see if it is possible to use Arrow in production. Unfortunately, the library was not providing the benefits we hoped for and in our case, it caused more problems than it solved. After this thorough investigation, Piotr decided to abandon the project. Imagine not having this exploration space and being forced to implement a tech solution in a production environment just for the sake of it.

As you can see, self-development at nexocode takes many different forms, and there is something for everyone. We encourage our team members to explore new technologies and share their findings with others (also check our Zero Legacy article series to see what our engineers currently develop). This helps us all learn and grow together.

Personal development is a process that never really ends. As our team members showcase, there is always something new to learn and explore - whether it is a new technology, tool, or framework. The self-development space that New Horizons Program offers is crucial for any software engineer that wants to stay relevant in their field and avoid work burnout. With so many new technologies and frameworks being released daily, it is impossible to keep up with everything without a dedicated space and time for personal development. I’m happy that our team has this program in place, and I can’t wait to see what everyone comes up with next.

It’s Not Only About Your Personal and Professional Growth - With New Horizons We All Grow Together

A team of self-aware, fulfilled, and happy employees is a productive team. We want our team members to feel supported in their self-development journey and work-life balance. We believe that by investing in their growth and well-being, we are not only helping them reach their potential but also benefiting the whole teal company.

If you are a software engineer and are interested in personal development, we encourage you to join the nexocode team and make use of the New Horizons Program! We are confident that you will find working with our teal team to be an invaluable experience. Visit our careers page for open positions and more information.

About the author

Wojciech Marusarz

Wojciech Marusarz

Software Engineer

Linkedin profile Twitter Github profile

Wojciech enjoys working with small teams where the quality of the code and the project's direction are essential. In the long run, this allows him to have a broad understanding of the subject, develop personally and look for challenges. He deals with programming in Java and Kotlin. Additionally, Wojciech is interested in Big Data tools, making him a perfect candidate for various Data-Intensive Application implementations.

Have some questions?

We’re happy to answer! You can directly contact Maria, who’s got all the info you may need.

Maria Kaźmierczyk
Maria Kaźmierczyk

maria.kazmierczyk@nexocode.com

Reach out on LinkedIn

This article is a part of

Running Teal
10 articles

Running Teal

Take an insider's look into nexocode organization culture and our path towards the teal structure. We're committed to fostering growth and open communication with all employees so that everyone feels like they belong and can thrive in their work environment.

Follow our article series to discover how our teal company operates within a flat structure based on peer relationships, transparency, ownership, and trust.

check it out

Running Teal

Insights from nexocode team just one click away

Sign up for our newsletter and don't miss out on the updates from our team on engineering and teal culture.

Done!

Thanks for joining the newsletter

Check your inbox for the confirmation email & enjoy the read!

This site uses cookies for analytical purposes.

Accept Privacy Policy

In the interests of your safety and to implement the principle of lawful, reliable and transparent processing of your personal data when using our services, we developed this document called the Privacy Policy. This document regulates the processing and protection of Users’ personal data in connection with their use of the Website and has been prepared by Nexocode.

To ensure the protection of Users' personal data, Nexocode applies appropriate organizational and technical solutions to prevent privacy breaches. Nexocode implements measures to ensure security at the level which ensures compliance with applicable Polish and European laws such as:

  1. Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation) (published in the Official Journal of the European Union L 119, p 1); Act of 10 May 2018 on personal data protection (published in the Journal of Laws of 2018, item 1000);
  2. Act of 18 July 2002 on providing services by electronic means;
  3. Telecommunications Law of 16 July 2004.

The Website is secured by the SSL protocol, which provides secure data transmission on the Internet.

1. Definitions

  1. User – a person that uses the Website, i.e. a natural person with full legal capacity, a legal person, or an organizational unit which is not a legal person to which specific provisions grant legal capacity.
  2. Nexocode – NEXOCODE sp. z o.o. with its registered office in Kraków, ul. Wadowicka 7, 30-347 Kraków, entered into the Register of Entrepreneurs of the National Court Register kept by the District Court for Kraków-Śródmieście in Kraków, 11th Commercial Department of the National Court Register, under the KRS number: 0000686992, NIP: 6762533324.
  3. Website – website run by Nexocode, at the URL: nexocode.com whose content is available to authorized persons.
  4. Cookies – small files saved by the server on the User's computer, which the server can read when when the website is accessed from the computer.
  5. SSL protocol – a special standard for transmitting data on the Internet which unlike ordinary methods of data transmission encrypts data transmission.
  6. System log – the information that the User's computer transmits to the server which may contain various data (e.g. the user’s IP number), allowing to determine the approximate location where the connection came from.
  7. IP address – individual number which is usually assigned to every computer connected to the Internet. The IP number can be permanently associated with the computer (static) or assigned to a given connection (dynamic).
  8. GDPR – Regulation 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of individuals regarding the processing of personal data and onthe free transmission of such data, repealing Directive 95/46 / EC (General Data Protection Regulation).
  9. Personal data – information about an identified or identifiable natural person ("data subject"). An identifiable natural person is a person who can be directly or indirectly identified, in particular on the basis of identifiers such as name, identification number, location data, online identifiers or one or more specific factors determining the physical, physiological, genetic, mental, economic, cultural or social identity of a natural person.
  10. Processing – any operations performed on personal data, such as collecting, recording, storing, developing, modifying, sharing, and deleting, especially when performed in IT systems.

2. Cookies

The Website is secured by the SSL protocol, which provides secure data transmission on the Internet. The Website, in accordance with art. 173 of the Telecommunications Act of 16 July 2004 of the Republic of Poland, uses Cookies, i.e. data, in particular text files, stored on the User's end device.
Cookies are used to:

  1. improve user experience and facilitate navigation on the site;
  2. help to identify returning Users who access the website using the device on which Cookies were saved;
  3. creating statistics which help to understand how the Users use websites, which allows to improve their structure and content;
  4. adjusting the content of the Website pages to specific User’s preferences and optimizing the websites website experience to the each User's individual needs.

Cookies usually contain the name of the website from which they originate, their storage time on the end device and a unique number. On our Website, we use the following types of Cookies:

  • "Session" – cookie files stored on the User's end device until the Uses logs out, leaves the website or turns off the web browser;
  • "Persistent" – cookie files stored on the User's end device for the time specified in the Cookie file parameters or until they are deleted by the User;
  • "Performance" – cookies used specifically for gathering data on how visitors use a website to measure the performance of a website;
  • "Strictly necessary" – essential for browsing the website and using its features, such as accessing secure areas of the site;
  • "Functional" – cookies enabling remembering the settings selected by the User and personalizing the User interface;
  • "First-party" – cookies stored by the Website;
  • "Third-party" – cookies derived from a website other than the Website;
  • "Facebook cookies" – You should read Facebook cookies policy: www.facebook.com
  • "Other Google cookies" – Refer to Google cookie policy: google.com

3. How System Logs work on the Website

User's activity on the Website, including the User’s Personal Data, is recorded in System Logs. The information collected in the Logs is processed primarily for purposes related to the provision of services, i.e. for the purposes of:

  • analytics – to improve the quality of services provided by us as part of the Website and adapt its functionalities to the needs of the Users. The legal basis for processing in this case is the legitimate interest of Nexocode consisting in analyzing Users' activities and their preferences;
  • fraud detection, identification and countering threats to stability and correct operation of the Website.

4. Cookie mechanism on the Website

Our site uses basic cookies that facilitate the use of its resources. Cookies contain useful information and are stored on the User's computer – our server can read them when connecting to this computer again. Most web browsers allow cookies to be stored on the User's end device by default. Each User can change their Cookie settings in the web browser settings menu: Google ChromeOpen the menu (click the three-dot icon in the upper right corner), Settings > Advanced. In the "Privacy and security" section, click the Content Settings button. In the "Cookies and site date" section you can change the following Cookie settings:

  • Deleting cookies,
  • Blocking cookies by default,
  • Default permission for cookies,
  • Saving Cookies and website data by default and clearing them when the browser is closed,
  • Specifying exceptions for Cookies for specific websites or domains

Internet Explorer 6.0 and 7.0
From the browser menu (upper right corner): Tools > Internet Options > Privacy, click the Sites button. Use the slider to set the desired level, confirm the change with the OK button.

Mozilla Firefox
browser menu: Tools > Options > Privacy and security. Activate the “Custom” field. From there, you can check a relevant field to decide whether or not to accept cookies.

Opera
Open the browser’s settings menu: Go to the Advanced section > Site Settings > Cookies and site data. From there, adjust the setting: Allow sites to save and read cookie data

Safari
In the Safari drop-down menu, select Preferences and click the Security icon.From there, select the desired security level in the "Accept cookies" area.

Disabling Cookies in your browser does not deprive you of access to the resources of the Website. Web browsers, by default, allow storing Cookies on the User's end device. Website Users can freely adjust cookie settings. The web browser allows you to delete cookies. It is also possible to automatically block cookies. Detailed information on this subject is provided in the help or documentation of the specific web browser used by the User. The User can decide not to receive Cookies by changing browser settings. However, disabling Cookies necessary for authentication, security or remembering User preferences may impact user experience, or even make the Website unusable.

5. Additional information

External links may be placed on the Website enabling Users to directly reach other website. Also, while using the Website, cookies may also be placed on the User’s device from other entities, in particular from third parties such as Google, in order to enable the use the functionalities of the Website integrated with these third parties. Each of such providers sets out the rules for the use of cookies in their privacy policy, so for security reasons we recommend that you read the privacy policy document before using these pages. We reserve the right to change this privacy policy at any time by publishing an updated version on our Website. After making the change, the privacy policy will be published on the page with a new date. For more information on the conditions of providing services, in particular the rules of using the Website, contracting, as well as the conditions of accessing content and using the Website, please refer to the the Website’s Terms and Conditions.

Nexocode Team

Close

Want to be a part of our engineering team?

Join our teal organization and work on challenging projects.

CHECK OPEN POSITIONS