Introduction
Since this is my first post here, I think an introduction is in order. I am a 23 year old developer from the Netherlands. I've been dabbling into programming and scripting since high school. I think I was 12-ish when I started writing some static HTML websites and I was 14 when I started looking into scripting languages. When I was 16 I got into Java applets through our IT class. I rolled into college when I was 18. My school offered a lot of options to choose from. We had 4 main routes; software engineering, technology/embedded systems, media design and IT business. Furthermore we had 12 sub-routes, which included for instance Cyber Security, Smart Mobile, Data Science, Education, etc. I followed classes for both Software Engineering and Cyber Security. Because I did both my internships in the field of Cyber Security, I have received a bachelor in both Software Engineering and Cyber Security.
Now, to make it somewhat more personal, in my spare time I play a lot of music. I've learned to play the guitar, the trumpet, the piano, the blues harp and I've recently taken up singing. I am a massive Beatles fan and generally love the music of the 60s, 70s and 80s. I don't do a lot of coding in my spare time. I already do that 40 hours a week, so I like to prioritize other things first and then see if I can fit some coding in if I want to.
Getting the job offer
I read a lot of stories about people trying to get into the field having trouble getting job offers, interviews, etc. Personally, I can not relate to this, as the only interview I had to do for this job was getting the internship, which is obviously a lot easier to get than a full time job interview. I got the internship and got the assignment to write an open source vulnerability scanning tool in python. About halfway through, the directors and the other developer asked me to come into the meeting room. They had been very pleased with my work and my help (I had done some small projects for them on the side, to advance their product) and asked me if I would like to stay after the internship. After some thinking about it, I said yes. I liked my colleagues, the projects were interesting and I thought I could learn a lot starting out in a small company.
My first six months
So. Looking back at my first half year, I think I fared pretty well. I'll first discuss the impact I had on the company, then I'll discuss what I have learned.
Our development team consists of two developers. The other dev has put together an application to do anonymous OSINT research over the last two years. The application works really well, our clients are all enthusiastic, but the codebase is murder. He is actually a network architect, who happened to know a bit of PHP, so he just started hacking away to get it to work. Since no one else in the company knew how to code, nobody could show him how to do things better and more efficient. Until I came around. I must confess, at times I was pretty ruthless with my code reviews, but he can handle it and appreciates the feedback. He even said he learned more about coding in the last year than in the years beforehand. Makes me feel a little bit like a senior developer.
Anyway, since accepting the offer, I have been advocating for rewriting the application. I know in most cases this would be overkill, but believe me, refactoring the code would take much longer and would probably be less effective. I also enjoy spending my time not smashing my head in with a hammer, so rewriting seemed the best option. The other dev agreed, so we only needed to persuade the directors. Eventually we managed to pull this off and we created a plan as to how the development trajectory would look for this new version. We had researched the options and have chosen to write the application with Laravel and Vue.JS. We picked Laravel initially because it's a PHP framework and the other dev already knows PHP. We learned afterwards that this was indeed the right choice, as it's a very complete framework. We chose vue, because Laravel supports it out of the box, its rise in popularity and because it is minimalist, yet very extendable.
I did not know PHP before I started working here. I have always avoided it, due to its bad name. I also did not know Vue.js beforehand. I did know some Javascript, but I had no knowledge of the more advanced concepts like promises, async/await, etc. You could say I knew next to nothing in regards to the tools I now use. It all grew on me while trying out things in Proof of Concepts, reading articles on best practices, reading solutions on Stack Overflow, etc. I do have the advantage of having learned C#, Java (SE and EE) and python at school, so I have a broad grasp of programming concepts and pick them up quickly with new languages. But still, you need some time to adapt to these new languages, learn their ins and outs and how to solve certain problems in them.
Some might say you need a Senior developer to guide you through this phase, teach you the best practices, etc. That might be the case, but in my opinion, I haven't been doing half bad on my own so far, and I think this experience of setting up projects all by myself so early on in my career, getting into new tooling and putting it to practice in real projects, that experience is gonna be invaluable in the future of my career and might've just given me a jumpstart.
I'd like to mention the changes I have made on an organizational scale as well. I have been advocating the use of git since I started to work there. Because of his background, the developer did not know about this technique, so at first he was a little bit dismissive. I think it was about a month in, we had a release planned for the application (with the monster code base). I had developed a feature, but because we had no real protocol for pushing code from development to production (we were basically working directly on the production application, but in an area that only we could access. I know, this was sub-optimal, but we're doing better now), my code was overwritten and set back to the code I had one week prior. We were able to get my work back through the backups, but this did get git put on the priority lane, so little less than two weeks later, we had a self-hosted Gitlab server in which we now store all our code. We have also taken up the SCRUM way of working on my advice, as to streamline the process of moving to the new version and the new techniques.
Conclusion
All in all I think I've been doing really well so far. I mean it's only been half a year, but so far I feel good about the trajectory and all the things I've learnt and the company is pleased with me as well, as I've just last week signed my extended contract. I realize this is a highly personal account on how one might fare as a junior developer and I'd be surprised if anyone can fully relate to this story, but I thought it might be interesting for you guys to read. I also just wanted to show my pride in what I accomplished in a relatively short time.
Alright that's all folks, cheers!
Top comments (2)
Good work, sounds like you're doing well. Keep it up.
But you could elaborate a little bit on this line please?
Of course. Because of biased, negative views on PHP I never wanted to learn programming in it. These views were also strengthened when I was required to code in the codebase of my colleague, which was a total mess. I preferred using JavaScript in combination with some kind of API (usually Java, as that's what we learned at college). However, once I got the company to transition towards Laravel (which I chose as a compromise to have a modern framework, but still be doable for my colleague, who only knows PHP) I found that PHP doesn't have to necessarily be as bad as most people seem to think.