I haven't written for a while, since I was very busy in my private life and I was undergoing many changes in my professional life too.
Now, back from vacation I want to share some of these and hopefully introduce a new series of post I am really looking forward to start.
In the last few years I have been working as Technical Lead on a Team of Fullstack developers mostly focusing on React Applications and Serverless Backend Microservices built with NodeJs and Typescript.
I love the stack, and I loved the products.
Recently, I was asked to join and lead a team which will use Unity3D.
At first I was quite disappointed, and felt a bit like the Grouchy Smurf.
I hate game development. (I prefer building applications and APIs)
I hate Unity3D (I worked with it about 5 years ago and it wasn't fun).
I hate having a smaller team. (progressing in leadership also means growing in size, isn't it?)
I hate being the Lead in a team that is using a tech stack I don't even know...
But after some time, lots of thinking - mindfulness meditation really helped - and talks with friends/ex-colleagues, lots of meetings and discussions to shape the project and of course lots of learning and experimenting with the new stack, I can say that I am quite happy.
No, my job does not suck and I am not neither annoyed nor afraid by this change!
And this is why:
Unity Ecosystem is not as bad as 6 years ago, version of C# is decent and pretty uptodate, MonoDevelop is a nightmare of the past and Jetbrains Rider has everything I am used to when coding in Typescript with IntelliJ, there are indeed professional ways of structuring a UnityProject without too many conflicts, messy dragged&dropped references and spaghetti code!
I will have the opportunity to build a bigger backend with bigger challenges in terms of security and scalability.
With fewer devs in my team I will have more time to code and contribute but also for mentoring and coaching and discussing Software Architecture, rather then be busy with assigning tasks, reviewing work and giving feedbacks. (honestly I haven't made up my mind yet about choosing between the Individual Contributor and Management career paths. and for a while I really felt that Tech Lead Management Roles are a trap
Since project is really in its early stages and to some extent experimental, we will have a decent degree of freedom and relative power for shaping it.
Overall then, I think that as a Tech Lead in this project I will have more impact (while also expanding a lot my skills) than continuing working and maintaining multiple many smaller projects on a known stack.
It's all about Impact
And this is - as when I became Tech Lead and I was full of doubts - the main driver: not what I am building or how much I like the tech stack and how much output I have every day, rather how much I like learning and building things and how much outcome I can bring with my contribution and that of my team members.
I can't say how it will be, or how happy I will feel when we will start crunching, but for now I spent very interesting weeks re-learning the Unity Ecosystem, and prototyping stuff as it should be done in the industry ( which is very different from what you can find in most of Unity Game Development tutorials out there).
And this is what I would really like to share in the future here, all the learnings and resources I gathered about Unit and Integration Tests with Unity, Dependency Injection and Signals with Zenject, Observables and Reactive Programming with UniRx, a cheatsheet for other devs transitioning from Javascript to C#/Unity and so on - as well, very like some other stuff related to backend.
Stay tuned!
Top comments (0)