I am intern developer at Apache Software Foundation. Apache is very well known non-profit corporation, which produce free and open-source software. It has created lots of free software libraries for back-end and front-end programming, for databases, big data, testing, servers, file transfer, security and more. I am contributing to an Apache project Petstore application which is meant to demonstrate how you can use Apache Juneau library together with such JAVA technologies as Spring Boot or Spring Data. Apache Juneau is used in JAVA applications, for memory-efficient serialization and safe parsing. My internship goal is to improve Petstore application: to make it more secure, bug-free, user friendly, and visually attractive. Contributing to this project requires to use my JAVA, Spring Boot, Spring Data, Maven, React and Git skills. So it helps me to grow as a full-stack JAVA developer.
Now I am Apache Community intern, a programmer, working with a JAVA Spring project. Before my internship start I was thinking that everything is going to be so easy, that I will have not too much tasks and will have plenty of time to finish them. My first task was to write Mock test class for a JAVA Spring program using Apache Mock Rest library. I did not have much experience with integration test writing but I am always optimistic when dealing with new things. My first thought was: I will google, I am going to find some examples and will do it. But unfortunately, I found only one documentation page and one simple example how to use this library. I started from this example and I faced a problem that an example doesn`t work. I didn`t want to bother my mentors, but after having spent about a half day googling and trying to solve an issue, I asked them for a help. And it turned out that the problem was not in my code, but in a documentation. I would not have found a solution on my own. Every part of programming tasks consists of smaller or bigger challenges, especially when you are a beginner. You might often fell confused, lost, but after solving one problem, then another, you gain more self confidence. Your mentors doesn`t expect you to complete task in a day and your code to be perfect. Without making mistakes you cannot go forward. The most important step here is to start from small, to do what you can do at this moment. Then to ask for a mentor how you can improve it. After some time you might realize that what you have done a week ago was totally wrong. But that is a good sign – you have learned a lot.
Two years ago I started my journey on becoming a professional programmer. I finished coding school, took online courses and later had a programming course in a vocational school. After finishing vocational school I got my first internship as a JAVA programmer. Since then I have been searching for programmer job or another internship. I was invited to some interviews and did many trial tasks, but I did not succeed. Companies searching for a junior or entry level programmer expect them to have really high skills or at least to have university degree in IT. In my country the demand for JAVA junior developers is quite low. There are a lot of programming schools in my country and a lot of people trying to change their career into IT. So the competition here is fierce.
After many failures to get even an internship I decided that I should not limit myself to one country and that I can try getting a job or an internship abroad or even work remotely. After some time of googling, one interesting post in the Internet forum Freecodecamp.org grabbed my eye. It was about an experience participating at Outreachy remote internship, which is paid and where you get an opportunity to work for such well known companies as Mozilla, Apache and others. I realized that it could be an amazing opportunity for me also. I was very fascinated and immediately filled up the application form at Outreachy.org. I had to answer some questions about the difficulties and discrimination I face trying to become a professional in an IT field. I could easily recall situations when I had heard what programming is a men`s field or I was not accepted to an IT internship because I am not student, so not able to sign three-part contract.
When filling the form I was not confident in myself, worried if my written thoughts would be clear enought and understandable. What is more, I thought that other people could face much more discrimination than me and I have only small chance to be accepted. Luckily, after about a month of waiting I got a letter from Outreachy notifying that my initial application was approved and I am accepted to the second round of the competition. After a month of hard work in Apache Juneau Petstore project and another month of an evaluation, Outreachy accepted me as an intern at Apache community.