The Year of Rocket

The Year of Rocket

Software Development Career takes flight in 2022

2022 will remain a watershed year in my career as a Software Developer. Although I had begun working as a Java developer in 2020, it was in 2022 that I truly embraced software development as a field and convinced myself that this indeed was my calling.

The year started with me convinced that I had to move to an organization where I had greater exposure to software design, and where I could write Java code to my heart's content. Hence I began by devoting myself to Data Structures and Algorithms. I stuck to grinding out problems Leetcode, attending weekly contests. Not only did I conquer my fear of Graph Algorithms, but rather got to a point where I could code medium Graph problems within 10-15 minutes. Unsurprisingly, I was able to land two offers by March and faced my first real challenge of the year - handling competing offers.

How to deal with competing offers and which one to accept?

The thought of having multiple offers at hand seems like a lucrative dream until the said scenario has come to pass. However, I decided to be guided by the following factors in my decision making

  • The overall financial package - You shouldn't go for an offer with a vastly inferior financial package. My rule of thumb was to not consider an offer which was 20% lesser than the best offer I had at hand.

  • The nature of teams and the work they do daily - I reached out to members of my prospective teams on LinkedIn and resorted to cold messaging to know about the work, team culture etc. This was the deciding factor, as I got to know that one of the teams was more client-oriented, while the other was involved in product development from scratch.

  • Tech Stack - I got to know that one of the companies was working on a monolith code, and that was a major red flag as I wanted exposure to microservices architecture.

Further tips which can help you make the right call while choosing between offers:

  • Try to know which team you'll be working for in your new organization before making a decision.

  • Reach out to members of that team on Linkedin. This can make or break your career trajectory for the next year or so.

  • Try to delay your decision as much as possible, as the more time you buy the more informed your decision will be.

  • Resist pressure from recruiters, by declining calls, and listening to them more than speaking. Keep your answers succinct - "Yes, Hmmm, Ok, Let me think" are your friends. The more you use them, the better your negotiations will be.

Nonetheless, 10 months later I can happily share that I made the right call as the organization that I joined, has taken my career in the right direction. Being the founding member of a new team, involved in the development of systems from scratch, I got exposed to several new challenges and thus new learnings.

Technical Learnings of 2022

  • Springboot - Our systems extensively use the Springboot framework of Java for the development of RESTful APIs. Working on the projects, I got to learn about several new annotations, the autowiring of beans, and making the code extensible through the use of application properties.

  • Design Patterns - I was able to implement "The Strategy Pattern" in our code, which helps our Payment System seamlessly switch between different PSP Integrations based on the location of the incoming requests.

  • Database Design - An optimal design of the database, to ensure quick reads, indexing, and foolproof record keeping(critical for a payments system).

  • CI/CD - Gitlab, Helm Charts, SonarQube

  • Unit and Integration Testing - JUnit 5, Mockito Framework, Rest Assured

  • HTML5, CSS3 and Javascript - To display the payment interface. I have also been able, to begin with, creation of a modest portfolio of front-end projects.

Agenda for 2023

As we look ahead to 2023, I have already decided on my learning goals for the upcoming year.

  • I aim to continue ahead on my front-end learning path and hope to get proficient in React by March.

  • I'd like to pick up DevOps and hopefully pass the Kubernetes certification.

  • The final point on the agenda is learning a systems language, preferably Rust by the end of 2023.

Signing off on what has been a great year professionally, I look ahead with optimism and share my best wishes with you all.