Bluebird: Testing the waters beyond mobile development

2024-10-13

I have played and worked with iOS development for more than 10 years at this point. I started learning Objective-C with Stephen Kochan's "Programming in Objective-C". It was my introduction to programming in Objective-C, to Object-Oriented Programming (OOP), and iOS apps. Over the years I have worked with different technologies in the mobile field, but "luckily", I have also been able to see some other domains as well.

During my university studies at the Norwegian University of Science and Technology (NTNU), I majored in low-level programming. I took courses on low-level Linux programming, compilers, computer architecture, algorithms and data structures, and even how to make a computer "from scratch". I volunteered at the Student Society in Trondheim with the web development group, where I maintained samfundet.no. I mentored in Kodeklubben Trondheim where I taught HTML, CSS, JavaScript and Python to kids and young adults. Overall, I've more or less worked with mobile apps, backends, and some of the tools used in firmware development. And this has really shaped my interests when it comes to software development. I love when I'm able to work across domains, like implementing a feature all the way from the backend through the mobile apps and possibly also layers and components interacting with hardware products. Unfortunately, firmware development, like for IoT devices, is still mostly an unexplored area for me. But I have worked with Bluetooth Low Energy (BLE), and C/C++ during my studies, so I think it presents a perfect opportunity to delve into this area as well.

Given my interests, I have been wanting to work with a project that allows me to work with multiple domains. I'm pretty bad at coming up with ideas for side-projects, otherwise I would have many apps on the App Store by now, but I figured I could just start with something and take it from there. And that's how Bluebird came to be.

Bluebird is going to span firmware code written on the Nordic Semiconductor nrf5340 development kit using BLE, native mobile apps for Android and iOS written with Kotlin Multiplatform with Kotlin and Swift, and a backend written in Kotlin with Ktor, and some frontend which I have yet to decide on. I'd like to experiment with frameworks that I normally don't use, like Protobuf for data serialization, stuff like that. It's going to be a playground, I have already started, and I really look forward to learn a lot more about these different areas, expanding my skills, and showcasing what I can do. Cheers!