Web Software Engineer to Mobile Engineer
If I don't find something challenging, I get bored fast. There was a point when all I was doing was maintenance and bug fixing. It happens, we all go through these periods of downtime. However, this downtime was going to be for the long haul as new features were paused. This was because the mobile team was playing catch up to the web team. It didn't help that the mobile team headcount was being reduced and resources were placed elsewhere. My manager reached out to give me an opportunity to join the mobile team and help them catch up. Seeking something new to do, I took the offer.
The next week I was on the Android mobile team. Thankfully one of the members in the team used to be a high school teacher before career changing. The reason I'm thankful is that he knew how to teach and gave me some good resources to learn Android development. He made sure I knew enough before I even started to write production code. He broke down the different modules to learn and then ran through some of the production code that demonstrated what I learned.
All this was done with only a 1 hour time zone overlap. So there was no hand holding. I just go through the materials, explain what I learn and he'll show examples. Soon enough I had enough grasp to start building and send through some Pull Requests. Unfortunately, not long after that he got moved to a different team and it was me and 1 other developer whom I rarely meet.
Pretty quickly, I ended up holding the fort on my own until some more resources can get assigned to help. During this time I reached out to other Android developers within Expedia Group to help with reviews and resuming progress. Soon a contracting team from Ukraine helped with the development and pretty quickly we were caught up to the Web team. I also helped recruit a new team member into the team to work alongside me, and it was nice to have someone in the same time zone.
Mobile development felt like full-stack development but all kept in 1 ecosystem. It brought me back to game development and was enjoyable to work in. Kotlin is a language I thoroughly enjoyed. It still feels like Java but a lot less verbose. Android's documentation is very well written and its framework is easy to understand. If you're thinking about doing mobile development, give it a go.
As software engineers we shouldn't limit or constrain ourselves to a particular technology or skill set. In my eyes most languages are the same. Each will have its tool for the job but fundamentals are easily transferable. We shouldn't be concerned about the tools we prefer to use. Rather look into solving the problems. To me, this is the fun part. Easy problems will lead you to look into solving the wrong solutions, like fixing code styling, or adding some additional lint checks, making imports be arranged in a certain way. This is busy work. It doesn't solve problems for the customer.
Face tough problems head on.