I wake up every day at 5 a.m., chug some coffee and head out. My 90minute commute takes me from the tiny Indiana farming community where I live to the Mendoza College of Business at the University of Notre Dame where I’ve worked as senior web developer since December 2014.
When I finally get to work I find myself surrounded by some of the most brilliant people in the world. My cadre of coworkers offers me support in many forms, but the one thing that puts me alone on an island is my Umbraco craft. An Umbraco rescue chopper is very far away should I ever need one.
What follows is my attempt to share how it is possible to survive as a lone wolf in the Umbraco landscape.
Why Not Hire More Geeks?
It’s very common for Umbracians to not work at an agency
While I work for a very successful organization — Mendoza is the top ranked undergraduate business school in the country — growing the team isn’t an option. I’m not an anomaly — it’s very common for Umbracians to not work at an agency. Software doesn’t generate revenue directly at Notre Dame, and because it’s a support to the main business, the budget for web services remains fairly lean for good reason.
With this in mind, let’s get into some survival skills.
Combine Your Hats
I’m responsible for our organization’s public facing websites, which involves everything from the web stack to the business logic to the presentation. That equates to wearing a lot of hats.
Traditionally, I had conducted much of my cloud hosting business on Amazon Web Services (AWS). AWS is amazingly robust, yet I felt like I still needed to wear my Net/DevOps hats more often than necessary. Periodically, I would have to make sure my OS/App patches were up to date (both Windows and SQL). I would have to set up my IIS and install the missing modules from time to time (URL Rewriting, etc). Often I would have to deal with the fact that my hard drive is about full.
All I really wanted to do was code and make something cool. The drain of the menial tasks that came with being a server admin took away from the coding time. When Azure Websites became an option, I could finally get rid of the NetOps hat and reduce the size of my DevOps footprint.
Now I am deploying directly from GitHub without the cost and management of a VM or build agents (TeamCity, Octopus Deploy).
My tip here is to leverage the modern hosting solutions to free up your time to do more application development. If you can, use Azure Websites or Umbraco as a Service (UaaS).
Get Social/Share Your Pain
Five years ago I moved into a small town with a population of 8,000. As a result I’ve had to learn to make my own opportunities by networking. The best way to get (and stay) connected is to get social.
If you didn’t know, there is an Umbraco Slack channel. Slack allows for realtime interaction with developers who share your pain and would love to help you get through your specific flavor of grief. It’s also a great way to tune into the wave of daily information from Twitter and Our Umbraco. Anyone can signup for free at: http://umbracians-chat.herokuapp.com/.
The best way to get (and stay) connected is to get social.
Facebook has never really taken off with Umbraco and that’s OK. The main social platform for Umbraco is Twitter. You should have an account even if you don’t plan on tweeting. This way you can can tune into the movers and shakers in the Umbraco community. Who are these movers and shakers? I’d suggest you start with some of the rockstars in the community:
- Niels Hartvig (Chief Unicorn) https://twitter.com/umbraco
- Lee Kelleher (MVP) https://twitter.com/leekelleher
- Matt Brailsford (MVP) https://twitter.com/mattbrailsford
- Jeavon Leopold (MVP) https://twitter.com/crumpled_jeavon
- Jeroen Breuer (MVP) https://twitter.com/j_breuer
- Bob Baty-Barr (Blackbelt of life) https://twitter.com/bootnumlock
- There’s many many more to discover!
You can also just follow the #umbraco hashtag as the community does a great job of tagging their posts.
Solve a Problem Then Open-Source It
The number of robust free packages in Umbraco is quite impressive. Developers have their own motivations for creating free plugins, but I do it to keep my skills sharp and share solutions with people I may never meet. Hosting an open-source project is a great way to test whether or not you have a viable idea. Often, your users will help fix your bugs and point out alternative ways to handle some logic. You should solve a common problem then create an open-source project on GitHub. Who knows, maybe a large company will use your solution!
Efficiency Is as Good as a Junior Developer
Any workflow that makes you more efficient is a good workflow
Since growing the team is not in the immediate future for most lone wolf developers, efficiency can be used in place of a warm body.
Before I get into specific technologies that will help, please note that any workflow that makes you more efficient is a good workflow. Don’t get wrapped around the fact that another developer does it one way and you have to copy the process. Create a workflow tailored to fit your needs.
My workflow loosely works like this for any new plugin I create:
- Set up separate project (outside of any Umbraco project)
- Edit code (JS, CSS, C#)
- Grunt automatically does the following:
- Compile LESS to CSS
- CSS copied to target project
- Build DLL
- DLL copied to target project /bin
- JS concatenated
- JS copied to target project
- Repeat step 2 (and step 3 happens magically) until project works as desired
- Tell Grunt to create packages (with a single command)
- Create a Nuget package
- Create an Umbraco ZIP package
- Repeat step 2 until happy with package
- Tag project with version number
- Release to the world
My workflow allows me to put most of my efforts into creating the logic of the package with very little time on the packaging. It also allows me to make small changes without incurring much overhead in rebuilding the projects.
If you’d like to use a similar workflow, I suggest investigating NodeJs and stealing some code from my open-source projects. Credit to Tom Fulton for sharing his workflow with me which enabled me to customize it to my liking.
A good starting point would be the Archetype project located on Github. https://github.com/imulus/Archetype/blob/master/Gruntfile.js. You can also checkout a writeup I did in the “Learn Umbraco 7” project.
Resistance is futile
Assimilate the stakeholders into the Umbraco collective
There are others in my organization who have web development skills. The official web development stack to use is Rails. However, the leaders in my particular area of the organization decided that the Microsoft stack was a new direction they would like to go. I took this as an opportunity to assimilate the stakeholders into the Umbraco collective. I found that making a case for Umbraco was easier than I thought thanks to the efforts of both the HQ and the community.
Just five years ago, coding looked very different than it does today. Standards and tools were extremely messy. In today’s environment you can survive as a lone wolf by using more efficient workflows, getting social (globally), sharing your work and leveraging technologies that combine traditional roles. In order to ensure future success with Umbraco, make sure you keep the stakeholders aware of the ever-changing landscape of Umbraco and above all, be able to adapt out in the wild.