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
 
annejsize profile image
Jenna King • 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

Collapse
 
mykalcodes profile image
Mykal

I'm in a very similar situation! It can be super frustrating. Glad I'm not the only one (tech twitter sometimes makes me feel like it LOL)

Collapse
 
markjohnson303 profile image
Mark Johnson 👔

This post has been super reassuring to feel like I'm not the only one! Keep it up, and reach out if you ever need someone to look at something :)

Collapse
 
drawcard profile image
Drawcard • Edited

I'm a solo developer that works as a consultant to clients. While I've gotten my head around things like GIT there's a big part of it that I still don't understand as I don't get to practice it in a 'collaborative' setting often. For instance, while I can clean up an accidental push to a repo I fully own and control myself, it's harder to do that if you've pushed something to another repo with lots of other devs involved, and it's been accepted etc.

Which is one reason why I like tinkering and contributing to GitHub projects in my spare time, so I can connect with other devs and get a bit more experience that way. It also combats that "loneliness" feeling you get as a solo dev.

Collapse
 
markjohnson303 profile image
Mark Johnson 👔

Love the open source suggestion. I need to figure out how to get into that world.

Collapse
 
drawcard profile image
Drawcard • Edited

I started just by looking at projects with similar topics and interests of mine, eg Wordpress development (where I came across github.com/pojome/elementor and ended up becoming a contributor of code, after writing a feature I had on my wish list) - for me it's essential to contribute to these kinds of projects as you learn so much from them and get to give something back to the projects that help you make money.

Good luck!

Thread Thread
 
ispirett profile image
Isaac Browne

Your absolutely right. Although at times the projects you might want to contribute too can be so intimidating :/

Thread Thread
 
drawcard profile image
Drawcard

Yeah that's true. I started looking at projects that needed small things done like documentation, cleanup of typos in code, etc. and then eventually contributed more serious stuff when the time was right.

And I don't take pull requests too personally, if I submit something and it's rejected I usually try to find out why and then learn from it. If it gets accepted I thank the project manager and high five my cat :)

Thread Thread
 
ispirett profile image
Isaac Browne

Really nice !!!! I guess I will try and start like you did :). I guess sometimes the fear of rejection makes it harder to just go for it, and it ain't a win if the cat doesn't get a "hi five" lol

Collapse
 
fefernandezo profile image
fefernandezo

I'm solo developer and self taught. People want to share experiences and ideas with other, I believe that is so important to learn faster

Collapse
 
energeticpixels profile image
Anthony Jackman

Loneliness, and you dont know what you dont know are my two.

Collapse
 
ferhatavdic profile image
FerhatAvdic • Edited

Fight loneliness by going out with people. Friends, family, friends of friends, colleagues - whoever. Go to any kind of meetups to make new connections.
You can also get a pet. And take part in sites such as dev.to if you want developer dialogues (i find that they keep me on track).

Loneliness while working sucks though. You cant turn to anyone. Best you get yourself in some co-worker space, rent a desk and get around other people. These often organize things to do together as well.

Good luck.

Collapse
 
markjohnson303 profile image
Mark Johnson 👔

Luckily I've got a solid friend group and a really understanding fiance. For me the loneliness comes from not having anyone to talk to about the work I'm doing - there are other people in the office with me, but no one else coding. Hoping to solve that by getting more involved with the local code community!

Collapse
 
ferhatavdic profile image
FerhatAvdic

Can you hire a partner? In person or remotely.
By co-working space i meant a devs only space like this one we have: hub387.com/
But i don't believe you can leave your office and work from somewhere else, or can you?