Mobile application development for breakfast, some embedded systems for lunch and a little bit of full-stack for dinner. Software developer’s healthy and versatile menu for the day served by UnSeen Technologies.
I began learning programming almost exactly 4.5 years ago when I was 27(ish) years old. I had some experience with computers but instructing these bit crunching machines by programming still seemed like sorcery to me. I’ve always wanted to make games and I used to romanticize the lifestyle of a programmer. I thought it was just hours and hours of problem solving on front of a computer and few all nighters every now and then with some coke and pizza. But everyone always told me that “making games isn’t as fun as playing them”, or something like “if you start programming, you’ll die of boredom” (imagine the most annoying talking voice possible). I was a little intimidated by these fear mongers. Also, I assumed I was too old and too stupid to even attempt such a feat.
Luckily, I had just the right amount of stupidity to at least try and I took an online course on Java programming and oh boy has it been a ride since. Programming was just like I’ve always imagined. With the pizzas and everything. I also realized that you are never too old to start programming. Logical thinking is something that grows over time, even after you’re 30. That’s right, you read correctly!
After a year learning by myself I started a bachelor’s degree programme in Business Information Systems in Tampere. It was going well and during my second year UnSeen Tecnologies hired me as a trainee. Since then I’ve graduated and worked on multiple projects at UnSeen. And when I say multiple, I really mean MULTIPLE.
There is no time to die of boredom
I kid you not, there have been days when I’ve written actual useable code for three completely different projects, with different target platforms. Though “Three Project -menus” on a daily basis are rare, it´s not uncommon for me to be working on multiple projects weekly. This is mainly because I have had the privilege to be involved in multiple proof of concept and IoT related projects. Customer base being from diverse backgrounds; smaller to global companies. Proof of concepting means you’re doing short-lived projects, always trying something new. And IoT, well… It can mean almost anything.
So, to summarize, my days at UnSeen are like snowflakes; there are a lot of them, and eventually they all melt to oblivion. But in all seriousness (this being a serious blog post), I have had no two days alike.
For me the project-specific technologies have varied greatly:
- From embedded systems (C or C++)
- … to web-based UI applications (JavaScript, TypeScript, Angular, etc…)
- … to desktop applications (C++, Qt, Electron, etc…)
- … to mobile applications (Java, Swift or Ionic)
- … and the entire data piping and storing between the four
- … over the Internet
- … over Bluetooth
How is all this diversity affecting on my work then? Well, it sure has been more important to be able to learn new technologies rather than mastering just one of them. To survive, you must learn how to learn, and at UnSeen I’ve been pushed to learn something new every day. You also have to be agile and you must not be afraid of adversity. For example, there have been a couple of cases when everything wasn’t going as planned when implementing a new product on the field. We didn’t have enough information about the target platform beforehand. I had to make alterations to the program code on the fly. “Well that’s agile and bold”, one might think. Not me. For me it was just another day at the office (reality: almost crapped myself).
Learn how to dive you filthy coder
At the beginning of my UnSeen career I was thrown in at the deep end to develop an embedded application with Bluetooth Low Energy support. I barely had any experience on embedded systems let alone on Bluetooth Low Energy. But I was excited to be challenged. I had to learn both technologies to some level before I was able to start.
After this push to deep end I realized that it is not impossible to learn this, what I used to think as a sorcery before. At the core, programming is all about making bytes and bits to be transferred from one place to another with the most suitable technology available. Learning process will become easier day after day when you’re challenged to do it regularly.
After you learn one technology, it gets more easier to learn another one, because the principles between every programming language have something in common with each other. UnSeen was willing to give me an opportunity to learn and this one project gave me more experience than the entire time spend in school at that point. That’s why I think this has been one hell of a starting point for a newly graduated IT Bachelor like me. I can’t wait to discover how much knowledge I can gather in the next four years. Because for now, the learning has happened somewhat exponentially.
Not being chained to just one technology stack is giving me a good opportunity to learn the IT industry as a whole. New technologies are arising at an increasing rate and agile developers are the ones to survive from all that. So, it’s a good thing not to get stuck to just one technology. And besides, how else would you really know which you like the best?