50

Being the sole software developer in a start-up and also being a junior (no prior experience either) I'm in a position that is hard for me to do anything project related.

After discussing with my direct higher-up about the idea of bringing at least one more mid experienced programmer, he decided that I was enough even though I hit problems that I clearly can't solve and take more time than it is normal. Most of the time I can't deliver before the deadline because I hit a problem and the internet isn't really helping (relying heavily on it). I present different approaches and solutions but it still takes time to study and implement.

How do I improve myself to keep up with work when I don't have any example to follow in work related actions?

  • 15
    Who creates the deadline? Do you do so or you supervisors? Do they have the know how to create the deadlines? – Jeroen Jul 25 '17 at 10:02
  • 29
    You're not alone. My first real job was in exactly your position. Separately from the Workplace considerations, come to CodeReview and stop by The 2nd Monitor. It's not quite as good as having a senior programmer in the room with you, but it's the next best thing. I started coping an awful lot better once I had people I could talk to and who could teach me all the things I didn't know. – Kaz Jul 25 '17 at 10:15
  • 5
    To add to the comment above. I was in your shoes. However I set the deadlines. I always added a factor of 1.5 to my own estimate. This to account for my inexperience (in both the subject and actually making estimates like this). I was always transparent I did this to those above me. – Jeroen Jul 25 '17 at 10:37
  • 32
    "sole software developer in a start-up and also being a junior (no prior experience either)" This is the typical situation where you either quit or become a jedi via self education. It`s up to you. – Caterpillaraoz Jul 25 '17 at 12:04
  • 41
    @Caterpillaraoz - jedi it is. Quitting is for the weak. – Schneejäger Jul 25 '17 at 12:12
39

This can definitely be a very difficult situation to be in, especially as someone who is perhaps at the beginning of their development career. However the good news is that there are a lot of developers who are just like you!

When I first started at my last company I was the only developer, barely classed as a graduate as I was 'self-taught', two years later and I'm working at a level above almost all of my peers at a new company. In honesty, it's all thanks to the time I spent having to work it all out by myself to tight deadlines, with difficult technologies and awkward frameworks.

The way that I tackled my own situation, was that I got stuck into answering and asking questions on stack overflow. I started doing challenge tasks in my free time to become more familiar with the frameworks I worked with. I even started putting more time into reflecting on the weaknesses i had with the theories behind certain elements of computer science as a whole. (Including: MVC, design patterns, multi-threading, concurrency, etc.)

From what you've said your employer obviously doesn't want to spend more money than what they are currently paying you. It's understandable for companies to not commit to extra resources by getting more developers in than they think they need as they have their own financial priorities as a business. Unfortunately this can be quite a common occurrence in the industry. However you should also see this as a positive. You have the opportunity to set yourself against a challenge that not all developers get the chance to tackle.

Spend your time learning all that you can about the frameworks and technology that your employer uses, consider the kind of standards you should be adhering to in your code. Start to push back respectfully on deadlines you know to be unrealistic or challenging. You should try your hardest to have an honest and open dialog with your superior to help you complete your work to the best of your ability as a solo developer.

But the most important thing to remember is, don't let it stress you out you are obviously competent otherwise you wouldn't still be there. Take every task or problem one step at a time and figure it out as quickly and efficiently as you can. As you start to learn from google, stack overflow etc. You will find that you will get quicker at identifying issues and resolving them. You've been given a path with a steep learning curve, embrace it and become the best developer you can be!

  • 1
    I am trying to part my day in 2-4h learning on the job (doing courses and reading documentation) and 6-4h working for the project/s. Sometimes they push the deadline back but most times they want it in x days/ weeks, @digitalsa1nt – Schneejäger Jul 25 '17 at 11:55
  • @wickerman yep, there's nothing wrong with trying to break up your time between learning on the job and project work, but don't let it stop you from being flexible as well, remember that being able to adapt to changes in your work day is important as well. Getting used to this potentially happening will prepare you for agile environments. – Digitalsa1nt Jul 25 '17 at 12:33
  • 1
    Don't forget to browse Stack Overflow, too! Even if you're not asking and answering, you can learn stuff just by reading. – Draco18s Jul 25 '17 at 22:31
10

How to deal being alone in my department?

To add to the excellent answer above, I would say that you need to keep an eye on not just what your company is currently using, but where the industry as a whole is heading. I won't go into specific technologies here, but you can easily to a job search and see which technologies are the most marketable outside your current organization.

If they are not using something that is current, you should work to slowly bring some of it in. If for some reason your employer is not open to it, you need to focus your free time on marketable skills.

Oh all right, I will name a few: JavaScript ( React, Node, etc. ), C#, Ruby On Rails, SQL Server or MySQL, NoSQL, are just a few marketable technical skills to have.

In your position as the sole developer, one of the advantages you have is that you should have a good amount of influence over what technologies are used to get the job done.

All of this is leading up to my main point, and that is this won't be your last development gig, so be sure when you're ready to go, you have the skills necessary to easily move on.

  • 2
    Very much agree with keeping an eye on the direction of the industry around company technologies, good catch. – Digitalsa1nt Jul 25 '17 at 12:31
  • Sometimes.....people drive me cray cray. Why the downvote? Down-voter care to explain? – Mister Positive Jul 25 '17 at 12:34
  • 2
    @MisterPositive I'm keeping an eye on the technologies that are marketable, and trying to bring this to the company. – Schneejäger Jul 25 '17 at 12:46
  • 1
    @wickerman Good move on your part. Remember its up to us a developers to keep ourselves marketable. – Mister Positive Jul 25 '17 at 12:47
  • 3
    @wickerman While you're focused on your marketable skills, its worth noting that this is very beneficial to your employer, as well. If they question why you're focusing on those skills, mentioning that these are technologies that they're going to have the easiest time finding to fill any future additional positions is completely valid. – Beofett Jul 25 '17 at 18:35
7

I am in your shoes. The answer is communication.

If you are a junior developer on a tight deadline, you have much to lose by not communicating, but nothing to lose by communicating too much. They cannot fire you, they cannot even be mad at you for pointing out where your problems are and why your deadline is too tight to fix all these problems.

Whenever you have a deadline, problems need solutions long before the deadline is hit. If you don't get any further, and internet search doesn't help, ask the question at stack overflow, ask the same question in a technology-specific forum if applicable (in my case, it's either MSDN or the Sencha forum), and communicate your problems to your superior. If your deadline is tight, you have to communicate before you have evaluated everything there is on the topic, and before answers have come in.

That way, your superior can decide how to move on - more often than not, by changing the requirements, proposing a dirty interim hack or by moving the feature into a later sprint. Or he can decide to do nothing, but in that case, he takes part of the blame for the missed deadline.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.