Saturday morning, having realized that we had no commitments or prior engagements until the following Tuesday, my partner and I decided to go on a trip. We rapidly packed bags for ourselves and our little girl, threw them in the van and set off with no set destination other than "the south-west". We ended up staying in a small farm on Exmoor and having a terrific time walking on the moor and visiting nearby sites.
Other than the liberty of being able to just "get away", this weekend was notable as the previous week marked exactly one year since I left full-time employment.
Back in July, following an epic road-trip around Europe with my girls, I wrote a long blog post about the trip and my plans for the future. These plans centred on taking the rest of the year off as a career-break and using this time to support my family while investigating/evaluating emerging technologies in the .NET ecosystem.
Now, six months on, it's time to look back over the last year and perform a retrospective; what went well, what could have been better and what should be changed moving forward.
Note: This is a long, detailed post with a lot of information/reflection about the previous year. As such I have published it as a MVP (Minimal Viable Post) and will iterate additional information into the post in the future.
A Timeline
To aid the retrospective process, I spent last week learning Dart and Pixi.js in order to create a timeline visualization of the year. I'm not going to go into the process of making this visualization here as I want to focus on the retrospective, however I will be writing a "making of" follow-up post as the process was both very interesting and thoroughly enjoyable.
Below you can see the visualization; a timeline covering the entirity of last year and showing the various aspects of my behaviour / productivity on a day-by-day basis. In order to fit into the horizontal space available in most browsers/platforms, the timeline is scaled-down along the horizontal axis. As this obscures much of the data, the timeline was designed to allow you to use your mouse or finger to interactively zoom in and and pan across the it. Give it a go.
In the following sections I will discuss the various datasets displayed along with a summary of what they represent.
State
This timeline represents my primary oocupation at any given time. From a high-level, last year can be broadly split into two halves, travelling for the first half and working for the latter. However, the detail is more telling so the timeline has been further split into seven disctinct states:
Employment
My last day of employment was Friday 15th January, 2016. I had worked at my previous company for over four years and very much enjoyed my time there. Unfortunately an internal power struggle resulted in a change of senior management and a move away the progressive development methodologes which had made the company such a great place to work. This, to me, signalled that it was time to move on.
Sabatical
I considered the couple of months following ending full time employment as a sabatical; time to reflect, get my affairs in order and spend time with my young family before considering how to move forward.
At this time my daughter was just 4 months old so this presented a great opportunity to support my partner and engage with my baby. Having also taken 6 weeks of Shared Parental Leave the previous year, this meant that, of her first six months of life, I'd been able to spend almost four with her. I feel incredibly fortunate to be in a situation where this is could be the case. The first few months of a baby's life are incredibly tough for both the parents and the baby and I'm very happy that I was able to be with my girls throughout this time.
It was towards the end of this period that my partner and I decided to capitalise on our unique situation and put the remainder of her maternity leave to use by taking our little girl on a road-trip around Europe. The implications of this decision were to dominate and, to a large degree, consume the entirity of the next three months.
Preparation
Having made the decision to spend a significant amount of time touring Europe, with an 8 month old baby no less, it became apparent that there would be a whole lot of preparation required to make this happen. In March we decided to buy a Nissan Elgrand E51 Rider Autech (shown below) and April onwards was spent preparing it for our trip.
This preparation was complex, with numerous requirements, constraints and learning curves across a variety of disciplines... but also a whole lot of fun. On our return I wrote a very long post for the Elgrand Owners Club which detailed all the work I had done on the van. While the post took a significant amount of time to write, the forums were invaluable in providing the information I needed to do the work in the first place so I thought it was worth investing this time in case the post helped someone else in the same manner. To this day, the post is still one of the most viewed and commented on posts in the forum and well worth a read a read.
During this time I learned a lot about carpentry, electronics and engineering... but I almost didn't. Prior to undertaking the work, I had looked to find a conversion specialist who would do the work for me but most either only provided pattern-part conversions or were too busy to undertake a bespoke project. Well, "necessity being the mother of invention", I set to it and, in retrospect, am extremely glad I did.
Despite barely having used an electric drill previously and never having dabbled in 240v electronics, I enjoyed every aspect of the work and am immensely proud of it. We didn't experience a single issue with my work while we were away and, even if we had, it was extremely comforting knowing that I could have resolved the issue in the field if I'd had to.
Should a similar challenge ever present itself again, I would certainly look at taking it on and, furthermore, would encourage others to do so also as you undoubtedly learn a lot more when working outside of your comfort zone.
Touring Europe
All the prep done - well, as much as was possible in the time available - we left home on May 20th and didn't return again until July 17; totaling just over 8 weeks on the road. In this time we traveled in excess of 8000 miles and visited 22 countries seeing numerous friends en-route and making many more in the process.
Perhaps it was all the prep or perhaps we were just lucky but the trip went off without a hitch and everyone - including our little girl - had an amazing time. Both my partner and I blogged about the trip - for ourselves as much for any potential reader - and, six months on, are still reflecting on what a fantastic adventure it was.
Without a shadow of a doubt, and even when considering the week's of preparation before leaving, this trip was time well spent. My partner and I learned a lot about each other ("hey, we can spend several weeks in a confined space together, 24/7") and our daughter and have accumulated memories that will last a lifetime. We have already talked about doing another similar trip in the future and have begun planning shorter breaks around the UK as a stop-gap until an opportunity for a new adventure comes along.
Study
Upon my return, I came across a code for a free Microsoft beta exam about mobile application development. As I was interested in UWP app development and had already taken loads of these beta exams in previous years, I decided to sit the exam even though the code was only valid for a few weeks after signing up, which left very little time to study!!
As I learn best by doing my study focused on writing a UWP app that incorporated as many of the examined technical aspects as possible. While the methodologies I used for this app were relatively new (i.e. CQRS/ES) the learning curve for this exam really came from some of the unique aspects of UWP app development such as designing for multiple devices/screen sizes, using new persistence technologies and leveraging the huge new API surface available to UWP apps.
Due to an awful dashboard implementation which causes much confusion for students who sit beta exams, I am still unsure as to whether I passed this exam or not. My dashboard has not changed to say I have passed the exam but I have not received a summary sheet from Microsoft with my scores nor am I able to access them from my MCP dashboard. In short, the current beta exam process is extremely poor and much worse than it was five or six years ago when I took (and passed) around a dozen such beta exams.
Regardless, time spent on this study was a huge win. I learned a lot about a platform which is becoming increasingly prevalent in the Windows ecosystem. UWP apps are able to run on everything from Raspberry Pi to Hololens, and I have since deployed/released UWP apps for Raspberry Pi, Mobile (phone/table), PC and XBox. Indeed, after completing the exam, I continued to develop my UWP study app over the next few months.
Holiday
Across the year, I allocated around 40 days (including bank-holidays and weekends) as non-work days (aka holiday). This included snowboarding with friends, trips abroad, visiting relatives and a long festive break over Xmas. Although more than the holiday allowance at most full time jobs (depending on how it's allocated), I feel this represents a fairly decent split between work and play.
OneCog.Solutions
Once life had returned to normal following our tour of Europe and taking the Microsoft beta exam, I decided to work on a few projects that were interesting to me.
Firstly, this was continuing my investigation of UWP, initially to flesh out and release the UWP app I had written while studying for the UWP exam but then to also evaluate UWP as a platform for IoT devices. I then proceeded to broaden my area of investigation into non-Microsoft technologies and even into areas that, while still technical, were not directly involved with software development.
During this time I endeavored to keep an up-to-date public profile. Through a public Trello board, products I had released (LittleLittle & ToddlerBox), posts to my blog and contributions to both Github and StackOverflow I tried to make sure as much of my time as possible was surfaced publicly. Indeed, having become extremely delivery-oriented since first drinking the agile (lower-case 'a') kool-aid several years ago, I feel the public-facing nature of these interactions substituted as a form of delivery; or, in Agile parlance, became my "definition of done".
While, in retrospect, I had hoped to have investigated many more technologies than I actually managed during this time, overall I would consider this time well spent. In addition to releasing two applications to the Windows Store and contributing to several public Github projects (more on this later) I managed to rack up over 1000 rep on StackOverflow in just a couple of months.
Unfortunately, during this time, I didn't achieve my primary goal; namely finding a project that could potentially be grown into a marketable product and form the basis of a company. While there were no shortage of ideas and there still remain a couple of "coals in the fire", I don't think I've yet found the gap in the market I'm looking for. One slight positive note here is that I have, at the very least, determined a couple of markets I'm very keen on investigating further and in which I'd like to work in the future.
Health
For this visualization I have employed step count (vertical bars), weight (yellow line with dotted yellow representing ideal weight) and fat-mass (red line with dotted red representing ideal fat-mass) as a (very rough) approximation of health. While, in theory, I should have had more leisure time available to exercise over the course of the year, in real terms I found that I did far less than expected. This was due to a number of factors:
- My previous employer, being a company that revolves around football, had regular football matches/tournaments between company staff which were of a very high standard. I played in as many of these as possible and, once I left, I very much missed the exercise.
- My commute to work each day involved a (voluntary) walk from St Pancras station to Camden Lock - and back again - every day. This constituted 30 minutes/5000 steps of valuable exercise each day that was no longer necessary when I started working from home.
- I ran a football team for my village that played in the local Bedfordshire league. Unfortunately, due to lack of players this team folded at the end of last season leaving me entirely bereft of football for the majority of the year.
At punching-weight, I aim to be 11st and 15% fat-mass. This used to be a fairly common occurrence while playing football regularly but, as can be seen, I've not managed to get back into a similar condition this year. Fortunately, I have managed to avoid devolving into a complete bucket of lard thanks to several things:
- Parenthood - As any parent will tell you, being a parent is both exhausting and relentless. While previously I would undertake very little exercise in the evening, nowadays I expend a significant amount of energy each evening running around after my daughter. While not often recognised, this constitutes a fairly high level of activity.
- Preparation for Touring Europe - During this time I did a lot of very physical work. From lugging construction materials and tools around to disassembling and reassembling the van, the average day was extremely active, especially when compared to sitting in an office chair for eight hours.
- European Tour - as can be seen from the step count, although a great deal of time was spent driving, our time away involved a lot of other activity. This activity (particularly loading and unloading the van each day!) provided a lot of exercise and helped keep me fit over the summer.
- Swimming - In a desperate attempt to remain in some sort of shape, I have recently started swimming semi-regularly.
In retrospect, something that came as no surprise but for which I failed to anticipate the true impact, was the effect of not exercising on my state of mind and general happiness. Having always been an active and optimistic individual, I completely underestimated the tight correlation between these two characteristics. Mid-November saw me at my least active and, as I've come to realise, my least productive/focused (as evidenced by the sudden surge in StackOverflow rep!). Fortunately I try be somewhat self-reflective and, recognising that my diminished level of activity might be a possible cause for a perceived lack of progress, I decided to start swimming again as a means to address this.
Now, while I'm still not exercise as much as I would like, I at least feel like my activity levels are sufficient to allow me to focus on projects and achieve my deliverables. Moving forward I very much hope to re-establish the village football team in time for next season or join another team such that I get at least a couple of games a month.
Finances
In counterpoint to the Health visualization described above, the Finances visualization shows a relative interpretation of my financial health across the year.
At the beginning of the year, when considering a career-break, I tried to calculate a monthly "burn-rate" (i.e. total out-goings per month). Given I was not planning to change my lifestyle at all and my partner and I had already planned a number of holidays, I arrived at a rough estimate of £3k per month. This was affordable and, while it would put a dent in my savings, wouldn't leave me worrying about money at the end of the year.
Through-out the year there were a number of factors that further affected my finances:
- Touring Europe in the van cost significantly more than I estimated.
- My daughter's nursery care was cheaper than expected since moving her from four days a week to three (instead having an additional 'daddy-day-care' day).
- While I typically spend a significant amount on computer hardware, this year I required very little but for a relatively cheap new server.
Now, looking back across the year (and excluding large one-off payments like buying the van) it seems my burn-rate was closer to £2k, one third less than I had planned. This coupled with receiving returns on previous investments meant I actually ended the year significantly better off than I started it. While this definitely wouldn't be the case were I to continue the career-break for a second year, it is very reassuring to know that I could, should I decide to do so.
Github contributions
Across the year - although predominantly in the last few months - I made 368 commits to Github. These were spread across a couple of dozen repositories but mostly focused on the (private) repository for LittleLittle and my (statically generated & github-pages hosted) blog. Additionally, I contributed to several open source repositories, most notably the UWP Community Toolkit (1000 stars) and Live-Charts (875 stars).
Given 2016 was a leap-year, 368 commits in 366 days averages (just!) over one a day. Overall I'm quite pleased with this level of commitment and the quantity of work it represents, especially considering the amount of time this year spent not working. Additionally, for the last three months of this year, my partner and I have both elected to work four-day weeks as we felt it represented a better balance between parental and nursery care for our daughter. For me this meant Thursdays became "daddy-day-care" so that I could take my daughter swimming - something we both really enjoy - but which adversely affected my productivity.
Moving forward I intend to start publishing much more of my work to public repositories including regular updates to my "Spikes" repository which contains investigative projects and examples for solutions to various StackOverflow questions.
StackOverflow
Talking of StackOverflow questions, the next visualization shows StackOverflow Reputation accumulation across the year (light blue line) with gains shown day-by-day (dark blue boxes). While I predominantly consider it a distraction, I really enjoy answering questions on StackOverflow, probably due to the awesome gamification employed on the StackExchange sites.
While there is a low level of fairly constant reputation gain, most of the gains came in short bursts. As discussed above, I attribute this losing focus on my main projects due to inactivity. Still, there are far worse forms of procrastination than helping people and I consider this a relatively good use of time.
I am currently endeavoring to get the 'Fanatic' badge (visit StackOverflow for 100 days consecutively) but trying not to let it get in the way of other work. This usually means only answering questions when I can quickly point the asker in the right direction but I will occasionally field a more challenging question when it's something I'm particularly interested in.
Blog posts
Over the course of the year I have written and published 22 blog posts - totaling nearly 24,000 words - across a range of subjects including:
3D PRINTING (1) APACHE KAFKA (1) APACHE ZOOKEEPER (1) ATTACHED PROPERTY (1) BDD (1) BEHAVIORAL (1) BLOG (3) CAREER BREAK (1) CLIENT-SIDE FRAMEWORK (2) CQRS (1) DART (1) DATAFLOW (1) DOCKER (1) DVD RIPPING (1) EF (1) ELASTIC STACK (4) ELASTICSEARCH (4) EVENT SOURCING (1) EVENTS (1) EVENTSOURCING (1) FUTURE (1) GITHUB (2) GROWTH (1) HYPERLINK (1) IOT (1) JAVASCRIPT (2) JS (1) KIBANA (4) LITTLELITTLE (1) LOGSTASH (4) MAPLIN (1) MONITORING (4) MVVM (1) NANOSERVER (1) NETWORKING (4) PARENTHOOD (1) PATTERNS (1) PRODUCTIVITY (1) RASPBERRYPI (1) REACTIVE (7) REST (1) ROBOX (1) RX (7) SQL (1) STATE MACHINES (1) SVG (1) SYSLOG (4) TESTING (1) TODDLERBOX (3) TOOLKIT (2) TPL (2) TRAVEL (1) TYPESCRIPT (1) UWP (7) VISUAL STUDIO (2) VISUAL STUDIO CODE (1) WEBRX (2) WINDOWS SERVER 2016 (1) WYAM (1) XAML (2) XBOX (3)
This content garners an average of around 110 unique visitors and 400 page views every month.
One of these posts - "The absolute easiest way to use SVG icons in UWP apps" was featured in "The week in .NET – 9/7/2016". Furthermore, blog posts I have shared with people on other platforms (i.e. StackOverflow, MSDN, etc) have been understood and well received.
All in, I think I've added some valuable content to my blog this last year but feel like I should have tried harder to increase it's reach. While writing these blog posts inevitably takes a considerably amount of time, I intend to continue making as many new posts as possible, hopefully across an increased range of subjects and - by submitting to various aggregation blogs - with increased readership.
Commitments
This timeline displays any days I had expected to work yet was unable to for a variety of reasons. Over the course of the year this accounted for 42 days, mostly the Thursdays that have become my "daddy-day-care" day and during which I take my daughter swimming. While these "commitments" would have been worked around had I been in full-time employment, the flexibility of working when I can as opposed to when I have to has undoubtedly led to a greater degree of motiviation and concentration when I am in front of the computer.
Summary
Given this fairly comprehensive look back across the year, it's time to perform the retrospective.
What went well?
There were numerous wins across the year including:
- Getting to spend the year with my partner and baby which included spending two months traveling Europe in a camper-van.
- Releasing applications to the Windows Store for phone, tablet, PC and XBox.
- Furthering the breadth of my technical knowledge of various platforms, technologies and methodologies.
- Adding a significant amount of content to my blog.
- Contributing to numerous repositories on Github including several for popular open-source projects.
- Increasing my StackOverflow Reputation level by answering questions on a variety of subjects.
- Fully realising the importance of exercise on productivity.
- Completing the year in better financial health than I had expected.
What didn't go so well?
Given that, despite taking a career break, I continued to be productive in a variety of ways, I don't feel like too many things went badly this year. However there are a few things I would have liked to have achieved but didn't such as:
- Not finding the "market gap" or having the "killer idea" I had hoped to translate into a start-up.
- Not investigating as many technologies as I had hoped across the course of the year.
- Lacking a significant amount of exercise and thereby loosing focus and momentum for ongoing projects.
- Shying away from increasing the exposure of my blog content via news aggregators, social media, etc.
What needs to change moving forward
Well, I gave myself the year to come up with the "killer idea" but didn't manage it so now it's time to change tack. In the coming months I will be starting to look for contract work which, ideally, I can do remotely. Fortunately there is no pressure for me to return to work so I can be quite picky about the roles I take. The ideal contract would ideally feature one or all of the following:
- UWP/WPF
- Rx/Streaming technologies
- .NET Core
- IoT
- NoSQL datastores
- CQRS/ES
Ideally in the following markets:
- Baby/Toddler/Child care/entertainment
- Social Justice
- Automation
- Agriculture
- Renewable Energy
- Automotive
- Economics
That said, given the large number of "unknown unknowns", perhaps there are other technologies / markets I've not encountered yet that would be equally enthralling.
In the mean time, I will continue to investigate other interesting technologies and release updates to my existing products as appropriate.
Regarding family life, well, in this respect I hope to continue the extremely rewarding work/life balance my partner and I have achieved over the last year. This could be difficult once the demands of external deadlines become a reality again but it's something I would be extremely reluctant to change.
In conclusion
It's been an amazing year and one I will remember for a long time. Regardless of what I end up doing, it is my aim to take another career break in the not too distant future in which I will endeavor to repeat the successes of this year, remedy the failures and remind myself that it's good to look up from the computer from time to time.