Categories
Blog Post

Solo Founders

Vishnu Mohandas‘ blog post Persisting as a solo founder immediately resonated with me, after discovering his content on the HackerNews front page.

After 2.5ish years of building my own business (to date), I can acutely sympathise with each of his challenges and observations in designing, developing and selling his vision.

Overwhelm is never far away, and given a foothold, can quickly unravel the carefully balanced mindset required to sustain, let alone succeed.

Tracking numerous technical threads across clients and products, practicing rapid decision-making, managing relationships old and new, maintaining a continuous learning mentality, juggling financial and time pressures… All the while remaining productive in your primary creative and technical disciplines… Bringing a product or business to the marketplace is not for the faint of heart.

Once I accepted the loneliness and the lack of a financial cushion I had to figure out a way to keep building without burning myself out.

— Vishnu Mohandas

One of my biggest learnings was to embrace the need to quite deliberately manage myself, as one would expect a dutiful leader to manage his troop.

Some of the lessons can feel so simple, yet hold the most value. My key learnings to date have been:

  • Ask for help when you need it: It’s a fallacy to think you will go far alone, so practice mutually beneficial collaboration frequently
  • Design dedicated downtime: This will never happen by accident, so ensure proper recovery and previous headspace
  • Learn to respectfully say “no”: If you’re ambitious and productive it comes natural to want to take every opportunity. But know that overwhelm can quickly revert good intent to a disservice and ultimately disappointment.

It took me approximately one year to recognise and truly internalise each of these key learnings.

The spark of inspiration fuelled by sincere ambition can ignite a beautiful and compulsive momentum. Though unchecked speed can quickly become unstable and unsustainable.

Remain conscious of your workload, capacity and well-being. Favour patient, sustained growth with timely bursts of effort for meaningful returns. Just because you could do more, doesn’t mean you always should.

Categories
Blog Post

Learning to Learn Again

Taking comfort in the familiar can be especially alluring in the fast-paced programming landscape. It took me a long while to recognise how important (crucial, even) a discipline it is to practice continued learning and further technical understanding and practical experience consistently.

I didn’t fully appreciate this until I was 3-4 years into my career as a developer. My comfort in repeatedly delivering WordPress and LAMP solutions to satisfied clients allowed my hunger for learning to stagnate.

Only once I began freelancing in earnest I recognised how rapidly commercial development demands evolve. WordPress, Drupal and Joomla were in decline as the rise in demand for JavaScript frameworks steadily inclined.

I was surprised to see how quickly my chosen niche of frontend development had evolved to embrace React (and later Vue) libraries, while maturing frameworks like Meteor and Angular encouraged new ways to build and scale. It was obvious producing responsive HTML and CSS templates wasn’t going to cut it any more and that it was time to roll up my sleeves again.

In early 2017 I adopted React as my framework of choice, as residual community frustration at the Angular 2 rewrite remained, while Vue hadn’t yet achieved the same maturity. Little did I know just what frontend development had evolved into.

“Learning is not attained by chance. It must be sought for with ardor and attended with diligence.”

Abigail Adams

First, I had to get up to speed with the Node.js ecosystem, and how to use npm for dependency management. Then I had to come to terms that I really didn’t know JavaScript as well as I should, and that I had a whole new standard to catch up with (ECMAScript 2015), overwriting years of jQuery muscle memory.

While I appreciated I was not building atop of the strongest foundations, I had a clear ambition and persisted through the initial growing pains.

At the time of learning, Create React App was considered bloated and excessive. Accepting this, I spent many a frustrated hour struggling to interpret, author and extend webpack config files. Seemingly simple requirements like getting SVG images to load or leveraging Sass syntax cost me hours upon hours.

Basic projects bloated with tens of thousands of dependency files. Every package revealed a new API that required substantial studying (or mindless trial-and-error). React Router v4 stripped legacy StackOverflow questions of any relevance. State management was an alien concept.

At a granular level, simple singular tasks could generate incomprehensible blockages, garbles of new vocabulary and rabbit holes of GitHub issues. Top level foundation assumptions such as separation of concerns were challenged as HTML is written in JS with CSS applied inline.

It even took me an embarrassingly long time to understand that comments needed to be wrapped in curly braces to take effect…

Education is not the filling of a pail, but the lighting of a fire.

W.B. Yeats

Looking back, the challenges were considerable, given my lack of core understanding and naive, unstructured approach to the prospect. Disciplines once familiar became estranged, forcing much unlearning and relearning.

Although under-appreciated at the time, I gained lasting value from that period. I strengthening many core development soft-skills, including interpreting official documentation, tracking community issues, rapidly prototyping prospective solutions and properly managing version control.

Reflecting on this portion of my journey affords me a new appreciate the sum of all those individual challenges, struggles and minor victories.

πάντα χωρεῖ καὶ οὐδὲν μένει

Heraclitus

Today I find myself embracing the new and unfamiliar with much proactive enthusiasm. The JS ecosystem continues to evolve rapidly and I try to engage with interesting new tools, paradigms and best practices. A core reason of starting this blog is to document my ongoing learning and capture lessons that would otherwise go unrecorded (or stagnate in an almost-finished state).

