Every year I make goals. Most of my goals are focused on work, but I do squeeze a few personal goals in as well. Last year I publicized my 2018 Dev Goals. So, before talking about my 2019 goals, let's lookbehind at 2018.
I published the early release of BaseCode on July 13, and the full edition on September 12. That's not entirely true, the final Exit chapter was published December 3.
I had code samples, resources, and the practices in my head well before writing BaseCode. Even with all this ready, it still took longer than I expected. For me writing wasn't the hard part, it was putting it together: proofreading, formatting.
Another delay we're all the add-ons. It would've been better to have more complete for the initial release. When I released BaseCode I sold different kits. This put a lot of pressure on me to finish quickly. Not necessarily from others, but myself.
BaseCode didn't do as well financially as I expected. I still believe BaseCode fills a gap for intermediate developers. So there is an audience. But marketing is another beast. I did better this time with a newsletter and tweets. Where I missed the mark was the release. Particularly around having influencers help me reach a larger audience in a focused, timely effort. Part of this was intentional though. I know others were willing to help, but I wanted to see how much I could do on my own. Ultimately sales for these types of products just have that initial pop, but there can also be a long tail. I expect BaseCode will bring in sales over the next few years and might eventually reach it's financial goal.
I didn't complete this one. The reason I chose Python was for data processing. My intentions were to use it for an investments analytics tool I never got around to building. Otherwise I had no need for using Python day-to-day and hence why I didn't reach this goal.
Python is something I may still learn someday, but it's going to have to come out of necessity. There's really no reason for me to force spending time learning it in the face of my other goals.
I did add more shifts in 2018, I have to be honest that I didn't technically expand the services in the way I wanted. This is still in progress, but it won't make the cut for 2018 and will carryover as a partial goal to 2019.
In particular, I wanted to add a subscription to allow users to run shifts as part of their continuous integration tools. This requires subscription billing, additional Shift, web hooks, API keys, capacity. So it is something that will would have been difficult to complete entirely in 2018 regardless. It may even be something that carries on longer than 2019.
In 2018 I spoke at 13 conferences. 13! I crushed this goal. There won't be another year like this. While I enjoyed every conference, it was too much. In 2019, I will be more selective about which conferences I submit too, what topics I submit, and ultimately accept - ideally only speaking at conferences which directly relate to my products and services or a desirable location.
Just like learning Python, I failed this one pretty epically as well. In 2018 I didn't even increase my Twitter followers more than 2017. Currently I'm barely halfway to 10k with 4,800 followers.
Reaching this goal requires a constant presence and well-crafted content. Although I always try to do the latter, the former is where I failed. This is something I will continue to focus on, but likely without the pressure of being a goal. I'll leave it as something that will hopefully happen organically.
It's been several years since I've redesigned my blog. It's looking pretty outdated. This has led me to posting content on other sites like Dev.to and Medium instead of first posting here. I also plan to switch the domain to jasonmccreary.me which I picked up during a Black Friday sale.
Admittedly, this is a pretty easy goal. But it's good to start with some quick wins to get the momentum going for the year. I've found when I try to start the year with a large goal, I spend all my effort on it.
As I mentioned before, I plan to speak at conferences less. But speaking is something I still enjoy and want to continue. I think I'm good at spotting gaps in knowledge. It's usually not the latest fancy code or trends, but often more fundamental topics which need attention. These get overlooked, but in reality are the things we use every day and will carry us farther.
In 2017 I ran a few online workshops. Most were free, some were paid. I plan to hold a few in 2019.
Although I primarily contribute to the community through education, I want to contribute through code as well in 2019. The obvious candidate is to contribute more to Laravel. I have a few areas of the framework I'd like to give some attention. So I plan to learn more about the current code and see where I might be able to make a few contributes.
I've been a firm believer in separation of frontend and backend - particularly through APIs. I think this is and established trend and one that will continue. In 2019, I plan to go "API first" on any new project and potentially refactor some existing projects as well. This doesn't not necessarily mean single page app, but I have an opportunity to learn more technologies such as Vue, React, etc.
The underlying intention of learning Python was to build an investment analytics tool. That tool has pivoted into Optionality. Building Optionality has been an intentionally slow, nuanced MVP process. However, this is a tool I plan to use personally. While I plan to honor the MVP approach and share my progress, it is something I will nonetheless build. If nothing else, to scratch my own itch. Just like a quick win, I believe you need a pet project as well.