Reflections and Goal Setting as a Software Engineer
Published: 2023-12-31 02:05:49

As software engineers, we're often busy year-round developing new features, fixing production bugs, learning new tech stacks, interacting with different teams, and many more. As a result, we tend to feel tired towards the end of the year. We would use our holiday breaks and vacation leaves to shut off completely, spending time with family and friends, traveling to new places, and doing hobbies like gaming, reading, and whatever makes us feel good.

Unwinding during our break is completely normal, and is even needed to recharge for the next year. But the break also allows us to take a pause, reflecting on what happened in the past months. Then it gives us the time and space to plan and set big goals, making sure we have something meaningful to work towards and not just run endlessly in the hamster wheel of software engineering.

In this article, I'll guide you on your journey towards reflecting on past experiences, along with planning for the future with big, ambitious goals. 

## Reflecting on what happened this year

> “We do not learn from experience...we learn from reflecting on experience.” ― John Dewey

Often, we let the year pass by without really taking a pause. After a tiring year, we just want to binge our favorite shows, play our favorite video games, and so on.

By reflecting on our past experiences, we can appreciate our achievements, while also remembering the lessons brought by failures and mistakes.

This holiday break provides an opportunity to do exactly this, reflecting on what happened this year.

### A framework for reflecting

For your reflections, I suggest starting simple, especially if you haven't done this before.

Allot a few minutes of your time to answer these questions:

1. What have I done this year?
2. What have I learned this year?

For question one, think of **all the things you've done, no matter how small**. Then remember what you felt after finishing the things you've done. 

By remembering all the good that you've done, you appreciate yourself more. **You did a good job this year!**

Once you've listed all the things you've done and experienced, it's time for question two. 

From those experiences, what are the **lessons or improvements** that you can make? 

Think about what you could've done better or wish you'd done if you were able to do those things again.

Take your time in answering these two questions.

### My reflections

To give you a reference that might spark ideas of your own, here are my reflections.

During 2023, I've managed to achieve the following:

- Written **12 articles** (including this one).
- Contributed to **two open-source projects**.
- Met up with **two professionals** (a representative at AWS and a founder) over coffee.
- Experienced being at an **early-stage startup**.
- Watched 13 startups (including ours) pitch live at a **startup incubator's demo day**.
- Finished the **AWS Startups Build Accelerator** program.
- Passed the **AWS Certified Cloud Practitioner** exam.
- Learned **Svelte and SvelteKit** by going through the interactive tutorials.

Then here's what I learned from these experiences:
- Writing is not just about writing itself, but all the pre-writing that comes with it. (I'm practicing [Mise en Place Writing](https://www.swyx.io/writing-mise-en-place).)
- You can contribute to open-source projects, even if it's just [one line of code](https://dev.to/kshyun28/how-i-contributed-one-line-of-code-to-ethereum-3poh).
- I should prepare more when meeting up with professionals to lessen the awkward moments.
- If I can buy something instead of building it, then I should buy it. (Using existing solutions for your app's login and authentication.)
- When learning new technologies, make it a habit to take notes as you learn. (Writing helps you learn faster, while also having valuable notes that you can share with others.)

## Planning for the new year

> “You do not rise to the level of your goals. You fall to the level of your systems.” - James Clear, Atomic Habits

### A framework for planning and setting goals

For 2024, I've adapted Sahil Bloom's [annual planning template](https://www.sahilbloom.com/annual-planning), which I recommend checking out for yourself.

For setting your goals, there are two main categories, namely **professional** and **personal**. We'll be focusing on setting your professional goals, but the framework is also applicable to personal goals.

There are three steps in setting your professional goals:

1. Choose **1-3 big goals**, they should be [SMART](https://en.wikipedia.org/wiki/SMART_criteria) (specific, measurable, attainable, relevant, time-bound).
2. Set up **1-3 checkpoint goals** for each **big goal** you have.
3. Plan **2-3 daily actions** that will give you progress towards your **big goals**.

The idea here is that you choose your **big, ambitious goals** that feel impossible to achieve. Then work backwards from your big goals.

After choosing your **big goals**, it's time to set **checkpoint goals** for each of your big goals. These checkpoint goals are meant to be shorter-term goals, making your big goals easier to work towards. 

For example, I'd like to **read 12 software engineering books** for next year. In order to achieve this goal, I'll set up **2-3 checkpoint goals**. So by April 1, I should have already read **three books**, then by July 1, **six books**, and by October 1, **nine books**. 

Checkpoint goals help keep track of your progress, making sure you don't stray away from your big goals.

Lastly, the most important part of this framework is having **daily actions and systems** that will slowly get you towards your big goals.

To continue with the example, if I want to **read three books every three months**, I'd have to start with my reading habits. I'll start by **reading for 30 minutes daily**. 

This is not a strict rule, and some days I'd find myself feeling lazy. On those days, I'd try to read one page at most. 

The important thing is to do your daily habits, even if you don't feel like doing it. Remember, **anything above zero compounds!**

### My goals

To give you an example, here's one of my big goals for 2024:

#### Big goal
- Continue writing **at least 1 article per week**.

#### Checkpoint goals
- Written **at least 13 articles** by April 1.
- Written **at least 26 articles** by July 1.
- Written **at least 39 articles** by October 1.

#### Daily systems
- Write around 1000 words per day.
- Take notes when learning new stuff.
- Capture notes when consuming articles.
- Document experiences when trying out new stuff.

## Conclusion

To recap, we've walked through the process of reflecting on your past experiences and achievements, along with what you've learned from them. We also covered frameworks for setting your big, ambitious goals, and how to make sure that you're making daily progress towards them.

I hope this inspires you to take a pause and go on your journey of reflection and planning.

Thank you for reading and if you have any questions or feedback, I'd love to hear from you. Feel free to comment or connect with me [here](https://linktr.ee/kshyun28).