Categories
Event

Jamstack Conf 2020

Today saw the Jamstack Conf 2020, scheduled to be hosted in London, successfully pivot to an exclusively livestream delivery.

Like All Day Hey!, this event was hosted by Phil Hawksworth of Netlify, who continued to compère with aplomb, despite the constricted setting and digital audience.

Jamstack Conf 2020

While a digital-only setting can’t possibly replace the atmosphere and engagement of a hosted event, I do hope the success of such events convinces hosts and sponsors to consider more dual-delivery events in the future. Living kinda outta-the-way of major cities, I would totally pay for more online-only access to major conferences. It’s empowering to be learning from the frontline of industry discussion while hanging out with tech peers and leaders, even if it’s just in a digital capacity for now.

The Jamstack Conf Virtrual Keynote speech was delivered by Matt Biilmann, CEO and Co-Founder of Netlify. He summarised the opportunity for modern JAMstack platforms and tooling to unburden developers from intricate infrastructures and multi-discipline demands. Instead he offered how abstracted, opinionated and optimised hosting and deployment platforms can promote “best practices becoming common practices”. The introduction to Build Plugins look to extend this paradigm further still.

Laurie Voss, a Data Analyst at Netlify, followed with State of the Jamstack Survey Results, presenting summaries gathered following an industry survey of 3,000 developers. The slidedeck is available online, capturing the latest opinions and trends on development and delivery within the JavaScript ecosystem.

I was also interested to hear Renaud Bressand from Prismic announce Slice Machine functionality to introduce an open-sourced library to easier design bespoke components and associated functionality. With CLI tooling to bootstrap component development, it is available for Vue / Nuxt today, and work continues on the upcoming React implementation.

As a footnote, the Hopin platform was the best I’ve seen yet for online conferencing and networking.

Categories
Blog Post

Blog (Re)Init

I have always harvested the ambition to build and maintain a blog but found the task forever tumbling down the perpetual ToDo list.

I could rarely justify taking the time to author my own content for publication, as ever-urgent, competing priorities jostle for time and attention. There were always too many other things to do.

The change of pace enforced by the COVID-19 lockdown has afforded me some welcomed additional headroom. It is without doubt a privileged position given the wider challenges and outlook. While I wish circumstances were different, I am thankful to embrace the opportunity to slow down and reflect with greater intent.

Contrasted against my typical frenzy of doing too much just-in-time, the result is I feel a greater sense of control and inner calm that is warmly welcomed and enjoyed with enthusiasm. While obvious trade-offs and new frustrations must be navigated, it’s been a healthy exercise to contemplate my modus operandi.

One leading, recurring reflection that has arose is my desire to write and publish more.

I must credit Tim Casasola for his article Why does writing matter in remote work? for sparking my action. His post neatly reflects on both the functional requirement of writing to fulfil remote obligations. But his contemplation of writing well as an advantage is what really provoked me. Considered writing has the ability to encourage more effective work execution, empower engagements, and open new opportunities.

Incentivised

With this newfound intent to start a blog, I’ve been tracking more conversations, rebuttals, and technologies related to the topic. A fatigue for the distraction and distrust of the dominant social platforms seems to be contributing to a resurgence of new-old technologies in the tech community, such as simplified development stacks, minimal CSS frameworks and calls for the return of Really Simple Syndication.

An ambition to extend my understanding and application of the JAMstack gave me reason to build and manage a personal website for my professional development.

From a personal development perspective, I am already writing frequently. Not only in my day-to-day work, but also in recording my personal thoughts and feelings in a (mostly) daily private blog. Only recently have I considered the additional value in publishing instead of simply recording.

Publishing to a public forum forces a new perspective. The mental exercise of threading interesting narratives, theming experiences and identifying key learnings is not only personally empowering, but may also produce value for others.

Considered reflection promotes forward momentum.

Categories
Event

All Day Hey! 2020

One of the unexpected-but-welcomed benefits of living in a locked-down world is having the majority of tech conferences move to a digital-only distribution.

Today I attended the All Day Hey! 2020 conference, currated by Josh Nesbitt and Harry Roberts, that is traditionally hosted in Leeds each year.

All Day Hey! 2020

Hosted by Netlify’s Phil Hawksworth, the event featured a wide scope of design and technical talent, kicking off with Vitaly Friedman of Smashing Magazine presenting on Smart Interface Design Patterns. I really loved this UI/UX focussed look at modern best practices and exceptional creativity in responsive design, and some really unique design concepts. Some highlights included:

The extremely creative technologist Charlotte Dann followed by presenting the story and tech behind her custom jewellery production startup Hexatope.

Microsoft Cloud Developer Advocate Asim Hussain closed the show with his presentation Principles of Green Application Architecture Design. He discussed the responsibilities the tech sector shares in contributing to a sustainable environment. Writing efficient code to run on optimised infrastructure is one of the leading ambitions of his initiative Princples.Green that is helping define Sustainable Software Engineering, and is something I will continue to track.