profile-pic
Thomas Christian Full-Stack Developer - UI/UX Designer - Software Engineer

Projects

Self-Assessment

Introduction

Throughout my journey in the Computer Science program at SNHU, I have developed a diverse set of technical skills and professional competencies that have prepared me for success in the field. This ePortfolio showcases select artifacts that demonstrate my proficiency in software engineering, algorithms and data structures, and database management.

Professional Growth and Goals

My coursework has helped shape my professional identity and career aspirations in several ways. The progression from foundational programming concepts to advanced software engineering practices has given me the confidence to tackle complex technical challenges. My initial courses laid the groundwork for my understanding of software design principles, while later courses deepened my knowledge of data structures and their practical applications. Through these experiences, I've developed a passion for full-stack development with a focus on creating robust, user-friendly applications. I aim to pursue a career as a software engineer, and the skills I've acquired have positioned me to contribute meaningfully to development teams.

Key Professional Competencies

Team Collaboration

While my educational journey has primarily involved individual projects, I've developed a strong appreciation for the principles of effective collaboration through my coursework. I've learned version control systems like Git, the theoretical foundations of branch management, conflict resolution, and collaborative coding practices. I've practiced these skills independently by maintaining multiple branches in my personal projects, simulating the workflow of a development team. I recognize that successful collaboration in software development extends beyond technical skills, it requires clear communication, respect for other perspectives, and a willingness to both give and receive constructive feedback. I look forward to applying these principles in a professional team environment, where I can contribute my technical skills while continuing to grow as a collaborative developer.

Technical Communication Skills

Throughout my coursework, I've focused on developing strong technical documentation skills that will serve as a foundation for stakeholder communication. I understand that effective communication with non-technical stakeholders is essential for translating business requirements into technical solutions. In my projects, I've practiced creating comprehensive documentation that explains complex systems in clear, accessible language. I've learned to create detailed documentation including architectural diagrams, API specifications, and user guides that demonstrate my ability to communicate technical concepts effectively. I've also developed skills in requirements analysis, translating functional needs into technical specifications. These capabilities will be valuable when communicating with stakeholders in future professional settings.

Data Structures and Algorithms

The program has equipped me with a strong foundation in algorithmic thinking and efficient data manipulation. I implemented various data structures including linked lists, binary search trees, and hash tables, gaining hands-on experience with their performance characteristics and trade-offs. I've applied this knowledge to solve complex computational problems, such as optimizing search algorithms for large datasets and implementing efficient sorting techniques. This in turn has sharpened my analytical skills and taught me to evaluate solutions not just for correctness, but also for efficiency in terms of time and space complexity.

Software Engineering and Databases

Through my courses, I've developed expertise in object-oriented design principles, database normalization, and full-stack development. I've gained experience with both relational database systems like MySQL and PostgreSQL, as well as NoSQL solutions like MongoDB. This versatility allows me to choose the right tool for specific data storage needs. In terms of software engineering, I've embraced design patterns and architectural principles that enhance maintainability and scalability. The Model-View-Controller pattern has been particularly useful in structuring applications with clear separation of concerns.

Security

Security has been a consistent focus throughout my coursework. I conducted comprehensive vulnerability assessments of existing codebases, identifying issues like SQL injection vulnerabilities, cross-site scripting risks, and insecure authentication methods. I implemented mitigation strategies including input validation, prepared statements for database queries, and proper encryption techniques for sensitive data. I've adopted a security-first mindset that influences all aspects of my development work. This includes implementing proper authentication and authorization mechanisms, and staying current with security best practices through continuous learning.

Portfolio Overview

This ePortfolio contains artifacts that showcase my skills across three key categories: software engineering, algorithms and data structures, and databases. The artifacts I've selected demonstrate not only my technical capabilities but also my growth as a computer scientist throughout the program. My first artifact, the Weight Logger Android App, exemplifies my software design skills through its implementation of the MVVM architecture pattern, secure user authentication, and intuitive UI design. The second artifact, the Animal Rescue Management System, showcases my proficiency with algorithms and data structures through efficient data retrieval algorithms and optimized collection implementations. Finally, the Animal Shelter Dashboard demonstrates my database expertise with its MongoDB integration, RESTful API design, extensive security features, and comprehensive data visualization capabilities. Together, these artifacts form a cohesive representation of my technical abilities and professional growth. They reflect my commitment to creating secure, efficient, and user-centered software solutions, a philosophy I'll carry forward into my professional career. Through the process of enhancing these artifacts for this portfolio, I've further refined my skills and demonstrated my readiness to contribute effectively in the field of computer science.