Reflecting on 2023: My journey as a Frontend Dev
It's time for my yearly tradition, where I log my adventures as a frontend dev. I have been following this tradition since 2017. Its a way to gratify on things I have learnt and the challenges I've overcome. Also, I chronicle my journey as I navigate the ever-changing tides of frontend development; and share some personal anecdotes along the way. So, lets begin!
Career at Altimetrik
After dedicating nearly two and a half years to Altimetrik India Pvt. Ltd., I made a career move in April 2023. I used to work as a Senior Staff Engineer and I worked with Intuit Portfolio for the entire tenure.
My work revolved around React, Context API, Redux Toolkit and TypeScript. We embraced agile methodologies, working in sprints and employing Test-Driven Development (TDD) principles using Jest and React Testing Library. I usually targeted a code coverage of over 95% +. I also contributed to writing integration tests in Cypress.
Recognition and Awards at Altimetrik
I consistently earned recognition for my contributions and efforts at Altimetrik. I received GEM Award twice, once in September 2021 and again in December 2022. Some of my notable contributions were:
- Learning Initiatives
I consistently updated my skills through Udemy Business. This helped me to quickly pick up new technologies. In one such instance, I grasped TypeScript within two days, receiving managerial appreciation for my quick onboarding and codebase familiarization. - Interview Panelist Contributions
I ensured a comfortable, safe and positive experience for candidates so that they are rated based on their skills and not on confidence. The HR team and account supervisors appreciated these skills along with my interview evaluations. I also provided "points of improvement" to guide potential hires. - Team-Level Contributions
At Altimetrik, I actively participated in code reviews, providing constructive feedback, and built reusable custom component templates. I also conducted knowledge transfer sessions for junior colleagues. - Technical Documentation
I wrote detailed technical documentation which covered product features and their technical implementation. These documents were a result of many meetings and technical discussions with Project Manager(s) and Architects. These documents bridged the gap between technical requirements, business objectives, and product features under development, serving as a valuable resource for developers, designers, and all stakeholders. - Preparing Minutes of Meetings
While working on a project with a distributed team (US and India), I collaborated in creating comprehensive meeting minutes so that its easy to summerise points of actions. - Bugs Triage and Resolution
I took ownership of critical bugs and resolved them promptly. - Performance Optimisations
I identified performance bottlenecks in our React codebase and shared optimization strategies and techniques for improvement. - Accessibility
From adding relavent ARIA tags, to making sure that the UI is fully functional through keyboard, to making sure the websites follow a decent contrast ratio, I have been an advocate for accessibility best practices. I made sure the code followed best practices for tools like NVDA and JAWS. - Technology and Tooling
I tested various frameworks and suggested the best possible technology stack for developing features, widgets, or apps, experimenting with how different tools and tech stacks worked together. - Pair Programming
Pair programming is a problem solving technique in which two programmers work together to solve a single or a bunch of problems. As I worked remotely for most of my tenure, I collaborated closely with colleagues to find effective solutions for complex tasks through pair programming sessions.
Learnings as an Interview Panelist: Professionalism and Prioritisation
Conducting over 250 interviews at Altimetrik, I gained valuable insights in terms of how to evaluate a candidate and make them feel comfortable so they are not nervous and give their best. I understood my role as a first point of contact, representing the company culture. As such, I emphasized assertive and professional communication while ensuring inclusivity.
The rise of remote interviews, it has become easier for some candidates to cheat during interviews. Instead of directly confronting them, its essential to professionally address such situations. In one instance, when I suspected a candidate was cheating during a remote interview, I handled the situation professionally by requesting them to access their system preferences, confirming my suspicion without directly confronting them.
While various online resources offer interview questions, I believe focusing on the specific job description (JD) is crucial. For instance, for frontend developers, in-depth knowledge of CI/CD pipelines might not be essential, though a basic understanding is beneficial. The focus should be on a balance between theoretical knowledge and practical coding skills. During interviews, I often present real-world scenarios relevant to my daily work to assess a candidate's problem-solving abilities.
Leading the Frontend Team @ Publicis Sapient
I joined Publicis Sapient as a Lead Experience Engineer in April 2023. I was assigned to the Verizon Project and mainly my tech stack were React, TypeScript, Next.js and Module Federation.
I was both a individual contributor as well as someone who took some lead level responsibilities like mentoring the frontend team, creating KT and documentation resources, collaburating with different teams and bridging the gap between development and business. I was mainly working on pages which focussed on Server-side Rendering (SSR).
My responsibilities also included reviewing associates' contributions, providing feedback and improvement pointers for junior employees, and collaborating with managers on process and documentation creation.
Joining the project in its early stages, I worked closely with my manager to create documentation and streamline the onboarding process. I also ensured that every team member had access to the necessary Knowledge Transfer (KT) sessions.
My curiosity led me to explore Prompt Engineering more. I was able to effectly use AI tools as a learning and problem-solving tools. I always kept the privacy and security in mind while creating prompts.
Prompt Engineering: Unlocking the Power of AI
In general, the every AI model is trained to generate responses that are relavent based on the inputs provided. But, they can create better results if we give more precise, relevant and add more context to our inputs. Prompt engineering is this technique that involves optimising inputs to create desired results.
As part of my role as an Experience Engineer at Publicis Sapient, I had the opportunity to enroll in a Prompt Engineering course. This course provided me a base level knowledge on how to create optimised inputs for chatbots like ChatGPT in order to create better outputs. Additionally, to encourage Prompt Engineering, Publicis Sapient had developed their own version of a ChatGPT.
Prompt Engineering can be useful in many ways, such as:-
- Content creation: Also known as Gen AI, which means using AI to create content; like documentation, learning materials, poems, code-snippets, images, video, audio, etc. The revolutionary Blackbox and Tabnine (Both Free as of now) are one of the best a go-to tool for auto code-completion . This year, people even used AI to create memes (especially songs sung by politicians)
- Learning: GPTs have become my go-to tool whenever I need to learn something. This is only effective if we have good knowledge of Gen AI
- Problem-solving: I have been able to solve some complex problems in terms of comparing technologies and gaining new angles and perspectives by having a one-on-one conversation with bots like .
- Learning and documentation: I used prompt engineering to create contextually relavent and precise learning resources for junior associates.
- Idea generation: Spark creativity by brainstorming innovative ideas and concepts.
Anyone irrespective of the domain or profession can use AI. If you havent tried out Gemini, ChatGPT or Claud, I would highly recommend you to do so.
Additionally, I used GPT's power to extend my understanding and gain clarity on various topics, such as "lower funnel vs. middle funnel" and "how to use Module Federation." Prompt engineering also proved invaluable in learning the MERN stack while working on the Blackbox project.
If you are a web developer and you want to learn more on Prompt Engineering, here are two Youtube videos I would highly recommend watching
Events
As a part of learning and networking innitiative, Publicis Sapient hosted many events. One such event I was a part of was, the "Engineering Next" event. As a part of Engineering next, I gained insights on how to become a 10X engineer. Key principles highlighted included:
- Polyglots: A 10X Engineer would be aware of multiple programming languages and their nuances. For instance, a frontend engineer having a basic understanding of backend and/or DevOps.
- Multidimensional: A 10X Engineer would possess expertise across various domains working effectively with cross-functional teams.
- Working in Pods: Pod can be defined as a cross-functional unit comprising of different people with different skillsets who are collaborating to deliver holistic solutions as a team.
- Reduce: Reducing is a key principle of minimising resource consumption efforts, infrastructure and costs. Reducing makes sure we maintain high performance and high functionality while delivering maximum value to the project.
- Reuse: A 10X Engineer would identify opportunities to reuse and repurpose resources, efforts, infrastructure, and costs to minimize waste and foster innovation.
- Mentoring: A 10 Engineer would create strategies to mentor the next generation of engineers.
Publicis Sapient also sponsored ReactConf 2023 and I had the opportunity to attend a React Conf 2023 workshop conducted by Kyle Simpson, a renowned JavaScript developer and author of the "You Don't Know JS" series. The workshop, titled "Thinking & Coding Algorithms," provided insights into solving complex JavaScript problems and exploring different types of design patterns with respect to JavaScript.
Transitioning from React.js to React Native
My curiosity to learn and explore React beyond web made me create a personal project on React Native. I documented my learnings in an article, sharing the basics of getting started with React Native and creating native Andriod and iOS apps using JavaScript, React, and web technologies.
The article explored the fundamental differences between React Native and React, focusing on component semantics, navigation essentials, and sharing insights on getting started with React Native development.Additionally, I delved into the nuances of React Native styling, including CSS-inspired styling, inline styles, and the use of the StyleSheet object. This insightful post served as a quick start guide, offering essential notes made during my initial phases of learning React Native basics.
Travel Adventures: First International Trip to Thailand
Taking two trips to Thailand this year, I explored the pristine beaches, bought toys and collectables, and cherished yummy thai street-food. For those of you who don't know, I collect Lego and Hot Wheels as a hobby and Thailand has many great places for toy collectors like Mega Plaza, Lego Official Stores, ToysRus, etc.
Also, I learnt some Thai cooking by enrolling for a Thai Cooking Course!
Career Goals for 2024
After taking a 1.5 month break for recharge, I have started hunting jobs in a happy and fulfilling company. For me, culture of the company matters profoundly as I believe I can thrive professionally in a workspace where the focus is growth, innovation and assertive/respectful interactions. Somewhere similar to Altimetrik, where an employee's contributions are recognised, cherished and celebrated.
In the meantime, I am up-skilling myself to become a Full Stack developer by learning MERN Stack. I chose this because I am already proficiant in JavaScript.
As I reflect on 2023, I am filled with gratitude for the opportunities, learnings, and achievements that have shaped my growth as a frontend developer. I look forward to another year of the ever-evolving world of web dev journey