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.
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.
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.
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.
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!