The focus of this article is on my particular work ethic and specific way of working in order to develop not just Axentro blockchain but all the associated software that goes with it.
So as some of you know I have a full time day job as a developer and I also have a wife and 2 young children. And I’m working on many different aspects of Axentro and related projects.
So how do I manage my time and stay productive over the long term? I basically divide my time into 4 main areas:
- Exploration & Research
- Deep thinking
- Everything else
I can pretty much do exploration, research and deep thinking almost anytime I like and at the same time as doing other tasks or life events. So what do I mean by exploration & research? This is mainly googling for specific or random topics related to blockchain and the industry in general. By searching for specific information I’m usually trying to find out more about the concepts of pieces of technology that I’m interested in. I don’t usually want to know the implementation details or the nuts and bolts at this stage just the high level concepts. If I’m searching for random things then I’m usually just looking for inspiration and to balance the most crazy things I can find with the most practical and useful things.
Next comes deep thinking and this is where I take a few approaches to problem solving. I write down some features or software ideas I want to build and then I do some exploration and research to see if there is already some similar concepts or problems already solved by existing approaches. Then I think about how I will code the feature or idea myself.
This often can take days or weeks as I like the ideas to come from many sources. Sometimes days later I’ll just come up with something or it could be that after many days of thinking the pieces eventually slot into place. Or it might be that I stumble on a chance article or have a discussion with a friend or someone I just met on the internet.
During deep thinking I try to figure out everything I need to build the code. I might divide it into parts and deep think each part and then put them together. But eventually I get to a point where I feel I have thought about it enough and when I sit down to code I can really focus on coding and not on thinking about the solution. This massively maximises the time spent coding because I can sit down and just go. There is no period of wondering what to do or procrastinating because I’ve spend days thinking about it and I’m now raring to go on the code.
I only have limited time. I get up about 5am and either do exploration & research, deep thinking or coding. I do this until I have to start my day job and it’s usually interrupted by getting ready for work, getting the kids ready for school and making/eating breakfast etc.
Then at lunch time I’ll do some more. I will usually try to do an hour or so directly after work and then again later at night after the kids have gone to bed and we have finished any family time etc.
The other thing that I find suprises other people about how I work is that I work on many things all at once. I don’t start one thing and focus on it until it’s finished. Doing one thing until it’s finished seems like a logical thing to do. But it doesn’t work for me and I’ve tried it. So how does it work? Well when I’ve got some time to work on Axentro I just work on what I feel like working on right then and there. It might be something brand new or it might be incrementing something that I already started working on.
One of the major upsides to this is that I don’t get bored and also I can see how all the pieces I’m working on fit together and work together. It also means that when I’m close to delivering then I’m delivering many things at once which feels great. The downside is that it takes much longer to deliver something but I still have the flexibility to focus on one thing and push it over the line if I want.
I’ll write in more detail about working on many things at once and my experiences with that.
One last thing which people find suprising about how I work is my use of micro time. What I mean by that is I use those spare 5 minutes I can find to push something forward. Sometimes I don’t feel like working on anything and I need to chill but other times I’m happy to work for 5 minutes. Those 5 minutes add up over the days and weeks and many times it’s been a 5–10 minute coding session that has finished off a big piece of work or solves a big problem I have had for several days. Usually it’s 5–10 mins while I’m waiting for the kids, or waiting on something else. This is also a great time for deep thinking. Anyway I hope you found this insight to my high level working ethos interesting and I will write more about it in future posts.