Being a developer can be overwhelming. Staying on track means you need to organize and manage time wisely so you grow and learn as a developer.
Staying on top of time
I'm the worst when it comes to self-discipline. When I say that I will do something starting tomorrow, I probably won't. Instead the method I use to organise and plan my time at work is the 'habitual time-boxing' method. In time management, time-boxing allocates a fixed time period, called a time box, to each planned activity or task. Several project management approaches use time-boxing. It is also used for individual use to address personal tasks within a smaller time frame. It often involves having deliverables and deadlines, which will improve the productivity of the user. The tools I use to achieve this are: Todoist and Google calendar. Todoist is a to-do list software with hundreds of integrations, one of which is Google calendar. By creating a new task in todoist, your Google calendar is updated automatically and vice versa. This is a great tool to use when your planning sessions are over, and you have tasks to work with.
Using your time to contribute to the project
Recently, I've been working on designing new architecture for our project. We are focusing on developing micro-services and service meshes. I had the task to research and make a prototype using GRPC. GRPC is used in last mile of computing in mobile and web client since it can generate libraries for iOS and Android and uses standard based HTTP/2 as transport, allowing it to easily traverse proxies and firewalls. There is currently work underway to develop a JS library for use in browsers. Google itself is also transitioning to use it to connect micro-services. It was very interesting working with these technologies.
Time for growing and growing and growing
As a developer, you have to stay up to date with the latest and greatest in technology. Even if you won't work with it, you have to at least know what it is about.
I'm personally a huge web development nerd and like to keep up-to-date with new web technologies. Currently, I'm looking into GraphQL which is said to be the new standard for web development. GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. It gives the client side the power to ask for exactly what they need and nothing more, making it easier to evolve APIs over time and enabling powerful developer tools. So, this is something I'll continue looking into.