GSoC Journey: Final Week of Coding Period
Hello Devs,
Myself Senthil Athiban, a final year undergraduate student at Madras Institute of Technology. This blog represents a continuous series documenting my journey through GSoC. If you haven’t already read my previous blogs, I encourage you to check out my previous blogs here. I have been selected as a GSoC student at OpenMRS for the Validation Rule Builder for the Form Builder project. My primary mentor is Dennis Kigen, and my backup mentor is Hadijah Kyampeire.
GSoC Admin Meeting
This week, on August 12, 2024, we contributors had our final GSoC Social Hour with our GSoC Admin. It was a valuable session where we had the opportunity to ask questions about OpenMRS and open-source contributions, as well as engage in casual conversation. Additionally, We received some insightful career advice, which I plan to integrate into my professional journey.
📅 Week 12: August 12 — August 17
Tasks to be Completed:
- Review Changes & Bug Fixes: Identified various bugs through manual testing and worked on fixing them.
Tasks Completed:
- Fixes on Editing specific
failsWhenExpression
in Validators: Video Walkthrough - Fixes on Deleting Specific Conditional Logic: Video Walkthrough
- Fixes on Deleting All Conditional Logic Associated with a Specific Condition: Video Walkthrough
- Fixes on Deleting a Mistakenly Chosen Condition/Action and Reverting the Schema: Video Walkthrough
Lesson Learned:
Throughout my GSoC journey, I’ve adopted several strategies that have significantly contributed to the quality and functionality of my project:
- Client-Centric Perspective: One common mistake developers often make is thinking purely from a developer’s perspective rather than a client’s. My primary principle is to always consider the client’s viewpoint. Engaging with clients helps build a more intuitive and user-friendly product that truly meets their needs.
- Early Product Familiarization: Utilizing the product extensively during its early stages is crucial. This deepens your understanding of its features and workflow, laying a solid foundation for future development.
- Thoughtful Technology Selection: After gaining an understanding of the product, it’s important to think like a developer, choosing the right technologies, tools, frameworks, and more.
- Readable and Contextual Code: Writing readable code that provides clear context not only improves maintainability but also enhances collaboration. For instance:
const a = 2;
if(a % 2 === 0 ){
// .. do math logics here
}
const a = 2;
const isEvenNumber = a % 2;
if(isEvenNumber){
// do math logic here
}
Both snippets determine whether a number is even, but the second snippet provides additional context, making the code more intuitive and easier for other developers to read and understand.
In conclusion, this final week of the GSoC coding period has been a time of refining, learning, and solidifying my development practices. By focusing on client-centric perspectives, early product familiarization, thoughtful technology choices, and writing clear, context-rich code, I’ve been able to enhance the quality of my contributions. This journey has not only improved my technical skills but also deepened my understanding of effective software development. As I move forward, these lessons will continue to guide me in building user-friendly, robust, and maintainable products.
About Me
I’m Senthil Athiban, a final-year undergraduate student from India. By day, I play with VS Code by building new projects, and by night, I contribute to projects on GitHub. My journey is driven by a passion for software development and a curiosity to explore new technologies.
🔗 Connect with Me
- GitHub: senthil-athiban
- LinkedIn: Senthil Athiban M
- Twitter: @senthil_k8s