Learn or Burn: Stay Relevant or Go Down
The technology landscape is changing at a very rapid pace nowadays, and the only thing that is constant in this era of evolution is change. Some organizations accept change gracefully and adapt to new technologies, processes and working methodologies fast and win the race, while others just keep dragging and spend countless hours on maintaining the legacy code. In the last decade, I’ve seen a massive shift from one set of technologies to others in a matter of just 3 to 5 years. What was .NET heavy 10 years ago shifted to Java or PHP at the start of 2010, and now a new wave of technologies like Python, Golang, Ruby, NodeJS and other frameworks like Docker and Kubernetes is taking the world by storm.
In this article, I would like to summarize my professional journey of success at Junglee Games and how the Junglee Games Tech team stayed up to date by embracing “Ace the Pace” mantra. Our team has always stayed on top of the latest and greatest technologies that solve the problem in an out-of-the-box manner rather than reinventing the wheel with the legacy system and spending countless hours on maintaining trivial things.
To be on top of their knowledge about their particular domain, engineers have to be aware of hundreds of things including, but not limited to, the latest technology landscape, programming best practices, tools, and IDEs, programming languages and frameworks, build and deployment tools and more. Not only that, every 3 to 5 years, there is a huge shift in the way we approach simple problems, which makes these things legacy, and one always has to be on top of the latest set of technologies to stay up to date. Applying this overlapping theme of constant change with our engineering team, we have accommodated the following :
- Evaluate technologies by implementing a small proof of concept on a regular basis.
- Before drawing a conclusion to solve problems, look out for easy off-the-shelf solutions that solve problems most of the time without the need to reinvent the wheel.
- Stay up to date by gaining knowledge on a regular basis and be aware of the latest technology landscape.
- Be open to making changes to your current code and architecture to accommodate new tools, frameworks, and libraries.
- Build your architecture that is broken into a disjoint set of micro-services that is capable of accommodating a polyglot environment for tools and frameworks.
- Be open to spending more time on learning new tricks to get out of your comfort zone.
- Always be open to learning. Whatever it is, just go for it and learn. The best place where you can learn things is the place you are currently in.
- Stop clocking in hours, and try to be more effective in doing your job so that you don’t have to count 9 to 5.
- Be passionate about your goals and what you want to achieve in your career. Stay focused on the progression path and plan and achieve those goals in small steps. Remember, winners, are not made in a day.
- Whatever you do, keep learning and try to have fun while doing it.
When we are trying to adopt new technologies, we analyze and evaluate some burning questions before drawing any conclusions. Here are some of the critical questions our team analyzes before drawing a conclusion:
- What are the short-term and long-term goals?
- What are the timeline and business requirements?
- What are the dependencies on the legacy system or the end goal of the new platform?
- Technical capabilities of the team members working on that particular module.
- What approach fits within our architecture, and is there room to incorporate a new set of technologies?
- To ensure we have decided on the right solution, can we develop a small proof of concept that proves the hypothesis?
- Is the new solution going to hold up for the massive scale of millions of users and very high concurrency-based workloads?
- Is there an open-source, community-driven alternative available, which would be much better than reinventing it in-house with a very small subset of engineering resources?
Here are the learnings I have had in my decades worth of experience leading and managing engineering teams always striving to succeed in this never-ending race of evolution and constant change.
Firstly, the intention and effort to learn new things should not be driven by time-sensitive aggressive timelines. Instead, it should be ingrained as a culture and a motivation to improve yourself on a regular basis. Think of it like an Olympic athlete: no world champions are made in a day when they have to perform on the center stage, but they spend early mornings and countless years learning and perfecting their craft. And be more than a hundred percent committed to improving over the course of time.
Secondly, going by the saying “curiosity is the mother of all inventions”, we never stop to apply this during our day-to-day workflow. I recommend everyone to be curious about “how to improve”, “how to grow”, “how to learn” and, lastly, “how to crush your goals”. Read, learn, consume information not just to satisfy your curiosity but use it as a foundation to build your career and take it to the next level.
In brief, stop being just a silent listener; act when necessary and take charge of the actions that will take you to the next level. I wrote an article a couple of years ago that summarizes this thought process; stop by at the following link to share some love:
When teams or companies or individuals are going through a tough time, the majority of people lean and rely on just one solution, which is the hustle. Working hard or hustling is definitely an option, but if not done correctly, methodically, and in a process-oriented manner that lays out the foundation for growth, this hustle becomes a never-ending life cycle where you lose work-life balance. I recommend hustle when you have to push hard sometimes, but be wise enough to learn, improve and grow on a regular basis.
When you grow into a bigger company, on an individual with higher responsibilities or try to do hundreds of things at the same time, the real battle is not about what to do, but the battle is won by knowing what not to do. Apply 80–20 rule for your work and the majority of decision-making, and lay emphasis on things that make a real impact rather than spending endless hours doing trivial tasks that have no impact at all. Be motivated to learn, to grow, and, most importantly, have fun doing it!
At Junglee Games, over the course of years, we have developed and embraced a high-velocity learning culture that has brought in a polyglot programming paradigm to our core engineering team. To stay on top of the latest and relevant programming languages, frameworks, cloud, and container orchestration frameworks, we have embraced our journey from our single monolith .NET application to the distributed server-based Java application to now a global-scale platform embracing a plethora of programming languages including Java, NodeJS, Python, etc. working on microservice-based architecture that can scale to millions of users.
Be nimble, be agile, learn new stuff, move at a rapid pace, break a few things, learn from your mistakes but whatever you do:
Learning never stops.
Good luck on your journey!
Looking forward to hearing your stories.