Lot of people are making summaries of the last year on their blogs, so I’ve decided to create mine as well.
It’s also good way to collect your thoughts and do some analysis.
Everything started from open-source
In the last year I wanted to have my very own open-source project, which will be well written and popular. I wanted to start from something simple, so I created String formatting library called Kirai, which was written in TDD methodology. I wanted to make it as good as possible, with clean code, tests, continuous integration, examples, clear documentation and possibility to add it as Maven or Gradle dependency to simplify its integration with other projects. After that, I’ve posted it to android-arsenal.com website. Maintainer of this website added this library to the list as well as few of my other projects, which I haven’t posted. To my surprise, other projects were becoming popular. Unfortunately, they weren’t well written, so I started to improve them and making them better and better. This gave me a lot of energy boost. I also got Pull Requests and issues, which helped me to find some bugs, which I haven’t noticed. Moreover, thanks to other developers I was able to develop and release these projects faster. In the meantime, I got new, fresh ideas for new projects and implemented them. I still have more ideas waiting for realization. Besides that, I contributed to various projects of other users. One of my first contributions in 2015 was Pull Request to JavaPoet project. It wasn’t easy, but gave me enough confidence required to participate in more projects and shown me that keeping high quality of work can pay off. It’s an interesting fact that you can co-create open-source project with the best engineers overseas, they will respect your work and give you constructive feedback. It can be empowering experience from which you will learn a lot. Below, you can see my GitHub contributions to open-source projects in the last year.
According to coderstats all my repositories have 1274 stars and 157 forks right now. For your information, actually all of them were made in 2015.
My currently most popular project called ReactiveNetwork was featured on androidweekly.net, which is well-known website in Android community. What is interesting, this library is small, very simple and its first version was developed in a few hours, but I knew exactly what I want to achieve in the end and how its API should look like. Moreover, this library solves 2 simple problems and it’s not all-in-one solution. Actually it’s improved successor of my previous project called NetworkEvents, which does the same thing, but in a different, less convenient way.
I think I somehow addicted myself to open-source contributions. I think it’s good and I always wanted to do that, but I didn’t know the right way.
Helping people to solve their problems
To give more from myself, I’ve decided to start contributing to StackOverflow community, because I’ve been always using this website, so I’d feel bad If I won’t contribute anything back. The same rule applies to open-source. It’s also a good way to train your abilities to understand problems and clearly explain correct solutions for them. From the chart below, you can see clear reputation progress.
Learning new things
I learnt much more about RxJava by creating some reactive libraries for Android. I also decided to learn Python by creating special repository on GitHub to track my progress and collect resources related to this language. I also created a few small Python projects. Moreover, I touched some of different technologies, but haven’t learnt them deeply. I definitely need to learn more about new things, languages and technologies I already use, what is probably more important. I also feel more comfortable around Linux and command line, but still there’s a lot of things to learn about. Software developers often underestimate such knowledge, but in my opinion it’s important and useful.
Fun fact: On Linux, it’s possible to prepare environment for almost any technology in a very short period of time. I’ve tested it with Haskell, Ocaml, Python, Go, Node and even pretty old-school technologies like COBOL and Fortran. Of course, I don’t know all of these languages yet and just wrote some “hello world” programs, but I could setup everything really fast without knowing anything in the beginning!
I haven’t pushed myself to create regular blog posts. In fact, I have been publishing at least one article per month, but sometimes I published more. I just wanted to collect some resources, knowledge and solution for some problems. Sometimes I use them again and I don’t have to re-invent the wheel if I already solved a specific problem in the past and documented it. Moreover, other people can have similar problems and I can share this knowledge. I also use the blog for publishing information about my projects and new releases. Below, you can see list of the most popular articles on the blog. As you probably noticed, most of them is related to solving problems connected with Android and Ubuntu Linux.
Interesting fact: People are usually viewing blog in the work-days.
Moreover, some of my articles were linked on StackOverflow and Reddit what is flattering.
I think, I’ll continue publishing articles and try to make them better as I’m not fully satisfied with form and content of all of them.
Being a conference speaker
Of course, on-line activity is not enough. Sometimes, it’s good to go out and talk with people. Due to my open-source contributions I was asked to be a conference speaker on 2 conferences. I actually was able to speak during one of them, which was GDG DevFest in Warsaw. It’s really interesting and challenging experience. I’d totally recommend anyone to try that out. You can read more about it in Reactive Live Coding during GDG DevFest 2015 in Poland article.
Starting new job
In December 2015 I’ve left my previous company called Future Processing and started new job at SAP Hybris. I wanted a new challenge, which triggered such change. Now, I’m working on development of enterprise framework used by other developers in their implementations of e‐commerce systems for big companies. It’s great responsibility, possibility to learn new things and gain new experiences in a new environment.
Definitely I want to keep up the pace with the things, which I think are good. Of course, I have some professional and personal goals in my head, but I won’t write them down. From my experience I think it’s better to start doing things instead of writing about them. Someone said that with this technique, you can increase probability of realizing your resolutions. 😉