From 85771b1398a0916959fabbf06ffbd600ad23507e Mon Sep 17 00:00:00 2001 From: Enda Phelan Date: Wed, 15 Dec 2021 22:00:13 +0000 Subject: [PATCH 01/11] Add workflow to auto-deploy website --- .github/workflows/hugo.yml | 31 +++++++++++++++++++++++++++++++ CNAME => static/CNAME | 0 2 files changed, 31 insertions(+) create mode 100644 .github/workflows/hugo.yml rename CNAME => static/CNAME (100%) diff --git a/.github/workflows/hugo.yml b/.github/workflows/hugo.yml new file mode 100644 index 00000000..f8b35dbf --- /dev/null +++ b/.github/workflows/hugo.yml @@ -0,0 +1,31 @@ +name: github pages + +on: + push: + branches: + - master # Set a branch to deploy + +jobs: + deploy: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true # Fetch Hugo themes (true OR recursive) + fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod + + - name: Setup Hugo + uses: peaceiris/actions-hugo@v2 + with: + hugo-version: 'latest' + # extended: true + + - name: Build + run: hugo --minify + + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + if: github.ref == 'refs/heads/main' + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./public diff --git a/CNAME b/static/CNAME similarity index 100% rename from CNAME rename to static/CNAME From 7305eeabbec83ae3e175536cf848161d80776658 Mon Sep 17 00:00:00 2001 From: Enda Phelan Date: Wed, 15 Dec 2021 22:01:59 +0000 Subject: [PATCH 02/11] fix invalid ref --- .github/workflows/hugo.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/hugo.yml b/.github/workflows/hugo.yml index f8b35dbf..3f4af4a3 100644 --- a/.github/workflows/hugo.yml +++ b/.github/workflows/hugo.yml @@ -25,7 +25,7 @@ jobs: - name: Deploy uses: peaceiris/actions-gh-pages@v3 - if: github.ref == 'refs/heads/main' + if: github.ref == 'refs/heads/master' with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./public From 69e04d98fb9e95a95e2f7b5961279e40772582ad Mon Sep 17 00:00:00 2001 From: Enda Phelan Date: Wed, 15 Dec 2021 22:03:49 +0000 Subject: [PATCH 03/11] add missing 'or' --- config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.yml b/config.yml index 0d4146fb..2ae0d0de 100644 --- a/config.yml +++ b/config.yml @@ -69,7 +69,7 @@ params: Content: > Hi there. I'm Enda, a software engineer building open source projects with a particular focus on API design and developer experience. Every now and then I will post here about my experiences in this field. - I'm open to collaborating or chatting about anything, so if you want to you can reach me on [Polywork](https://www.polywork.com/endaphelan) [Twitter](https://twitter.com/PhelanEnda) ๐Ÿ˜ƒ. + I'm open to collaborating or chatting about anything, so if you want to you can reach me on [Polywork](https://www.polywork.com/endaphelan) or [Twitter](https://twitter.com/PhelanEnda) ๐Ÿ˜ƒ. socialIcons: - name: twitter From e63dfe70023839b0b02775ecd7000378a04b1cfb Mon Sep 17 00:00:00 2001 From: Enda Phelan Date: Wed, 15 Dec 2021 22:29:29 +0000 Subject: [PATCH 04/11] Add new blog post --- content/posts/post1.md | 0 .../posts/software-idioms-you-should-know.md | 53 +++++++++++++++++++ 2 files changed, 53 insertions(+) delete mode 100644 content/posts/post1.md create mode 100644 content/posts/software-idioms-you-should-know.md diff --git a/content/posts/post1.md b/content/posts/post1.md deleted file mode 100644 index e69de29b..00000000 diff --git a/content/posts/software-idioms-you-should-know.md b/content/posts/software-idioms-you-should-know.md new file mode 100644 index 00000000..982b7906 --- /dev/null +++ b/content/posts/software-idioms-you-should-know.md @@ -0,0 +1,53 @@ +--- +title: "Software Idioms You Should Know" +date: 2021-12-15T11:30:03+00:00 +weight: 1 +--- + +I have been working as a software engineer for just over five years. Every now and then I encounter an idiom during a meeting which I don't understand at all and it is not explained because it is assumed that everyone already understands its meaning. Either everyone else _does_ know what it means or there are a number of people like me, confused but hesitant to ask what it means as it is hard to gauge whether you are the only dumb-dumb who does not know. + +After asking some software engineering friends, I found that many had never heard some of these phrases. So I think it is likely there are many more of you out there yet to hear them, or have already heard them but do not know what they mean. + +I decided to collect all of the idioms that I have come across so that hopefully you will be prepared when you encounter one and you won't be like I was, confused and wondering what the hell these people are talking about. + +Have I missed any? Let me know in the comments below. + +## Bikeshedding + +Bikeshedding, or the **Law of Triviality**, describes our tendency to devote a disproportionate amount of our time to trivial topics. For example, a team might devote more time than is all of their time debating what colour a button on their website should be, rather than discussing what front-end framework best fits their needs. + +## Dogfooding + +Dogfooding, or **Eating your own dog food** is the practice of using your own products and projects internally. This is a good practice if you are able to do it as it means you are able to continuously validate that the product is functioning is correctly and it can help to identify usability or feature gaps, and bugs. + +## Boil the ocean + +To "boil the ocean" is when someone tries to undertake a project or task which would be almost impossible to complete. + +## Rubber duck debugging + +Rubber duck debugging is an analog method of code debugging, where an engineer would articulate a problem using natural human language, either spoken or written. Using an inanimate object such as a rubber duck can help with this method by providing an imaginary listener of the problem. + +## Drinking the Kool-Aid + +When someone "drinks the Kool-Aid", it means that they have heavily bought into something, sometimes ignoring the arguments against the thing. The "thing" is often a company or its leader, but is sometimes used when referring to software languages or frameworks, or methodologies. + +## Skunkworks + +Skunkworks refers to a project that involves a specialist team working autonomously on an advanced or secret project, primarily for the sake of rapid innovation. + +## Yak Shaving + +Yak shaving is when you start a task but end up having to complete a number of other tasks before you are able to complete the original task. + +## Technical debt + +Technical debt is bad code which is the result of when a development team takes shortcuts in their code delivery in order to meet deadlines, and the bad code causes issues down the line leading it to need to be refactored. + +## Bus factor + +The bus factor of a project is the number equal to the number of team members who, if run over by a bus, would put the project in jeopardy. If a project relies heavily on one member in any way, then you could say that the project's bus factor is one. + +## Code smell + +A code smell is when any characteristic of a piece of code may be caused by a deeper problem within the system or architecture. A common code smell is a **bloater**, where a piece of code, which could be a component, class or method has increased to an undesirable size. From 4f130bc9e9f8ec4c76ffebd90fd97a1462c9b7fe Mon Sep 17 00:00:00 2001 From: Enda Phelan Date: Wed, 15 Dec 2021 22:31:35 +0000 Subject: [PATCH 05/11] fix-edit-url --- config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.yml b/config.yml index 2ae0d0de..a933430a 100644 --- a/config.yml +++ b/config.yml @@ -93,7 +93,7 @@ params: hiddenInSingle: true # hide on single page editPost: - URL: "https://github.com/craicoverflow/craicoverflow.github.io/content" + URL: "https://github.com/craicoverflow/craicoverflow.github.io/tree/master/content" Text: "Suggest Changes" # edit text appendFilePath: true # to append file path to Edit link From 55788786419bc78dc4682fb2e3be5fe90b019211 Mon Sep 17 00:00:00 2001 From: Enda Phelan Date: Thu, 16 Dec 2021 16:42:12 +0000 Subject: [PATCH 06/11] Override post nav template with giscus comments --- layouts/partials/post_nav_links.html | 33 ++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 layouts/partials/post_nav_links.html diff --git a/layouts/partials/post_nav_links.html b/layouts/partials/post_nav_links.html new file mode 100644 index 00000000..437f0547 --- /dev/null +++ b/layouts/partials/post_nav_links.html @@ -0,0 +1,33 @@ +{{- $pages := where site.RegularPages "Type" "in" site.Params.mainSections }} +{{- if and (gt (len $pages) 1) (in $pages . ) }} + +{{- end }} + + From 09859915d02030ce7ef769e9a74fdea726c83242 Mon Sep 17 00:00:00 2001 From: Enda Phelan Date: Thu, 16 Dec 2021 17:01:09 +0000 Subject: [PATCH 07/11] update blog post --- config.yml | 2 +- .../posts/software-idioms-you-should-know.md | 21 +++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/config.yml b/config.yml index a933430a..da530205 100644 --- a/config.yml +++ b/config.yml @@ -19,7 +19,7 @@ params: title: Enda Phelan description: "Enda's blog" keywords: [Blog, Portfolio] - author: Me + author: Enda Phelan # author: ["Me", "You"] # multiple authors # images: [""] DateFormat: "January 2, 2006" diff --git a/content/posts/software-idioms-you-should-know.md b/content/posts/software-idioms-you-should-know.md index 982b7906..4628b56b 100644 --- a/content/posts/software-idioms-you-should-know.md +++ b/content/posts/software-idioms-you-should-know.md @@ -1,24 +1,23 @@ --- -title: "Software Idioms You Should Know" +title: "Software Engineering Idioms You Should Know" date: 2021-12-15T11:30:03+00:00 weight: 1 --- -I have been working as a software engineer for just over five years. Every now and then I encounter an idiom during a meeting which I don't understand at all and it is not explained because it is assumed that everyone already understands its meaning. Either everyone else _does_ know what it means or there are a number of people like me, confused but hesitant to ask what it means as it is hard to gauge whether you are the only dumb-dumb who does not know. +I have been working as a software engineer for just over five years. Every now and then I encounter a phrase used to describe something during an engineering discussion, where its meaning is not obvious from the words themselves. These kinds of phrases are known as *idioms* - expressions that have a non-literal meaning attached to the phrase. "Break a leg" is a well-known idiom to wish a person good luck. -After asking some software engineering friends, I found that many had never heard some of these phrases. So I think it is likely there are many more of you out there yet to hear them, or have already heard them but do not know what they mean. - -I decided to collect all of the idioms that I have come across so that hopefully you will be prepared when you encounter one and you won't be like I was, confused and wondering what the hell these people are talking about. +Usually, I say nothing and pretend I know what it means, or quickly look up the meaning if I am by my computer. I talked to a few other engineers and asked them if they had heard of some of these phrases - and they didn't. I imagine there are many more of you out there. +I decided to collect all of the idioms that I have come across in my job to share them with you along with a simple explanation. Have I missed any? Let me know in the comments below. ## Bikeshedding -Bikeshedding, or the **Law of Triviality**, describes our tendency to devote a disproportionate amount of our time to trivial topics. For example, a team might devote more time than is all of their time debating what colour a button on their website should be, rather than discussing what front-end framework best fits their needs. +Bikeshedding, or the **Law of Triviality**, describes our tendency to devote a disproportionate amount of our time to trivial topics. For example, a team might devote the majority of their time debating what colour a button on their website should be, rather than discussing what front-end framework best fits their needs. ## Dogfooding -Dogfooding, or **Eating your own dog food** is the practice of using your own products and projects internally. This is a good practice if you are able to do it as it means you are able to continuously validate that the product is functioning is correctly and it can help to identify usability or feature gaps, and bugs. +Dogfooding, or **Eating your own dog food** is the practice of using your own products and projects internally. This is a good practice if you are able to do it as it means you are able to continuously validate that the product is functioning correctly. It can help to identify bugs, usability or feature gaps before being made available to your paying customers. ## Boil the ocean @@ -26,11 +25,11 @@ To "boil the ocean" is when someone tries to undertake a project or task which w ## Rubber duck debugging -Rubber duck debugging is an analog method of code debugging, where an engineer would articulate a problem using natural human language, either spoken or written. Using an inanimate object such as a rubber duck can help with this method by providing an imaginary listener of the problem. +Rubber duck debugging is an analog method of code debugging, where an engineer would articulate a problem using natural human language, either spoken or written. Using an inanimate object such as a rubber duck can help with this method by providing an imaginary listener of the problem. The very act of speaking about the problem can help the engineer to identify the cause of the problem. ## Drinking the Kool-Aid -When someone "drinks the Kool-Aid", it means that they have heavily bought into something, sometimes ignoring the arguments against the thing. The "thing" is often a company or its leader, but is sometimes used when referring to software languages or frameworks, or methodologies. +When someone "drinks the Kool-Aid", it means that they have heavily bought into something, sometimes ignoring the arguments against the thing. The "thing" is often a company or its leader, but is sometimes used when referring to software languages, frameworks or methodologies. ## Skunkworks @@ -42,11 +41,11 @@ Yak shaving is when you start a task but end up having to complete a number of o ## Technical debt -Technical debt is bad code which is the result of when a development team takes shortcuts in their code delivery in order to meet deadlines, and the bad code causes issues down the line leading it to need to be refactored. +Technical debt is bad code which is the result of when a development team takes shortcuts in their code delivery in order to meet deadlines. The bad code causes issues down the line leading it to need to be refactored. ## Bus factor -The bus factor of a project is the number equal to the number of team members who, if run over by a bus, would put the project in jeopardy. If a project relies heavily on one member in any way, then you could say that the project's bus factor is one. +The bus factor of a project is the number equal to the number of team members who, if run over by a bus, would put the project in jeopardy. If a project overly relies on the contributions or knowledge of one person, then you could say that the project's bus factor is one. ## Code smell From a038c6bf3405e42ef4bd8ee5ea7cc8757543f9cd Mon Sep 17 00:00:00 2001 From: Enda Phelan Date: Thu, 16 Dec 2021 17:01:09 +0000 Subject: [PATCH 08/11] update blog post --- config.yml | 2 +- content/posts/software-idioms-you-should-know.md | 4 +++- layouts/partials/comments.html | 13 +++++++++++++ layouts/partials/post_nav_links.html | 14 -------------- 4 files changed, 17 insertions(+), 16 deletions(-) create mode 100644 layouts/partials/comments.html diff --git a/config.yml b/config.yml index da530205..8c64ec97 100644 --- a/config.yml +++ b/config.yml @@ -33,7 +33,7 @@ params: ShowCodeCopyButtons: false disableSpecial1stPost: false disableScrollToTop: false - comments: false + comments: true hidemeta: false hideSummary: false showtoc: false diff --git a/content/posts/software-idioms-you-should-know.md b/content/posts/software-idioms-you-should-know.md index 4628b56b..eba2c502 100644 --- a/content/posts/software-idioms-you-should-know.md +++ b/content/posts/software-idioms-you-should-know.md @@ -2,6 +2,8 @@ title: "Software Engineering Idioms You Should Know" date: 2021-12-15T11:30:03+00:00 weight: 1 +cover: + image: "https://i.imgur.com/IaI0TZD.jpg" --- I have been working as a software engineer for just over five years. Every now and then I encounter a phrase used to describe something during an engineering discussion, where its meaning is not obvious from the words themselves. These kinds of phrases are known as *idioms* - expressions that have a non-literal meaning attached to the phrase. "Break a leg" is a well-known idiom to wish a person good luck. @@ -41,7 +43,7 @@ Yak shaving is when you start a task but end up having to complete a number of o ## Technical debt -Technical debt is bad code which is the result of when a development team takes shortcuts in their code delivery in order to meet deadlines. The bad code causes issues down the line leading it to need to be refactored. +Technical debt is the implied cost of reworking an existing codebase or system. It is often incurred as a result of taking a quick and easy option now instead of a creating a better solution which would take longer. ## Bus factor diff --git a/layouts/partials/comments.html b/layouts/partials/comments.html new file mode 100644 index 00000000..3b11b09e --- /dev/null +++ b/layouts/partials/comments.html @@ -0,0 +1,13 @@ + diff --git a/layouts/partials/post_nav_links.html b/layouts/partials/post_nav_links.html index 437f0547..b988641b 100644 --- a/layouts/partials/post_nav_links.html +++ b/layouts/partials/post_nav_links.html @@ -17,17 +17,3 @@ {{- end }} {{- end }} - - From c45bb6c2dd7e1c7c0e562060f6f0a096a2ca2dbb Mon Sep 17 00:00:00 2001 From: Enda Date: Fri, 25 Mar 2022 14:22:59 +0000 Subject: [PATCH 09/11] Add "Getting Productive" blog post(#13) --- content/posts/getting-productive.md | 77 +++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 content/posts/getting-productive.md diff --git a/content/posts/getting-productive.md b/content/posts/getting-productive.md new file mode 100644 index 00000000..f97532df --- /dev/null +++ b/content/posts/getting-productive.md @@ -0,0 +1,77 @@ +--- +title: "Getting productive" +date: 2022-03-25T11:30:03+00:00 +weight: 1 +cover: + image: "https://i.imgur.com/l0kphcM.png" +--- + +The past couple of years have been my busiest ever, both in work and in my personal life. In two years of work I went from a junior to a senior software engineer, and with that came a raft of new responsibilities. In the same two years I had some big life events which required long term planning like which I had never needed before. + +I used to cope just fine using my head to keep track of both the short and long term tasks and goals - because there weren't that many happening at the same time. Suddenly, and before I even realized, this system had become no longer fit for purpose and it was unable to cope with my requirements. 2021 for me became a year of discovering, experimenting and adopting different methods that would enable me primarily to become more organized, which would in turn enhance productivity. + +The following list is not supposed to be any kind of ultimate solution that is guaranteed to work for you. These are simply the things that I found that have helped me get closer to fulfilling my objective. + +## Maximizing calendar usage ๐Ÿ“… + +I used to occasionally put something in my calendar. Not because I needed to, I just liked the idea of it. My approach to calendar entry was not very systematic anyway so it just never felt very useful to me. As I got busier I began adding everything to my calendar otherwise I'd just end up forgetting things or having to retrieve the information from an email, text or WhatsApp message. + +I realized that I could do better. I created custom calendars to segment events by responsibilty. One of my favourites is my **Events of interest** calendar. When I learn about an event I am interested but cannot commit to attending until closer to the time then it gets added to **Events of interest**, keeping my main calendar as a hard lanscape of my schedule. My partner and I have both shared our calendars with each other for maximum visibility into each other's schedule. This has proved extremely useful as we now both have the autonomy of booking appointments while away from each other and not needing to worry about double bookings. + +Finally, I made sure to shares my personal calendar with my work calendar. Given that I spend almost 1/3 of my waking hours at work it makes sense to be able to view my *complete* schedule from a single calendar view. + +## Inbox Zero ๐Ÿ“ง + +I've been a Gmail user since it was still invite-only in 2006. In all of those years once I opened a new email and "processed" I did not do anything to tidy it up. I just left it in my inbox, unread and cluttering my screen even though I had no plans to ever interact with it again. Slowly but surely my processed emails would make their way down my inbox, and eventually they would leave my sight forever. + +If I was not ready to process an email I opened I did one of two things: snooze it **or** mark it as unread. + +* By snoozing it I was simply handing the problem to Future Me to take care of. Usually I did not have a specific date/time that this email needed to be looked at so I'd pick something like `Today at 18:00` (deal with it after work) or `Monday at 09:00` (it's Friday, I'm in no mood for this now!). It was very unlikely that I would be in a position to process the email at these times either. +* By marking it as unread I was ensuring that I would not forget about this email by making it appear as though I had not yet read it. This just created more work for me as I had both unread unread emails and read unread emails mixed together. + +Upon reflection, I see now that this approach to email processing is pretty archaic and also very inefficient, yet it's probably what > 99% of us do as it's just how most email systems are set up by default. + +I now follow an "Inbox Zero" approach to managing my emails. I archive or even delete emails that I have completely finished with. For emails that I need to do something with but not straight away I now and use a label and filter-based workflow to place the emails into three clear categories: *Action Items*, *Waiting For* and *Read/Review*. These categories are also a feature of the Getting Things Done productivity system with I will talk about next. + +I followed this [Inbox Zero Tutorial](https://youtu.be/9ql1CQfxWxQ) by Jeff Su to implement an Inbox Zero workflow into both my work and personal gmail accounts. I'm a big fan of Jeff's content - he gives great productivity tips and I recommend you check out the rest of his videos. + +## Getting Things Done โœ…โœ…โœ… + +My biggest productivity struggle was that I did not have a coordinated system in place to capture and subsequently manage all of my tasks and projects. I tried a number of ways to capture tasks - from simple pen and paper to using popular digital tools. These failed to be effective for so many reasons and I usually ended up falling back to using my head to bear the load of figuring out everything that I needed to do. + +I decided to give the [Getting Things Done](https://gettingthingsdone.com/what-is-gtd/) methodology a go after seeing it recommended on Twitter. +At a high level it involves five simple steps to organization: _Capture, Clarify, Organize, Review,_ and _Engage_. + +The book was actually a light and enjoyable read and also extremely helpful. The great thing about it was I was able to slowly integrate the GTD methods into my life as I progressed through it - there was no need to reach the end before fully understanding it. You could start to use GTD without reading the book, but in my opinion it teaches you so much more in depth about the system than you would otherwise get. + +I now finally have a single system that is easy to use to track the multiple projects that I am working on at the same time. I don't forget about stuff like I used to because it's always there in front of me in my **Next Actions** list. + +## Todoist ๐Ÿ—’๏ธ + +[Todoist](https://todoist.com/) is a feature-rich task management application that I have tried to use many times over the years but failed, simply because I did not have an organization system in place and I was unable to utilize the true extent of its power. I once again tried it out when I began using Getting Things Done. Thanks to its flexibility I was able to shape it to match the exact workflow that I was trying to create. It also has dozens of free integrations available such as Google Calendar two-way synchronization. I can safely say that if I tried to use pen and paper or Google Tasks with the GTD methodology I would have failed to keep it up. + +## The Pomodoro Technique ๐Ÿ… + +[The Pomodoro Technique](https://francescocirillo.com/pages/pomodoro-technique) is something that I sometimes use, and even then I am not strict about it. +It is a very simple technique - set a 25 minute timer and focus on a single task, then take a five minute break. +I only call upon this technique when I need to have strong focus as my workload on some days may be a little less defined or be broken up with meetings where it would make little sense to use this. +Other than the focus blocks this encourages, I also like to use this technique to remind myself to take frequent short breaks. On days where I don't use it I can find myself losing track of time while stuck on something and I go far too long without getting up for a walk or stretch. + +## Closing distractions โœ‹ + +How often do you check your emails? Maybe you get a pop-up whenever one comes in? Or if you're like me your eyes frequently shoot up to the pinned email tab to see if it has changed from **Inbox** to **Inbox (1)**. I cannot leave something unread when I know it's there, so I will rip myself away from what I am doing and read the email. 90% of the time it's not something I need to action immediately, if at all. Yet I've still interrrupted myself to go and read it and now must try to refocus myself on what I had been doing which takes time. + +So what's the solution? Recently I have started to close my email tab and check it at fixed times throughout the day. I get notified by my calendar when it's time to check, otherwise they are out of sight and out of mind. + +Instant messaging services like Slack, Microsoft Teams are used heavily by most companies these days. They do give the benefit of enabling people to converse instantly and in and less formal structure than you tend to get with email. You are always just a quick message away from someone who needs you and that can be fantastic tool for collaboration in a distributed team. +What is a positive however can also be viewed as a negative and the problem is that you are always just a message away from someone. It can be very, very hard to keep focused on something when your messaging app frequently notifies you both visually and audibly when you have a message. + +I used to leave my messaging app always open, sometimes even dedicating my secondary monitor to it so that I would be highly available. These days, I close my chat application when the thing that I am doing requires my focus (like this blog post) and I have it open in between my "focus windows". + +## Conclusion + +In school you learn the fundamentals in a broad spectrum of subjects that help prepare you for the next stage in your life, be that further education or in the workplace. In college/university you learn the fundamentals of your chosen discipline, along with some extras which are useful to land the job you want like interview preparation and how to write a CV. From then on the things you learn about are more or less down to yourself but there is no predetermined path created for you like you have had while in formal education. + +Productivity and how to be organized is not something we are all taught as a life skill. I imagine that if had acquired even some of the skills, techniques and methodologies from this blog post earlier in my life then I would have been able to perform better, especially in college and in my first few years as a software engineer. + +This has been my productivity journey so far, and I am in no doubt that it's not yet close to the finish line. The key is to continuosly reflect on what works and what doesn't work for you. I will continue to refine my system to make it better, and I won't be afraid to stop using something if I find an alternative that works better for me. From 9f77d7e6f592af7cbb75c3cd70d57cbb346bef21 Mon Sep 17 00:00:00 2001 From: Enda Phelan Date: Mon, 28 Mar 2022 10:18:28 +0100 Subject: [PATCH 10/11] fix typos and grammar --- content/posts/getting-productive.md | 38 ++++++++++++++--------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/content/posts/getting-productive.md b/content/posts/getting-productive.md index f97532df..f3203481 100644 --- a/content/posts/getting-productive.md +++ b/content/posts/getting-productive.md @@ -6,9 +6,9 @@ cover: image: "https://i.imgur.com/l0kphcM.png" --- -The past couple of years have been my busiest ever, both in work and in my personal life. In two years of work I went from a junior to a senior software engineer, and with that came a raft of new responsibilities. In the same two years I had some big life events which required long term planning like which I had never needed before. +The past two years have been my busiest ever, both in my work and personal life. In two years I went from a junior to a senior software engineer, and with that came a raft of new responsibilities. In the same two years, I had some big life events which required long term planning, the likes of which I had never needed before. -I used to cope just fine using my head to keep track of both the short and long term tasks and goals - because there weren't that many happening at the same time. Suddenly, and before I even realized, this system had become no longer fit for purpose and it was unable to cope with my requirements. 2021 for me became a year of discovering, experimenting and adopting different methods that would enable me primarily to become more organized, which would in turn enhance productivity. +I used to cope just fine using my head to keep track of both the short and long term tasks and goals - because there weren't that many happening at the same time. Suddenly, and before I even realized it, this system had become no longer fit for purpose and it was unable to cope with my requirements. 2021 for me became a year of discovering, experimenting and adopting different methods that would enable me primarily to become more organized, which would, in turn, enhance productivity. The following list is not supposed to be any kind of ultimate solution that is guaranteed to work for you. These are simply the things that I found that have helped me get closer to fulfilling my objective. @@ -16,33 +16,33 @@ The following list is not supposed to be any kind of ultimate solution that is g I used to occasionally put something in my calendar. Not because I needed to, I just liked the idea of it. My approach to calendar entry was not very systematic anyway so it just never felt very useful to me. As I got busier I began adding everything to my calendar otherwise I'd just end up forgetting things or having to retrieve the information from an email, text or WhatsApp message. -I realized that I could do better. I created custom calendars to segment events by responsibilty. One of my favourites is my **Events of interest** calendar. When I learn about an event I am interested but cannot commit to attending until closer to the time then it gets added to **Events of interest**, keeping my main calendar as a hard lanscape of my schedule. My partner and I have both shared our calendars with each other for maximum visibility into each other's schedule. This has proved extremely useful as we now both have the autonomy of booking appointments while away from each other and not needing to worry about double bookings. +I realized that I could do better. I created custom calendars to segment events by responsibility. One of my favourites is my **Events of interest** calendar. When I learn about an event I am interested in but cannot commit to attending until closer to the time then it gets added to **Events of interest**, keeping my main calendar as a hard landscape of my schedule. My partner and I have both shared our calendars for maximum visibility into each other's schedules. This has proved extremely useful as we now both have the autonomy of booking appointments while away from each other and not needing to worry about double bookings. -Finally, I made sure to shares my personal calendar with my work calendar. Given that I spend almost 1/3 of my waking hours at work it makes sense to be able to view my *complete* schedule from a single calendar view. +Finally, I made sure to share my personal calendar with my work calendar. Given that I spend almost 1/3 of my waking hours at work it makes sense to be able to view my *complete* schedule from a single calendar view. ## Inbox Zero ๐Ÿ“ง -I've been a Gmail user since it was still invite-only in 2006. In all of those years once I opened a new email and "processed" I did not do anything to tidy it up. I just left it in my inbox, unread and cluttering my screen even though I had no plans to ever interact with it again. Slowly but surely my processed emails would make their way down my inbox, and eventually they would leave my sight forever. +I've been a Gmail user since it was still invite-only in 2006. In all of those years once I opened a new email and "processed" I did not do anything to tidy it up. I just left it in my inbox, unread and cluttering my screen even though I had no plans to ever interact with it again. Slowly but surely my processed emails would make their way down my inbox, and eventually, they would leave my sight forever. If I was not ready to process an email I opened I did one of two things: snooze it **or** mark it as unread. -* By snoozing it I was simply handing the problem to Future Me to take care of. Usually I did not have a specific date/time that this email needed to be looked at so I'd pick something like `Today at 18:00` (deal with it after work) or `Monday at 09:00` (it's Friday, I'm in no mood for this now!). It was very unlikely that I would be in a position to process the email at these times either. +* By snoozing it I was simply handing the problem to Future Me to take care of. Usually, I did not have a specific date/time that this email needed to be looked at so I'd pick something like `Today at 18:00` (deal with it after work) or `Monday at 09:00` (it's Friday, I'm in no mood for this now!). It was very unlikely that I would be in a position to process the email at these times either. * By marking it as unread I was ensuring that I would not forget about this email by making it appear as though I had not yet read it. This just created more work for me as I had both unread unread emails and read unread emails mixed together. Upon reflection, I see now that this approach to email processing is pretty archaic and also very inefficient, yet it's probably what > 99% of us do as it's just how most email systems are set up by default. -I now follow an "Inbox Zero" approach to managing my emails. I archive or even delete emails that I have completely finished with. For emails that I need to do something with but not straight away I now and use a label and filter-based workflow to place the emails into three clear categories: *Action Items*, *Waiting For* and *Read/Review*. These categories are also a feature of the Getting Things Done productivity system with I will talk about next. +I now follow an "Inbox Zero" approach to managing my emails. I archive or even delete emails that I have finished with. For emails that I need to do something with but not straight away I now use a label and filter-based workflow to place the emails into three clear categories: *Action Items*, *Waiting For* and *Read/Review*. These categories are also a feature of the Getting Things Done productivity system with I will talk about next. -I followed this [Inbox Zero Tutorial](https://youtu.be/9ql1CQfxWxQ) by Jeff Su to implement an Inbox Zero workflow into both my work and personal gmail accounts. I'm a big fan of Jeff's content - he gives great productivity tips and I recommend you check out the rest of his videos. +I followed this [Inbox Zero Tutorial](https://youtu.be/9ql1CQfxWxQ) by Jeff Su to implement an Inbox Zero workflow into both my work and personal Gmail accounts. I'm a big fan of Jeff's content - he gives great productivity tips and I recommend you check out the rest of his videos. ## Getting Things Done โœ…โœ…โœ… -My biggest productivity struggle was that I did not have a coordinated system in place to capture and subsequently manage all of my tasks and projects. I tried a number of ways to capture tasks - from simple pen and paper to using popular digital tools. These failed to be effective for so many reasons and I usually ended up falling back to using my head to bear the load of figuring out everything that I needed to do. +My biggest productivity struggle was that I did not have a coordinated system in place to capture and subsequently manage all of my tasks and projects. I experimented with several ways to capture tasks - from simple pen and paper to using popular digital tools. These failed to be effective for so many reasons and I usually ended up falling back to using my head to bear the load of figuring out everything that I needed to do. I decided to give the [Getting Things Done](https://gettingthingsdone.com/what-is-gtd/) methodology a go after seeing it recommended on Twitter. At a high level it involves five simple steps to organization: _Capture, Clarify, Organize, Review,_ and _Engage_. -The book was actually a light and enjoyable read and also extremely helpful. The great thing about it was I was able to slowly integrate the GTD methods into my life as I progressed through it - there was no need to reach the end before fully understanding it. You could start to use GTD without reading the book, but in my opinion it teaches you so much more in depth about the system than you would otherwise get. +The book was actually a light and enjoyable read and also extremely helpful. The great thing about it was I was able to slowly integrate the GTD methods into my life as I progressed through it - there was no need to reach the end before fully understanding it. You could start to use GTD without reading the book, but in my opinion, it teaches you so much more in-depth about the system than you would otherwise get. I now finally have a single system that is easy to use to track the multiple projects that I am working on at the same time. I don't forget about stuff like I used to because it's always there in front of me in my **Next Actions** list. @@ -53,25 +53,25 @@ I now finally have a single system that is easy to use to track the multiple pro ## The Pomodoro Technique ๐Ÿ… [The Pomodoro Technique](https://francescocirillo.com/pages/pomodoro-technique) is something that I sometimes use, and even then I am not strict about it. -It is a very simple technique - set a 25 minute timer and focus on a single task, then take a five minute break. -I only call upon this technique when I need to have strong focus as my workload on some days may be a little less defined or be broken up with meetings where it would make little sense to use this. -Other than the focus blocks this encourages, I also like to use this technique to remind myself to take frequent short breaks. On days where I don't use it I can find myself losing track of time while stuck on something and I go far too long without getting up for a walk or stretch. +It is a very simple technique - set a 25-minute timer and focus on a single task, then take a five-minute break. +I only call upon this technique when I need to have strong focus as my workload on some days could be a little less defined or be broken up with meetings where it would make little sense to use this. +Other than the focus blocks this encourages, I also like to use this technique to remind myself to take frequent short breaks. On days when I don't use it, I can find myself losing track of time while stuck on something and I go far too long without getting up for a walk or stretch. ## Closing distractions โœ‹ -How often do you check your emails? Maybe you get a pop-up whenever one comes in? Or if you're like me your eyes frequently shoot up to the pinned email tab to see if it has changed from **Inbox** to **Inbox (1)**. I cannot leave something unread when I know it's there, so I will rip myself away from what I am doing and read the email. 90% of the time it's not something I need to action immediately, if at all. Yet I've still interrrupted myself to go and read it and now must try to refocus myself on what I had been doing which takes time. +How often do you check your emails? Maybe you get a pop-up whenever one comes in? Or if you're like me your eyes frequently shoot up to the pinned email tab to see if it has changed from **Inbox** to **Inbox (1)**. I cannot leave something unread when I know it's there, so I will rip myself away from what I am doing and read the email. 90% of the time it's not something I need to action immediately, if at all. Yet I've still interrupted myself to go and read it and now must try to refocus myself on what I had been doing which takes time. -So what's the solution? Recently I have started to close my email tab and check it at fixed times throughout the day. I get notified by my calendar when it's time to check, otherwise they are out of sight and out of mind. +So what's the solution? Recently I have started to close my email tab and check it at fixed times throughout the day. I get notified by my calendar when it's time to check, otherwise, they are out of sight and out of mind. -Instant messaging services like Slack, Microsoft Teams are used heavily by most companies these days. They do give the benefit of enabling people to converse instantly and in and less formal structure than you tend to get with email. You are always just a quick message away from someone who needs you and that can be fantastic tool for collaboration in a distributed team. +Instant messaging services like Slack, Microsoft Teams are used heavily by most companies these days. They do give the benefit of enabling people to converse instantly and in and less formal structure than you tend to get with email. You are always just a quick message away from someone who needs you and that can be a fantastic tool for collaboration in a distributed team. What is a positive however can also be viewed as a negative and the problem is that you are always just a message away from someone. It can be very, very hard to keep focused on something when your messaging app frequently notifies you both visually and audibly when you have a message. I used to leave my messaging app always open, sometimes even dedicating my secondary monitor to it so that I would be highly available. These days, I close my chat application when the thing that I am doing requires my focus (like this blog post) and I have it open in between my "focus windows". ## Conclusion -In school you learn the fundamentals in a broad spectrum of subjects that help prepare you for the next stage in your life, be that further education or in the workplace. In college/university you learn the fundamentals of your chosen discipline, along with some extras which are useful to land the job you want like interview preparation and how to write a CV. From then on the things you learn about are more or less down to yourself but there is no predetermined path created for you like you have had while in formal education. +In school, you learn the fundamentals in a broad spectrum of subjects that help prepare you for the next stage in your life, be that further education or in the workplace. In college/university you learn the fundamentals of your chosen discipline, along with some extras which are useful to land the job you want like interview preparation and how to write a CV. From then on the things you learn about are more or less down to yourself but there is no predetermined path created for you like you have had while in formal education. -Productivity and how to be organized is not something we are all taught as a life skill. I imagine that if had acquired even some of the skills, techniques and methodologies from this blog post earlier in my life then I would have been able to perform better, especially in college and in my first few years as a software engineer. +Productivity and how to be organized is not something we are all taught as a life skill. I imagine that f I had acquired even some of the skills, techniques and methodologies from this blog post earlier in my life then I would have been able to perform better, especially in college and in my first few years as a software engineer. -This has been my productivity journey so far, and I am in no doubt that it's not yet close to the finish line. The key is to continuosly reflect on what works and what doesn't work for you. I will continue to refine my system to make it better, and I won't be afraid to stop using something if I find an alternative that works better for me. +This has been my productivity journey so far, and I am in no doubt that it's not yet close to the finish line. The key is to continuously reflect on what works and what doesn't work for you. I will continue to refine my system to make it better, and I won't be afraid to stop using something if I find an alternative that works better for me. From ae388dd28bbb3c17cd402d8437c063d9a06f70ce Mon Sep 17 00:00:00 2001 From: Enda Date: Wed, 8 Jun 2022 14:36:01 +0100 Subject: [PATCH 11/11] Update config.yml --- config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.yml b/config.yml index 8c64ec97..810573b4 100644 --- a/config.yml +++ b/config.yml @@ -79,7 +79,7 @@ params: - name: polywork url: "https://www.polywork.com/endaphelan" - name: instagram - url: "https://instagram.com/enda.phelan" + url: "https://instagram.com/photosbyenda" - name: linkedin url: "https://linkedin.com/in/endaphelan"