DEV Community

Mark Johnson πŸ‘”
Mark Johnson πŸ‘”

Posted on

The staggering difficulty of being a solo developer

I started my coding journey when I co-founded an ecommerce/manufacturing company six years ago. We needed a "tech guy", and I was the closest thing we had to it at the time. Far from an expert, I built our first site on Wordpress and struggled to even get things to work.

Over time, I built up a little knowledge, bit by bit. I started wrapping my head around HTML/CSS, using Treehouse to learn the basics. When we moved our site to Shopify, I learned more through customizing our theme. It wasn't great. In fact, it was full of hacks and poorly written garbage (be nice to your former self!). It was another 3 years of slogging through the muck on my own before I would get any real code training from a human being.

I was fortunate enough to be able to go to General Assembly's full-stack boot camp. My mind was blown open when I realized everything I was missing working by myself. Having other people's eyes on my work, if only for 3 months, propelled my knowledge forward by leaps and bounds.

Since that intensive course, I've been back on my own. The struggle is real. Here are some of the things that I've found to be the most difficult as a dev team of one:

You don't know what you don't know

This is true for everyone, but especially when you're working on your own. Working on a team, you're exposed to new ideas with a much greater frequency. You'll hear terms you don't know, you'll get suggestions about a better way to do something, and you'll generally have more guidance.

Working by yourself? You're going to be flying blind most of the time. If you want to get feedback on something, you'll have to seek it out. You're going to have to devote a lot more time to research to just get to a baseline awareness of concepts.

How do you even use git?

No really, how? I can't tell you. I can

git add .

and

git commit -m "whats the point of this part"

but I couldn't tell you why it matters for me, other than I need to do it to deploy to Heroku. Obviously on a team, it's crucial. Working by yourself? Well, I'm sure there are benefits, but I sure could not explain them to you.

It's one of the many reasons any future dev hire will hate me, but it is what it is. I don't know how to use git.

It's so much easier to be sloppy

It's a constant challenge to keep your code clean, especially when no one is there to hold you accountable to it. You know deep down that your future self will thank you for tidying up, but you also have to get it done. If someone else is going to be looking at it, you want to make it so they can understand it. On your own? It's a whole new level of discipline required!

You are your own "second set of eyes"

Every developer is going to hit a wall at some point. Your code isn't working, and you just can't figure it out. If you're working on a team, you can tap someone on the shoulder and ask them to take a look. By yourself? Google. Google again. Ask a question on Stack Overflow and pray for a response. Send a tweet. Google again. Walk away. Come back. Pull your hair out. Then find that missing bracket. Rinse and repeat.

The loneliness (oh god the loneliness)

It doesn't help that my office is in a windowless basement, but that feeling of isolation comes mostly from knowing that no one else in my company really knows what I'm doing, how I'm struggling, or how to help. It's real.

Staying motivated

Team accountability goes a long way in keeping you motivated. It's something you just can't rely on when you're coding by yourself. It's up to you to make sure you get things done and ship those features.

So what can you do about it

If there was an easy fix, I wouldn't even be writing this. I can tell you what I'm working on in hopes that it will help: find your tribe. I'm lucky to live in a place like Denver where the developer community is strong. I'm making it a point to get out to events and meet people when I can (though that comes with it's own set of motivation problems). I'm also trying to get more involved in online communities like this one. The weekly #DevDiscuss twitter chat has been great to help me feel less alone!

Are you a solo developer? What are your struggles, and how do you fight through them?

Latest comments (36)

Collapse
 
mcdavidsh profile image
David

Being a lone developer is really depressing, because you have tons of projects to embark on, and sometimes you're behind in schedule because you have 10s of project backlogs. I'm looking to building a team of developers who are enthusiastic about building something.

Collapse
 
vishgan profile image
Vishwas Gandhi • Edited

Hahaha "You don't know what you don't know", so true

Collapse
 
sebbdk profile image
Sebastian Vargr • Edited

Shared office spaces are a great way to meet other developers and abuse their time.

At least that’s my experience. :)

Collapse
 
stillcompiling profile image
EzΔ«tis Mācās • Edited

My situation is different but I can still relate to this article somewhat - I work with a team but we all work on projects solo. Being a new developer, I wish we could move towards team based development just so I can see how our more experienced programmers tackle a project and get feedback on my code. It's can be difficult for other programmers do review of my code when they don't have any visibility of my projects and their requirements. At the same time, I realize I am lucky that I get to work in a team and I'm able to ask my co-workers questions and brainstorm on possible solutions when stuck on an issue.

