Image of Dash, the mascot of the Dart programming language.
Dash, the mascot of the Dart programming language.”
Image from the Wikimedia Commons, licensed under Creative Commons by 4.0

If you’re lucky, there are a couple of moments in your life where something magical happens. (Disclaimer: If you’re very lucky, it happens all the time.)

The magic of which I speak is completing a task and yearning to do it again. Yearning is a strong word, but it’s the right word in this case. For example, I don’t mind going out to the movies. I enjoy attending a concert. But finding a great book, curling up in a comfy chair with nothing but me, my dog, and a floor lamp putting a spotlight on the evening… that’s some special sauce.

There are a lot of things I like about being a software engineer. I love Flutter.

I mean it. I love Flutter. But do I yearn…?

Image of blue door with red heart painted on the surface.
“New Love.” Photo by Jon Tyson on Unsplash

Maybe it’s too soon to say… but I like where things are headed.

Flutter is a Software Development Kit that allows intrepid engineers like me to build one app that compiles into native code for both iOS and Android devices. As an engineer, that means I get to work on one codebase while developing two mobile applications. Yes, it is as cool as it sounds.

Everything in the Flutter environment is a Widget. If you don’t know what a Widget is, imagine a Lego made of code and you have a pretty good idea what I’m talking about. Widgets are components that meet different needs when you are building an application. Some Widgets are foundational like Text and Image. Some are more specialized like Hero and NavigationRail. They all come in the Flutter bucket, and if you know what you want to build, and you understand what different pieces are available to you, you can build… anything.

Image of row of houses built out of legos.
A lego village. Photo by Alphacolor on Unsplash

I didn’t spend any time weighing the pros and cons of developing my app idea with Flutter versus developing with the alternatives. I don’t have anything against React Native, Native iOS or Native Android and I’m not afraid of learning new things. I just found myself wanting to be back in the Flutter environment again. I wanted to challenge myself to go further with the knowledge I had already gained in my Mobile Development class.

I have to confess, for me, that was a pretty special moment. I realized my decision was driven more by my desire to take a deeper dive into Dart and Flutter than any desire to avoid the burden of learning a new tech stack. I’m pretty sure that’s where growth happens, and that is where I’m finding myself in these final days of my Bachelor’s of Computer Science curriculum.

In a way, my real journey as a software engineer is only beginning now, as I anticipate heading out into the world to start working professionally on a codebase. I’m sure it’s going to take me in a lot of different directions. I’m equally sure that over the course of my career I will fall in love again. And again. (With new tech stacks. It’s pretty inevitable. I’m a big fan of the job, after all.)

But I also know that… you never forget the first time.

Image of heart shaped locks on chain.
“I love you.” Photo by engin akyurt on Unsplash