I have surrounded myself, virtually, with successful creators, developers and entrepreneurs. The blogs I read and the podcasts I listen to are full of people who have found, or sometimes carved out, a niche.
Some deliberately chose an under-served area and went deep, gradually building up a reputation and an audience. Others have “laddered up” from one opportunity to another, refining their skills as they go.
I look at what nearly all of them do and think to myself, “I could do that”. As best I can tell I am smart, articulate and capable.
Capable of writing. Capable of developing. Capable of designing interfaces that make sense. Capable of thinking strategically, weighing risks and making decisions. Capable of learning just about anything. Capable of teaching others.
And yet there seems to be one big thing I am incapable of. I am incapable of staying focused on one thing for more than a few weeks. Incapable of coming up with a long term plan and sticking with it. Incapable of mastering a topic once I’ve got the basics (or at best the intermediates) down pat. Incapable of finishing projects without external motivation.
I’m a big believer in focusing on your strengths, building them up until you stand out. And yet I wonder, are there some weaknesses that are too big to ignore? Can a big enough weakness hamstring a person, negating any strengths. Should I focus on my strengths or try to overcome my weaknesses?
But maybe it’s a moot point. Perhaps both approaches require a level of determination and grit that I’m not capable of.
And so I drift. Accumulating shallow learnings. A jack of a great many IT trades. A master of none.
But that’s okay isn’t it? Not everyone can be a master. There are a lot of people happily existing at levels below master. There‘s hobbyists. Amateurs. Prosumers. Juniors. Apprentices. Professionals. The proficient. The competent. The ordinary.
Perhaps I need to stop surrounding myself with the exceptional. They are, after all, exceptions. Maybe I need to settle for being ordinary.
Or maybe I need to look for different opportunities. To look for people or places where versatility is what’s needed. Perhaps that’s on smaller teams that don’t have the headroom for exceptional experts? Or finding a partner with complimentary strengths and weaknesses?
I’m not sure what the answer is. I’m not even sure I’ve figured out what the question is.
Looks like the (unedited?) videos for Railsconf 2019 are up for the 1st and 2nd of May…
Makes Rubyconf AU 2019 stand out even more for getting the edited videos up the same day as the talks!!!
Good article on delegating (technically forwarding) in Standard Ruby, in Rails or with a third party gem for more control:
Today I learned Transport NSW has been trialling on-demand public transport!!! Looks like a local but public Uber Pool to get people the last (or first) “mile” from/to existing public transport. Very cool!
I’ve never developed for Android, I‘ve never tried “Reactive” programming and I’ve only used Java in uni classes but I enjoyed reading thoughtbot.com/blog/demy…
The basic concepts reminded me a little of Key-Value Observing in Cocoa on Mac
Just found some old notes I took about learning, although I’m not sure of the context. All of it looks useful but the things I highlighted are still things I need to learn.
Good post (as usual) about Microsoft, Zoom and Slack by Ben Thompson: stratechery.com/2019/micr…
If he is correct, I don’t think Microsoft will be winning any new customers with Teams. It’s clunky, painful and feels “enterprisey”
I was working with the Campaign Monitor API (https://www.campaignmonitor.com/api/) today.
It works but I don’t love that their gem (http://campaignmonitor.github.io/createsend-ruby/) keeps returning Hashie Mashes instead of “real” Ruby objects. I might be missing something but I kept having to use parts of the Mash to fetch additional Mashes which then contained the data I was after. It would be nice if I could retrieve the “parent” object and then lazily load child objects as I access them.
On that note, the property names were quite inconsistent. Sometimes they would be ruby-like but then other times I’d have to write things like lists.map(&:Name) or client_ref.ClientID.
Lastly, I didn’t like that the API offers almost nothing in the way of filtering or searching when retrieving results. It felt like every time I wanted to do anything I had to iterate through a whole list (possibly across multiple pages) until I found the result I was after.
Maybe I’m spoiled by how developer friendly most Ruby code is but it felt a little like this API and the gem were just slapped together so they could tick off “RESTful API” and “Ruby wrapper” on their feature list checkboxes but without really thinking about the end user of the software.
📚 I ended up enjoying the Fire Sermon so much I read the next two in quick succession!
Dark at times, but believable and compelling! Glad I read them!
I enjoyed the latest episode of Without Fail, gave some good insight into how Facebook became what it is
I’m really enjoying listening to Build Your SaaS. The latest episode on pricing and why “charge more” is good general advice (but only general advice) was nuanced and thought provoking!
Nice overlap between latest https://www.ted.com/series/worklife_with_adam_grant and hbr.org/ideacast/… on strengths vs weaknesses at work…
Both episodes were helpfully challenging in other areas too!
Finding #4 surprised me the most, that Google serves up basically the same personalised search results whether you’re logged in or in private/incognito mode!
📚 My holiday reading this week had an accidental dystopian theme:
Hot tip: Use cling wrap for long term cable storage
✅ cheap
✅ available everywhere
✅ comes off easily
✅ no residue
✅ all cable/peripheral types
Biggest downside is speed of application. For frequently used cables splash out on some Velcro strips

Enjoyed listening to Brittany Martin interview Sam Saffron on the latest Ruby on Rails Podcast: 5by5.tv/rubyonrai…
There’s a few things I want to investigate (particularly around slow tests) but it looks like I’ll have to relisten as the show notes are a bit sparse.
Today I learned you can run rails notes to get a report of all comments in Rails that start with FIXME, TODO or OPTIMIZE (by default):
Search is hard and people expect Google quality search on every website they visit.
We’ve been considering ways to improve search in an app at work.
github.com/ankane/se… looks like an interesting option, wrapping some learning around Elasticsearch
Good Episode of Work Life on Bouncing Back (or forward) From Rejection:
www.ted.com/podcasts/…
Timely for me as I try to go against my instincts and put myself out there a bit more
Haha! Had some fun watching this video of 3 Japanese Internationals take on 100 kids in football 😆
Coincidentally, today I happened to read two very different (age and content) but complementary articles on Code Audits:
I just listened to a great podcast episode on Managing Burnout at work.
Some really good tips on identifying and combatting burnout and its overlap with stress and depression.
It hit close to home from a previous job so I’m looking forward to digging deeper into the topic!
Under the Criminal Code Amendment (Sharing of Abhorrent Violent Material) Bill 2019 it’s now a criminal act for an ISP, CDN or hosting provider to allow someone to access violent content.
What’s next? Holding Australia Post and OfficeWorks criminally liable for pamphlets people print out and send in the mail or civil engineering firms liable for bill posters people stick to the sides of underpasses!
We don’t want OfficeWorks deciding what people can print, Australia Post inspecting every item of mail or local engineering firms folding or moving to another country but that’s exactly what this poorly thought through law is going to do to Internet companies if it’s not amended or, better yet, repealed!
🤔
YAML is too vulnerable to attacks to consider for new projects.
– Thoughtbot Application Security Guide
(As discussed on The Bike Shed)