Kevin Crandall

Software Developer • Enterprise Applications • AI Solutions

CS 499 Computer Science Capstone

Professional Self-Assessment

In Progress

Completing the Bachelor of Science in Computer Science program at Southern New Hampshire University has significantly strengthened both my technical abilities and my confidence as a software developer. Throughout the program, I developed skills in software engineering, algorithms, database design, security, systems analysis, software testing, artificial intelligence, and full-stack application development while continuing to work full time in the financial technology industry.

The capstone provided an opportunity to integrate these experiences by revisiting a previous project, critically evaluating its strengths and weaknesses, and transforming it into a more secure, maintainable, scalable, and complete application. The resulting ePortfolio demonstrates not only the technical skills I developed throughout the program, but also the professional growth that has prepared me for increasingly complex software engineering and technical leadership opportunities.

Professional Growth

The Computer Science program strengthened my ability to approach software development as a complete engineering process rather than only as the act of writing code. Coursework in application development, software design, databases, algorithms, operating systems, testing, security, and artificial intelligence provided experience analyzing problems, selecting appropriate technologies, evaluating design alternatives, and testing whether a solution satisfies its intended purpose.

My coursework also complemented my professional experience at JPMorgan Chase. In my current role, I help lead the development of enterprise technology solutions that support thousands of internal users. I regularly coordinate project planning, software development, stakeholder communication, testing, implementation, and ongoing support. Applying concepts from the Computer Science program to these responsibilities has strengthened my technical decision-making and increased my ability to connect software solutions with organizational goals.

Developing the ePortfolio further reinforced this growth. Revisiting an earlier application made it possible to compare the decisions I made during CS 465 with the skills and judgment I developed later in the program. The process demonstrated that professional growth is reflected not only in learning new technologies, but also in recognizing limitations, improving earlier work, and making more thoughtful architectural decisions.

Collaboration and Team Environments

Collaboration has been essential throughout both my education and professional career. In my current role, I work with software developers, business analysts, product partners, infrastructure teams, support organizations, and executive stakeholders. These groups often have different priorities and levels of technical knowledge, requiring me to listen carefully, clarify requirements, explain constraints, and help the group reach informed decisions.

My experience leading a development team has also reinforced the importance of creating an environment where team members can ask questions, challenge assumptions, share ideas, and contribute to technical decisions. Effective collaboration requires more than assigning tasks. It requires clear goals, shared documentation, constructive feedback, and an understanding of how each person's work contributes to the larger solution.

The capstone code review reflects these practices. Before modifying the artifact, I evaluated its existing functionality, identified risks and opportunities, and developed an enhancement plan that could be communicated to peers, instructors, and technical stakeholders. This approach mirrors professional software development, where teams review existing systems and agree on priorities before making significant changes.

Communication with Stakeholders

The Computer Science program strengthened my ability to communicate technical information through written, visual, and oral formats. Coursework required design documents, diagrams, source-code documentation, research papers, presentations, testing reports, and explanations of technical decisions. These assignments helped me develop the ability to adapt information to different audiences and contexts.

In my professional role, I communicate with audiences ranging from developers and technical support teams to business partners and executive leaders. Technical stakeholders may require detailed information about APIs, application behavior, or implementation risks, while business stakeholders may need a clear explanation of user impact, delivery schedules, costs, and expected benefits. Being able to translate between these perspectives helps teams make better decisions and maintain alignment.

The ePortfolio demonstrates these communication skills through the code review video, enhancement narratives, repository documentation, visual page organization, and explanations of design trade-offs. Together, these elements present the technical work in a manner that is accessible to both technical and nontechnical readers.

Data Structures and Algorithms

Coursework in data structures and algorithms improved my ability to evaluate how data is organized, retrieved, and processed. These concepts apply not only to traditional algorithm exercises but also to practical application design, where performance may depend on how queries, collections, search operations, sorting rules, and pagination are implemented.

During the capstone, I redesigned the Travlr Getaways data-retrieval process so searching, filtering, sorting, and pagination occurred through the REST API rather than independently within each client application. This reduced unnecessary data transfer, centralized business logic, and allowed both the Angular administrative application and the customer-facing website to receive consistently processed results.

