An irresistible need for a change
Most people don’t like changes. Maybe because they’re scared of the unknown. I mean, if everything is more or less ok, why change anything at all? I, on the other hand get a feeling every once in a while that “this was fun, but I want to try something different now”. I guess that’s why I was the only person from my studies that didn’t follow the same path of education, after getting my Bachelor Degree in Information Technology. I decided to apply for Masters Degree in Electronics simply because that was more interesting for me at that moment. I don’t regret that decision at all.
During my studies I’ve been working as an Embedded Software Developer and even though I enjoyed it, the time was bound to come when I realized I wanted to learn something new.
Long forgotten dream
Funny thing is, my first shot at Tooploox was applying as a Data Scientist Intern. With my Master Thesis project involving aspects of computer vision and pattern recognition techniques I decided to have a go at it. But the idea at the back of my mind was even more crazy – I’ve always wanted to try building Android apps, but the opportunity hadn’t come around so I thought about finding a company where I could later have a chance to start learning about mobile development.
The opportunity came sooner than I thought. During my first Tooploox interview on Google Hangouts it turned out that maybe I’m better suited for mobiles. And so after two short talks and the review of my very first Android app (looking back at it now, the only positive thing about it was that it crashed really nicely) I started my mobile adventure as an Android Intern.
You said you’re here doing what exactly?
If you think that your role at Tooploox will involve only tasks associated with your current position, well, think again. Have you ever seen a woman in software house’s open space soldering ? Didn’t think so. I suppose that until the team retreat, which took place roughly month after my hiring, there were only a few people that knew I was an Android Intern. But I don’t blame them. My desk (even now) doesn’t look like a typical Android developer desk. It has lots of electronic stuff here and there, with my top toy being a soldering iron. I got used to being asked “sorry, what is this black magic going on over here?”. If you’re still curious, that was for an internal Android project – I was just helping with the hardware part.
Off to Androidland
I have to admit that at the time I started my internship at Tooploox there were no special tasks or milestones set for interns. I was given a list of topics that I should read and familiarize with to know the basics of Android development. I also heard “It would be great if you had an idea for an app you could write during internship here”. I remember spending a whole day trying to think of something useful, not a tutorial app like some calculator, gallery or calendar.
Later that evening I got a little bit upset because I forgot about a game of snooker I really wanted to see. I missed it for an obvious reason – Even though I’ve checked it several times during the day, I completely forgot about it. And then it hit me! Why not have an app that reminds you of the matches featuring players you like? That would be something I could use frequently. I got a green light from the team as long as I found an API providing necessary data. To my surprise, I did find one (awfully simple and primitive – but it’s better than nothing) and started creating my SnookerApp.
Thinking about it now I guess it was a really good idea to let me learn by creating something that can be used later on. I made a lot of mistakes, that’s for sure, but these only set me on the right course for better app development. I was struggling to understand a lot of new things and every time discovered that something can be done better. There were times I couldn’t wrap my mind about something since hardware development I was used to is way different than software. But then step by step, I was able to crack down every problem.
Precious little things
I didn’t make a lot of it at first, but the Clean Architecture Workshops with Jorge D. Ortiz Fuentes along with the preparations leading up to it, helped me a lot. Even though I had to practically rewrite the whole app to make use of model view presenter architecture or use cases, it was worth it. An actual breakthrough for me came when I implemented all of it. And from that moment, it is somehow easier to code and learn new things. This was the point when I started being pleased with how my app starts to look and how to create solid code.
I must say that these three months passed in a blink of an eye. Is this a sufficient amount of time to learn? To crack the basics, yeah I believe so. But there’s more to it as I still feel there are a lot of things I can learn more about. I admit that internship at Tooploox was a great learning experience. From realizing that there are simple Android traps (like c’mon, what can possibly go wrong when you just rotate the screen or forget to request permissions in Marshmallow) to using a bunch of helpful libraries (Retrofit, Retrolambda, Dagger, RxJava).
What also didn’t cross my mind at the beginning was the need to put an extra care to proper naming of classes, functions and so on. Yeah sure, you can use the magical Shift + F6 of a wonder called IntelliJ to quickly refactor the code and by quick glance at my keyboard you may say I use that a lot (how nice it is to think that thanks to a sheer coincidence that I’ve never had an iPhone or Mac I didn’t even think about learning iOS since they can’t do things like that – actually with AppCode they can but shhh…), but the truth is, there is no such thing as wasted time spent on getting the name just right.
Where do I go from here…
Now, being an Android Plooxie after my internship period I can proudly say that I know a thing or two about creating great Android apps. There’s still a lot to learn of course, but other Android Engineers here helped me a lot, and if it wasn’t for their constant nitpicking at my code, I wouldn’t have learned as much as I actually did. To be honest, I wouldn’t mind having another intern now so that I could nitpick on their pull requests. After all, code review is one of compulsory tasks during a day at work.
SnookerApp finally has most of its important features ready and with one of the biggest tournaments inside a season starting soon I think I can put it to a test. There’s also a plan to publish it on Google Play as an example of a solid app created during an internship. Couldn’t be more happy about it.
Anyway, whatever my future projects in Android will be, I guess from time to time I will still make use of this black magic equipment I got stuck on my desk, just to chill out. Soldering is fun, right?