Masha Reko - Apprenticeship Blog

What we have to learn to do, we learn by doing. (Aristotle)

Day 63-67: Taking Off

This week I’ve been spending my days at the opposite side of the office, shadowing the Take-off team. What I can say is that this has easily been one of the most enjoyable weeks ever since I started with this apprenticeship. Visiting non-tech departments is nice and all, but I was dying to see how things work in a development team, so this experience has definitely been a success in those terms.

With that said, unfortunately there hasn’t been much coding going on at the Take-off team this week. A new year is here with its many new beginnings, and thus they spent most of their time this week in meetings and workshops, figuring out the goals and plans for the first quarter. I did attend some of those meetings, which was a quite interesting experience. Especially the discussions about the “Definition of Done” and team-level non-functonal requirements.

I got a nice introduction from Sarah, the Product Owner, regarding the scope of Take-off team and things they have been working on recently. As far as I understood, they mainly focus on two things: Authentication and Identity Management, or what people like to simply call “Login”. Not sure I like that term, though; there’s so much complexity lying behind it all, and such a simple word definitely does not give it justice.

In terms of technologies, they do everything that I love - NodeJS, JavaScript/TypeScript (no Scala - yay!), React, GraphQL. Furthermore, they do hard-core TDD. They also use a lot of Nix, that I didn’t know anything about before this week (well, how could I, it doesn’t exist for Windows after all). In simple terms, it’s a package manager, but also so much more than that. Apparently it is very useful for avoiding dependency hell and can provide a unique environment for all members of the team (so the “It doesn’t work on my machine” excuse can be thrown out the window). I didn’t get the chance to try it out because - oh, well - Windows, but it definitely sparked my interest.

Luckily for me, the week was not only about meetings. Some maintenance of existing services still needed to be done, so I did get my much needed fix of JavaScript, after all. On Wednesday I paired with Stefan, and we fixed an issue on one of the JavaScript services. What I liked the most is the fact that we did it in a pure TDD way - first writing both unit and functional tests, having them fail, writing code to make them pass, and of course: wrapping it all up with some refactoring. Apparently, this was one of the “older” services, and thus written in pure JavaScript. Stefan mentioned that all new services would be written in TypeScript instead. An alarm got triggered in my head upon hearing that information, and TypeScript quickly got bumped to the top of my backlog.

The next day I got to pair with Segej, this time remotely. He was simply amazing with explaining what team Take-off does and how. Also, he showed me a prototype of the new service they are working on. The idea was to get that service running on my machine, so that I could do some coding on it. Alas, my Windows machine had a problem with that. Or rather - multiple problems. It took us hours, but still we couldn’t get the service to work. I even continued trying when I got back home (yes, it was bothering me so much that I was unable to sleep). In the end, I solved a lot of problems, but some TypeScript modules still weren’t loading properly. So I had to put it on hold and try my luck with a virtual machine. I just wanted to see if the same problems would occur on Ubuntu. If not, then - it pains me to say it, but - I might start considering a UNIX system after all.

I didn’t have enough time to finish setting up the project on Friday, so I’ll either try it over the weekend (if it really, really bothers me - which I can clearly see happening), or I’ll continue next week. Which might be a challenge since I’m moving over to the User Flow team, and there are many meetings and pairing sessions already planned for me. But I’ll make do.

To summarize the week, I’d say it was incredibly satisfying. True, I was a bit slow at the start of the week (coming back from vacation and the amazing CodeFreeze), but it turned out quite good in the end. I am incredibly grateful to the amazing people in Take-off, who went out of their way to make me feel welcome and included in all their activities. For the first time since the beginning of the Business Phase, I haven’t for one second thought how much I missed my desk. Simply, I felt at home.

Due to all this, combined with the fact that I only have two months or so left until the end of the program, I allowed myself to think about the future for the first time - about life after the apprenticeship. Do I feel ready for it? Well, I guess you’re never completely ready. You just tell yourself that you’re ready enough, and you take off. That’s all there is to it. So am I ready enough? I guess not quite yet, but I’m getting there. I’m getting there more and more with each passing day.

Have I found the team where I could settle once the apprenticeship is done? Maybe. Possibly. I guess it’s too early to tell after visiting only one development team, but I suppose I would be quite happy landing in the Take-off. If they would have me, I think I could fit in there just fine. But we’ll see. Too much thinking about the future takes away from the present, and I’d like to avoid that. There’s still stuff to be done before such decisions have to be made.

I have been thinking A LOT about my Masterpiece, though. However, I won’t share any details on that just yet. Perhaps next week. I guess then I’ll have to choose one idea and stick with it. When I do, you’ll all be the first to know, I promise :)

Until then, have a great weekend!