I always thought that as a developer, programming would either get less exciting with time but I prove myself wrong time and time again. In fact, I have been enjoying feeling like a beginner where putting time and effort into new technologies feels exciting and rewaring. So let me tell you about my year and how things went.
I should probably mention that this is more for me and to reflect back on my own accomplishments rather than a guide or an article for others to follow.
My 2019 Goals
My goals for 2019 were actually rather simple: focus on writing an app and become an instructor. Did I accomplish either of these? Nope, not really.
But I did get pretty far with both, at least in my opinion.
Building a side app
I wanted to finish building an app I’ve been working on for quite a while called Skok. Skok is a photo management app. Here’s the kicker: it works. Here’s what you can do with it right now:
- scan a directory for photos and populate a database with them
- look through a gallery of those photos
- see the “photo of the day”
- identify duplicate photos
So what’s the problem? Polish and keeping it up to date. I just don’t have the drive to do it. Over my July goal of doing a 30 days of commits, I refactored all of the ugly code, wrote a solid test coverage for the app but…then I got tired of it and went to do other things.
Life is very full right now (in good ways and not-so-good ways) and thus I dropped it when I got almost there.
By the way, if you want to see a quick walkthrough of that application, I have a video about Skok that I made early on in the year — before the big refactor that I did in the 30 days of commits.
Becoming A Dev Instructor
Did I become a full-time instructor anywhere? No. Did I become a part-time instructor? Also no. Wait but did I release videos on my YouTube channel with a course? Also no.
I made a lot of videos this year, more than any other (I think?) and they resulted in an amazing number of views. I’m up to 730 subscribers right now and I’m happy as heck with that.
10 teeny-tiny developer resolutions.
At the beginning of this year, I posted a fun article called 10ish Teeny-Tiny Resolutions to Become A Better Developer in 2019 so let me update on that real quick, too!
1. Accessibility Course
I took it! And I became a proponent of accessibility at work and have been helping build things out with accessibility in mind. From color contrast, to using aria labels, and more. It’s been tough and there still isn’t much to show for it but being aware of the issues and solutions has made it easier to bring it up at meetings and to push for it in code.
2. Catch up with an ex-colleague
Definitely did that. I reconnected with an old co-worker and we definitely chat quite a bit more than we did last year.
3. Clean your keyboard
I took out all of the keycaps from my keyboard, I cleaned everything out, and put it together. It was heinous.
4. Watch someone use an OS you’re unfamiliar with
I kind of did that. I’m using Linux + Windows full time right now but I rarely venture into the realm of MacOS. I do rotate browsers and I recently switched from Android to iOS to see where iOS has progressed to in the past few years
5.Watch an online talk on a technology you have been interested in
I watched a ton of GatsbyJS stuff
6. Learn about RSI
7. Learn 1 new power-user feature of your code editor
I switched entirely back to VIM. But I learned a new power feature in
tmux which I also switched back to. I use the
ctrl+b d to detach from a session. I use this so that I can save what I was working on for work, close out the terminal, and call it back up the next day.
8. Learn Flexbox or CSS Grid
Done! While I still need to look up the properties, I’ve got a pretty good grip on how things work and how to make a quick layout from scratch.
9. Publish a package
I published the electron-transponder from all the work I did with Electron. I renamed it to
electron-communicator but kept the package name anyways.
10. Enjoy the new year
I had a pretty decent year. 🤷
What did I actually do and learn in 2019?
React 100% forward
At my job, we ended up rewriting major portions of our application in React. It’s been fun and helped me get used to the React paradigm. It turns out, following Reacty people and subscribing to React-related newsletters has its pay offs because jumping into it, I had no issue running around and doing what I needed to do. — even using Hooks once I sold everyone else on the team on them.
What I did find, unfortunately, is that React libraries are still not of the same caliber as Angular’s built-in features and libraries. Angular kind of found all of the weird and obscure edge-cases and built tooling around it. While React library owners still tend to rule with an iron fist and yell “You’re doing it wrong” or “Build it yourself”.
Two very good pieces of feedback that we’ve used as fuel to rip out 3rd-party libraries and handroll our own solutions.
GatsbyJS All The Way
It took me quite a while to get into Gatsby. It just did not make sense to me at first. When things finally clicked for me, I built two separate Gatsby blogs, then I submitted a PR to a Gatsby plugin, and had a lot of fun with it.
Despite the initial hard learning curve, when things got to work, it was very fun to add new functionality, make changes to my blog design, and to actually write. If you want to, check out my Thoughts on the Grave of the Fireflies movie which forced me to add image support.
It also prompted me to write my NaNoWriMo in a format that would work with Gatsby so I could potentially write (or use, if it exists) a plugin to transform Gatsby content into an ebook. The very wild thing is that this is possible! I have…so much to say about Gatsby but that’ll be for another day.
One thing that surprised me this year is that without any goal to do so, I managed to write quite a few blog posts this year.I wrote around 18 posts (some questions) — which is a little out of my usual scope. And that’s just on my dev.to profile page.
To add onto it, I wrote 2 shorts stories and 2 articles on my writing blog. I edited good 15-20K words of a book I wrote a few years back. And I’m finishing up a 50K word NaNoWriMo in November (probably finished when you read this).
My total views on dev.to alone was around 60K views…which is pretty awesome 🙂
Skok & 30 Days of Commits
In 2018, I did an event called the Shippening along with a few other developers. We decided to spend the time between Christmas and New Year’s to try to build a shippable product. Most people failed it…well, because 3 days isn’t a lot of time.
Anyways, I decided to use the Discord we started to do another events: 30 Days of Commits. The idea was to commit once a day on a project that you wanted to work on. I think it worked quite well!
I worked on my project Skok, published a node package out of it, and wrote tests to cover most of the features in the app. I was pretty happy with the outcome — though I completely abandoned the project! Again!
Back To Linux…
At the beginning of the year, I shifted all of my development to Linux. And now, at the end of it, I shifted all of my computer interactions to Linux and my Windows machine runs as a media server of sorts.
It’s pretty amazing. I got a new laptop, the Thinkpad T480, and I set up Ubuntu on it from scratch — which is actually weird for me because I’ve been predominantly an Arch user for the past several years.
As soon as I installed it, I switched to using i3. Then I got into ZSH (which I’ve been hesitant to use), I started to use VIM again and abandoned VS Code, then I got into Tmux…and I spiraled further and further into the Linux ecosystem.
Every year, I get less and less enthusiastic about goals, mostly because those goals only apply to the first month or two of the year and after that life goes off rails. Not necessarily in a bad way, life and goals simply change.
I still try to set some because when I lose my focus, it’s easier to go back to a list of goals rather than start from scratch.
Ok, here are a few ideas for (tech) goals:
- build a custom keyboard from scratch
- try to build something in Rust
Custom Keyboard From Scratch
This has been a low-key goal of mine ever since I got into mechanical keyboards. I’ll be getting my first one sometime soon. I was really intimidated by putting my own together until I got test switched in the mail and hooked up to my Arduino with a few spare wires.
I figure that adding switches to a PCB, soldering them in, and then putting the PCB in a case will be a nice weekend project.
Rust has been on my radar for a bit. I’ve been a fan of some of the newer languages and have tried them out and even built apps on top of them. I currently use Elixir at work and I still have production Golang running somewhere.
Rust has been the natural next step in my language-learning. I succeeded at doing some Rust exercises (can we please stop using the word
koan? It’s been appropriated from a zen practice by the same name).
Anyways, still a long way to go for me
I honestly think this is where future is and unlike a lot of tools back in the day that tried to provide the no-code experience (Dreamweaver for instance), it lacked the data component. Webflow takes web design, web development, and data modeling and smashes it together to create a robust no-code web editor.
I’m psyched because I was super into Dreamweaver and Fireworks and Webflow is miles ahead of those. I was also a heavy Photoshop/Illustrator user and guess what? Webflow feels a lot like that, too. Finally, I did a bunch of work in Unity, Cinema 4D, and Blender…and again, Webflow captures the feel of those as well.
I stopped using all of the software above a while back because “code was the way” for so long that my specialization had no reason to broaden to use that software. Webflow changes that paradigm on its head 🙂
My top 2019 Articles
- My Top 10 Programming Proverbs
- Switching from angular2-template-loader to @ngtools/webpack – this is more fun to read as my journey through Webpack/Angular hell 🙂
- The Definitive React Hooks Cheatsheet
- Prototypes Don’t Get Thrown Out — Write Tracer (Bullet) Code Instead
- My Personal Git Tricks Cheatsheet
- How My VIM Setup and Open Source Code Ended Up In an AAA Video Game
- My Favorite Linux Tools