Growing your skills

An illustration of a person holding a notebook and pen, surrounded by gears, a trophy, a calendar with a check mark, and a clock, symbolizing organization, learning, and achievement.

I have been thinking a lot about Personal Development Plans (mine included of course), and how these relate with setting and achieving goals. 

So far, I have been using 2 main approaches to creating and setting goals: the SMART goals and the OKR framework. 

If you haven’t come across either of those here is a short summary. 

SMART goals

(Specific, Measurable, Achievable, Relevant and Time bound)

The idea behind this framework is that goals need to be something that you can relate to and want to achieve. It tries to answer questions like is the goal something that you can achieve within a realistic time window and how will you know you have actually accomplished it ?

OKRs 

(Objectives and Key Results)

This framework can be used for company, team or personal objectives. Similar to the SMART framework it defines not only the goal (objectives) but also the key results that will tell you if you have been successful or not.

What I have realised though is that neither framework can help you answer the question why these goals and why now?

Also, I know quite a few people struggle when starting from a blank paper when it’s time to set their goals for the first time. As a manager I  want to be able to help if that is the case. 

So, here is my latest how-to in this space. Ask yourself or the person you are managing: 

What is the one skill you are developing at the moment?

I have found this question works really well to help frame the conversation:

  • it shifts the focus from doing things to developing skills
  • it brings the person to the forefront as the main actor, moving away from projects and deliverables
  • it brings focus and clarity as it anchors the subsequent goals to a specific skill to be learned or improved 
  • projects, goals and results become a means to an end not the end itself 

The thing I like the most about this question though is the intentionality it injects in the conversation. 

It makes you think about your current skills and the skills you would like to have. It also helps you evaluate how well you are doing and where you would really like to improve. 

Being able to take a pause and think about your skills and what you would like to do next is a very important step. You can’t develop skills by accident (well some you might but there is a limit) so being clear on the what and why can really help.

So what is the one skill you are developing at the moment?

Be your own Mocking jay

I will use the Hunger Games novels / movies as reference to begin a post that is very dear to my heart on this very special day that is meant to celebrate women and their contributions achievements. Mind you I am going to use a scene from the movie that lasts all but a few minutes in the 9+ hours of films so I am, you may rightfully say, taking things a bit out of porpotion perhaps but bear with me as I am trying to make a point here 🙂.

Continue reading “Be your own Mocking jay”

The good and the bad of job hunting via recruitment agencies

This is a post I’ve had in my mind for some time now and it’s based on my personal experience job hunting in the UK … 📖

And so it begins …

Our story begins several years ago when I first moved to the UK and put my CV online on some job board websites. What I hadn’t realised at the time was that the sites would distribute the CV to a number of recruitment agencies which was both great and a bit scary 😅

Continue reading “The good and the bad of job hunting via recruitment agencies”

Deep diving in the Go coverage profile

If this is the first time you come across the Go coverage profile then do read my last post: Test coverage in Go, working with packages and sub-packages. It is an introduction to Go’s cover tool, how to generate the coverage profile and how to use it to aggregate the coverage from the sub-packages to the root package.

If you are already familiar with the cover tool and the coverage profile then let’s dive in and see a few cases that you need to be aware of if you are trying to aggregate the coverage from the sub-packages all the way to the root of your package.

Continue reading “Deep diving in the Go coverage profile”

Test coverage in Go, working with packages and sub-packages

A test suite for any package is explicitly testing different code paths and identifies how your code works using different inputs. But does it actually manage to cover all the code branches that exist in your code? How about all the different functions?

One way to answer these questions is to thoroughly look at all the tests written (by you and your colleagues) and understand if there are any gaps. The easiest way to do that though is to use a tool, and in the case of Go this tool is called cover.

There is an excellent blog post on the Go Blog, called “The cover story” that describes how Go uses the cover tool to generate reports that I definitely recommend reading. In this post we are going to analyze a few parts of how the cover tool works and also provide a way to use it for packages which include sub-packages.

Continue reading “Test coverage in Go, working with packages and sub-packages”

Learning more about R (a.k.a. Reproduction number) and COVID-19

R is a number used as a simplified indication of how quickly COVID-19 (or any other infectious disease) is spreading and how critical it is to take additional measures to control the spread of the disease.

R values per country as of the 17th of December 2020 (source: http://metrics.covid19-analysis.org/)

But what exactly does R represent, what are the values of R around the world and are there any resources we can use to see how it evolves over time? I am going to share what I learned but fair warning: I am not a doctor or an epidemiologist so please also do your own research using sources you trust.

Continue reading “Learning more about R (a.k.a. Reproduction number) and COVID-19”

Debugging in Go with Delve

There are different ways of debugging a Go program. You could use print statements to view the values stored in your variables during the execution or you could use a debugger. Some IDEs, like GoLand, offer this functionality by default but it is also interesting to see how to use the integrated solutions from the command line. Delve offers both command line clients and an API that can be used to integrate it to other tools (which is actually what GoLand uses under the hood).

Delve logo
Continue reading “Debugging in Go with Delve”

Abstract Syntax Trees (ASTs) in Go

An Abstract Syntax Tree (AST) is a tree representation of the structure of a piece of code used mainly in compilers. ASTs can also allow us to traverse existing code and use the information collected to auto-generate new code, which we are going to do in this post! The structor is a command line utility we are going to build that given a domain package with struct definitions it automatically generates getter and setter functions for the fields of the structs.

Basic Go AST structure of a single file
Basic Go AST structure of a single file
Continue reading “Abstract Syntax Trees (ASTs) in Go”