One idea I had was to ask if anyone from my team could join a team-based web dev contest, and some volunteered so it'll be a nice practice in team programming. Sometimes if a developer is unable to find a team, they'll pair you with someone. (Example of such contests - air-rallies.org/compete/). It may be something for you to consider, to work on projects w/ fellow devs.

At the same time, thank god for resources like Stack Overflow, dev.to and the like!

Collapse
 
stseagle profile image
Simone Seagle

Thank you for writing this! I was almost always the lone software developer, and then when I wound up meeting other devs I was terrified that I was doing everything wrong. Now I work as an independent contractor, so I'm still almost always the lone dev. It's brutal. Also I have three kids so it's hard to go to meetups, but I wish I could.

Collapse
 
balkac profile image
Kral Balkizar

I exactly know how do you feel and I agree with all of you wrote in this article! I'm not completely solo developer, but in a team I'm working solo in one specific project and in addition as only Python developer. I don't have any problem with discipline like keep code clean,I'm happy for myself if it looks good:) Git? Just master, no pull request, total loneliness:) The worst is, that if I achieve something great after lot of struggling, I can't be sure, if it is really great, because nobody with more experience is not around.And the feeling that if some expert potencionally make a look to my "piece of art" and review it as a piece of crap is quite a killing:)

Collapse
 
markjohnson303 profile image
Mark Johnson πŸ‘”

Clean it up! Hopefully you find someone great that you can learn from just as much. Cheers!

Collapse
 
610yesnolovely profile image
Harvey Thompson

I've been working on and off a solo project for three years.

Definitely get out into any kind of community, actually for me I've found non-computer clubs, friends, neighbours, church, playing music really help keep things balanced.

Feedback on the project itself is harder to find, especially since I've picked a fairly niche area (probably everyone does), but on occasion tech nerds ask me how I'm getting on. Blogging and online discussion focused on the area you are working in would be the best/easiest way to get feedback, though in person is often more ... encouraging :-)

As to keeping the code clean, I'd recommend books like "Pragmatic Programmer", "Clean Code", "The Clean Coder", "Refactoring", "Test Driven Development: By Example" - I use tests to keep the code working, refactoring to keep things clean, and git / git hosting sites to keep it all organized and backed up.

I also use task/bug tracking software (Jira + Structure) to write down absolutely everything I find annoying, and to break down tasks into very small chunks (a test/code/refactor/commit iteration is about 30 minutes on average, I checked a while back). I don't necessarily fix the all the things, but it keeps them out of my head, and that means I can concentrate on the next step.

The other thing I was advised to do was to get part time contract work, so I've found a great company that let me work flexible hours together with other engineers on a completely different project. I've been able to work three day weeks sometimes. They were unusual in allowing me to retain all rights to my own work.

Fun story: Amazon, Google and Facebook keep soliciting me to join them. Once, I responded by email "so can you match my current three day working week, allow me to retain all IP rights to my own work?". The answer was "wow, err, yeah, that's a deal we can't match."

Collapse
 
markjohnson303 profile image
Mark Johnson πŸ‘”

Thanks for the book recommendations! Definitely going to check those out, hopefully the library has some of them. Are they language agnostic? Any you know of that are JS specific?

Bug tracking software is a great suggestion. I've started doing that recently as well. I didn't see the value in it for a long time being the only developer, but it's helped me keep track of things and report progress back to the rest of the company much more easily.

Collapse
 
610yesnolovely profile image
Harvey Thompson

Fairly language agnostic, from memory most of those books tend to concentrate on concepts, though they use Java or perhaps C++. I've seen copies in larger libraries and book stores.

I'd suggest looking at O'Reilly Learning / Safari - you get access to a whole heap of books (40,000 last time I looked), videos and all sorts of other things. It is $400 a year. Personally I decided books are so important, and was spending more each year (most books are $60 - $120 each), so I subscribed years ago and have never since thought about the cost.

Collapse
 
guruguy00 profile image
Ken Darling

This really hits home to me. I am a solo dev at a small company and mt only team mate is named google...

At times it feels like a black hole, and no one truly understands what I do, with a VP that thinks he can code and database. oh and the also have unrealistic exceptions of dead lines...

Collapse
 
markjohnson303 profile image
Mark Johnson πŸ‘”

Definitely relate to all of that. Hit me up if you ever need to commiserate :)

Collapse
 
inidaname profile image
Hassan Sani • Edited

Confession I skipped through to the solution πŸ˜€ the problems were familiar.

Thank you for sharing