I did an evaluation of myself late last night about where I stood as a software engineer. I graded myself on a great many things related to the development of my career and didn’t really like what I had found! Despite having been a software engineer for more than 7 years at this point, I don’t think there is really any skill category that I really stand out on. Jack of all trades, master of none really comes to mind when looking objectively back at these accomplishments and wondering what had happened. At this point, there are a list of things that I have resolved myself to get better with to really jumpstart my lagging career. The direction that I would like to take is really starting to emerge and become clearer by the day.
Areas of Improvement
These are the things which I publicly declare that I will improve on.
Programming “in the small”
Oftentimes it is the case that big companies (ones with FAANGs) will require the solving of algorithmic problems in order to be hired by the company. Do you need to work at one of these companies to be a software engineer that really kicks ass? Absolutely not, but what these things do (algorithms and data structures), is really encourage you as an engineer to take pride in your craft “all the way down.” Yes, as a senior+ engineer the majority of your day is no longer spent agonizing over how to write a specific function and if you did you’d be wasting time. However, I could use a bit more agonization (within reason) in order to improve the quality of the product that I am putting out. I will spend at least one hour a day studying programming “in the small” and resolve to give up on efforts that do not benefit me like tinkering with other programming languages.
Mobile App Development
Much of the work that I am involved in now involves some form of mobile development. Without ever being formally employed doing it, I’ve now built 2 apps and contracted on one. Google’s Flutter framework has made this intensely easy for me because it abstracts away all of the details and difficulties that I had in years prior trying to figure out how say Android worked. It would be different now if I were to re-engage with the Android and iOS worlds on a native level, but instead I vow to dive more deeply into Flutter. I have my own entrepreneurial projects waiting in the wings that will involve Flutter heavily, and by learning the framework (and Dart) more deeply I make myself more valuable in that space.
Blogging and Communication
It’s clear to me now, that this blog is actually read by people. I get messages here and there about who has read my blog and it’s always flattering to hear. Communication additionally is becoming a lost art in this world! I personally do not know of many programmers within my circles that spend the time maintaining their once vibrant blogs due to lifestyles, family, and other commitments. This doesn’t make them any less of a programmer than before, but it does take away from their ability to communicate in long-form, as one does with a blog. I vow to try to write more in 2022 as posts come up, and as I have time, because those that read through this blog deserve to get a picture of who I actually am.
Not much to say here, other than I do not have a design sense whatsoever. It’s clear to me now that my future involves building things that are customer-facing, and while hiring people that understand more of that area is immensely important, I’d like to have a say in that process. I vow to improve design skills
Scale is something that really can only be attained at a certain level. Most of us are not working within FAANG companies and therefore we don’t deal in Google scale on a day-to-day basis. As such, I don’t know personally how to scale an application or a design. There are ideas of how to do it floating around in my head but no formalized approaches on what is best. I vow to become better at scaling.
The last one, my favorite one, has to do with how I have never taken the time to really master my tools. I have spent years as a software developer and have never dove deeply into any one editor that I could then call my own. How are we as software developers any different than a mechanic with their favorite tools, or a contractor with their favorite tools? The editor is our hammer, what we use to bend the computers to our will and to write code. Having never spent the time to master my editor I believe that I have been coding with one hand tied behind my back, and I vow to fix this in upcoming weeks by devoting myself to the cult of Emacs. I’ve dabbled in Emacs from time to time but have never stuck with it. This time I will
Bonus Section: Programming Languages
I’ve spent a lot of time over the years dabbling in many different programming languages. At this point, it’s prudent for me to nail this list down to exactly what I want to be writing for at least the next year. I can reevaluate at some point, but for now this is my list
My for-profit languages
My fun languages
- Common Lisp