Reflections on Two Years as an iOS Engineer: A Message to My Younger Self

Swapnanil Dhol
5 min readJun 1, 2023

--

Photo by Luke Peters on Unsplash

As I mark the completion of my two-year journey as a professional iOS Engineer at a fast-paced startup, I can’t help but reflect on the valuable insights and experiences that have shaped my growth. Today, I want to take a moment to share some thoughts with my 21-year-old self, who was embarking on this exciting job.

Don’t be afraid of new and large problems

On my very first day here, I was assigned a rather arbitrary problem: one of the most high-profile apps of the company wouldn’t archive for several days, causing a delay in delivering the builds. To make matters worse, my manager was sick that day, leaving me to tackle it alone. I had no prior knowledge of the codebase for this massive app, and I wasn’t even sure where to begin.
However, I didn’t let fear hold me back. I knew I had to start somewhere, so I decided to take the smallest step possible: archiving the app locally and investigating where the process was getting stuck. It turned out that the issue was caused by a framework that wasn’t being embedded with the final binary. Surprisingly, Xcode didn’t throw any error messages — it just hung indefinitely.
This experience taught me an important lesson: don’t be afraid of large problems. We all have to start somewhere, and tackling challenging problems not only tests our capabilities but also equips us with the skills to handle similar situations in the future. So, embrace the giants and take them on with confidence, because they hold the potential for tremendous professional and personal growth.

Avoid Burning Out. Set Boundaries.

Passion and dedication are integral to success in the software engineering field. While it’s commendable to pour your heart and soul into your work, it’s crucial to remember that overworking yourself ultimately isn’t worth it. Consistency is key, and maintaining a healthy work-life balance should be a priority.
It’s true that there may be days when you’re driven to give 200% effort. However, pushing yourself to the limits without considering the consequences can lead to extreme burnout. The irony is that even if you accomplish a great deal in one day, falling sick the next due to exhaustion undermines the purpose of your initial productivity surge.
Setting boundaries is a vital skill that every software engineer should learn. Learn to establish reasonable work hours and stick to them. Setting and managing expectations is equally important. If you encounter a task that isn’t business-critical and requires an excessive amount of time, avoid overworking yourself in an attempt to complete it. Instead, have an open conversation with your manager and the product owner, setting clear expectations from the outset.
Remember, it’s not about working harder; it’s about working smarter. By striking a balance between passion and self-care, you can ensure long-term success and well-being in your software engineering career. So, take care of yourself, set realistic deadlines, and communicate openly to foster a healthy work environment where productivity and personal well-being go hand in hand. Remember, nothing ever is more important than your health.

Embracing Ownership

Throughout my journey here, I discovered that one of the most crucial soft skills I gained was the culture of ownership. My company instills a deep belief that products should be developed as if they belong entirely to the developers themselves. This sense of ownership empowers individuals and drives them to take responsibility for their work in a profound way.
I was fortunate to experience a work environment that not only promoted ownership but also provided the necessary flexibility and decision-making authority to truly own a product. This level of autonomy allowed me to make critical decisions, drive the development process, and take ownership of the outcomes.
To succeed in such a fast-paced startup environment, taking ownership is essential. It involves assuming responsibility for any delays, proactively setting early goals, and regularly following up with product managers. By taking ownership of the products we worked on, we created a stronger sense of accountability and urgency, driving us to deliver high-quality results within demanding timeframes.
The ownership culture instilled in me a deep sense of pride and commitment to my work. It pushed me to go the extra mile, to anticipate challenges, and to seek innovative solutions. Owning a product meant taking ownership of its success and understanding that my contributions played a significant role in shaping its outcome.

Nothing is more important than people

I have come to understand that nothing holds greater significance than the people around you. The network you create with your colleagues will undoubtedly become one of the most valuable assets you gain during your tenure. While the products you build may carry your professional legacy forward, it is the relationships you foster with your peers that will propel you forward personally and professionally.
Building a strong network of talented, passionate, and like-minded individuals is a key factor in achieving success in your role. These connections not only contribute to a collaborative and supportive work environment but also open doors to future prospects and opportunities. By surrounding yourself with driven colleagues, you can draw inspiration, gain insights, and elevate your own performance.
While it is important to focus on cultivating positive relationships, it is equally crucial to avoid getting entangled in unnecessary office politics. Instead, stay true to your values and principles, and do not hesitate to stand up for what you believe is right. By maintaining your integrity, you build trust and respect among your colleagues, fostering a positive and cohesive team dynamic.
In any workplace, misunderstandings can arise, potentially leading to significant repercussions if left unaddressed. Therefore, it is vital to refrain from making assumptions and promptly address any misunderstandings that may arise. By communicating openly, seeking clarification, and resolving issues swiftly, you can prevent misunderstandings from snowballing into larger problems, thereby maintaining a harmonious work environment.

Finding Contentment in the Present

In our quest for success, it’s easy to fall into the trap of thinking that we don’t belong or that we’re destined for greater things than our current job. However, it’s important to realize that we are exactly where we need to be at this moment in time. Embracing and finding happiness in our current circumstances can lead to profound personal and professional growth.
Often, we become so fixated on reaching our desired destination that we forget to appreciate and learn from the present. Every experience, every job, and every challenge we encounter offers valuable lessons and opportunities for growth. It’s crucial to remember that learning isn’t confined to our ultimate destination; it can occur throughout the entire journey.
By shifting our perspective and finding contentment in our current position, we open ourselves up to a wealth of knowledge and experiences. We become more present, actively seeking opportunities to learn and grow, even if they are not in line with our long-term goals. Every task, every interaction, and every setback becomes a chance to gain new insights, develop skills, and expand our horizons.
Furthermore, finding joy and fulfillment in the present moment allows us to fully appreciate the journey toward our goals. It enables us to celebrate milestones, savor small victories, and find purpose in the day-to-day challenges we face. By embracing where we are, we can maintain a positive attitude, cultivate resilience, and foster a sense of gratitude for the opportunities we have been given.

--

--

Swapnanil Dhol

•23 • 3x WWDC Scholar •GSoC 2020 with VLC •iOS Engineer •Airplane and Space Enthusiast