This work reinforced the importance of evaluating trade-offs when designing computing solutions. A solution must produce correct results, but it should also consider scalability, maintainability, data representation, compatibility, and resource usage. These considerations will continue to guide how I approach enterprise application development.

Software Engineering and Database Development

The program strengthened my understanding of professional software engineering practices, including modular design, requirements analysis, version control, testing, documentation, secure configuration, and iterative development. These practices help ensure that software can be understood, maintained, tested, and extended after its initial implementation.

The software engineering enhancement applied these concepts by improving error handling, validation, authentication, environment configuration, user feedback, responsive layouts, and code organization. These changes established a stronger foundation for later improvements and reduced duplicated or inconsistent behavior across the application.

The database enhancement expanded the MongoDB architecture through related Category and Review collections, ObjectId references, numeric fields, database indexes, schema validation, calculated review metrics, and aggregation pipelines. These improvements supported customer reviews, trip ratings, category management, and an administrative reporting dashboard.

Completing these enhancements demonstrated how closely software engineering and database design are connected. Changes to a database model affect API contracts, validation, client-side models, forms, business logic, testing, and user interfaces. Maintaining consistency across these layers is essential to building reliable full-stack applications.

Security Mindset

Developing a security mindset has been an important part of my education and professional growth. Secure software development requires anticipating how systems might fail, how data might be misused, and how unauthorized users could attempt to access protected functionality. Security must therefore be considered throughout application design, implementation, testing, and maintenance.

In the enhanced Travlr Getaways application, administrative operations remain protected through JSON Web Token authentication. Request validation ensures that required information is present and properly formatted before it is stored, while centralized error handling provides consistent responses without unnecessarily exposing internal application details.

The database enhancement also strengthened data integrity through Mongoose validation, restricted rating values, required relationships, and controlled API operations. These measures demonstrate that security includes more than authentication. It also includes protecting the accuracy, consistency, confidentiality, and reliability of application data.

Explore the Portfolio

The artifacts in this ePortfolio fit together as a progression of improvements to the Travlr Getaways full-stack application. The code review evaluates the original artifact and establishes the roadmap for the three enhancement categories. Each enhancement then addresses a different aspect of the application while contributing to the overall quality of the final product.

Project Code Review

The code review examines the original application's functionality, structure, algorithms, database design, security, and opportunities for improvement. It establishes the enhancement plan completed throughout the capstone.

Software Design and Engineering

The first enhancement improved application architecture, validation, error handling, authentication, configuration management, maintainability, responsiveness, and usability.

Algorithms and Data Structures

The second enhancement moved searching, filtering, sorting, and pagination to the server, improving scalability and ensuring that both application interfaces used consistent query-processing logic.

Databases

The third enhancement introduced related MongoDB collections, stronger validation, database indexes, customer reviews, rating calculations, aggregation pipelines, and administrative reporting.

Together, the artifacts demonstrate skills in full-stack development, software architecture, algorithms, database design, API development, security, testing, documentation, user experience, and technical communication. They also demonstrate my ability to evaluate existing software and implement improvements that deliver measurable value.

The pages that follow document each stage of the enhancement process, including the original code review, the technical improvements made to the application, implementation decisions, design trade-offs, and the resulting GitHub repositories.

Professional Goals

Completing the capstone has further clarified my professional goals. I plan to continue designing and leading the development of enterprise software solutions that combine modern application architecture, cloud computing, artificial intelligence, automation, and secure development practices.

My current work developing AI-powered support solutions has shown me how effectively designed technology can improve operational efficiency and the user experience. I want to continue building solutions that translate complex technical capabilities into practical business value while also expanding my responsibilities in software engineering and technical leadership.

I also plan to continue my education by pursuing a master's degree at Southern New Hampshire University. Continuing directly into graduate study will allow me to build on the momentum and skills developed during the bachelor's program while deepening my knowledge in areas that support my long-term career goals.

Conclusion

This ePortfolio represents more than a collection of completed assignments. It reflects the knowledge, technical skills, professional values, and growth developed throughout the Computer Science program. The work demonstrates my ability to analyze existing software, collaborate with stakeholders, communicate technical decisions, evaluate design trade-offs, and implement secure, scalable, and maintainable computing solutions.

The technical artifacts that follow provide evidence of these abilities through the evaluation and enhancement of a complete full-stack application. Together, they represent the foundation I have built as I continue growing as a software developer and technical leader.