Professional Self-Assessment

I am Dallas Gable, a software developer completing a B.S. in Computer Science (Nov 2025). My program work and this ePortfolio reflect a practical, security-minded approach to building systems, from Android and Node.js backends. Grounded in data structures, algorithms, and disciplined software engineering. Across these projects, I’ve focused on measurable impacts: safer authentication, cleaner architectures, and performance-aware code.

How the Program & ePortfolio Shaped My Skills and Goals

Completing the Computer Science program and assembling the ePortfolio helped to clarify my professional goals and values. These are to: ship secure, maintainable software; communicate effectively with teammates and stakeholders, and automate where it meaningfully reduces risk or workload. Coursework pushed me to apply theory (algorithms, databases, networking, security) to real deliverables, while the portfolio forced a higher bar: clean documentation, rationale for decisions, and evidence of outcomes.

  • Showcased strengths: secure credential handling in mobile apps, modular backend design, and careful performance analysis.
  • Shaped goals: continue building in roles that blend backend engineering, platform/security practices, and developer experience.
  • Prepared for employability: hands-on projects with measurable improvements (e.g., password hashing + salting, database refactors, API hardening), unit tests, and production ready code.

Skills Overview

Collaborating in a Team Environment

Throughout my course, I've learned the importance of working in a team, while utilizing powerful technologies to help that process.

For example, in my CS-250 SDLC course I went through mock scenarios that involved the whole Agile/Scrum workflow processes. This included working in a team to create user stories, plan sprints, and hold stand-up meetings, and communicating with stakeholders.

I've also gained experience with tools like Git/Github for version control and collaboration. This website actually uses Github Actionspace to automatically package and deploy changes to the website without manual intervention.

Even in this portfolio, I prioritized team-work in one of my enhancements. My Database enhancement creates a database agnostic framework that combines two different paradigms into one, dictionary driven module. This means that two different teams can use the same module, regardless of their underlying database technology.

Communicating with Stakeholders

As mentioned previously, CS-250 SDLC gave me experience in working with stakeholders to plan, gather requirements, and deliver a software solution.

Another course-specific example is my CS-465 Full-Stack Development course. One of the biggest components of this course involves working with the company to come to an end full-stack solution that meets their specific needs.

Data Structures and Algorithms

My course work has given me a solid foundation in data structures and algorithms.

In my CS-340 course, the front-end part of the CRUD uses extensive state management paradigms to efficiently display and sort through the large database set given to us.

Even in this Capstone, I have a Data Structures and Algorithms artifact that demonstrates my ability to refactor a Binary Search Tree (BST) implementation from C++ to Python, while also adding two additional sorting methods.

Software Engineering & Databases

This program has given me a solid foundation in software engineering principles, as well as database design. I've learned to prefer modularization and encapsulation over monolithic designs. This approach allows me to design efficient and maintainable software solutions.

I apply the same thinking to databases. I've learned to design schemas with clear boundaries, use migrations for changes, and optimize queries for performance.

Security

This program has emphasized the importance of security in software development, specifically as a fundamental aspect of the software development lifecycle. I've learned to integrate security practices from the beginning, rather than treating them as an afterthought.

In my CS-210 class, I learned to use industry standard tools to identify and mitigate security vulnerabilities in my code. This includes static analysis tools, dependency scanning, and secure coding practices. With this, I also learned how to read CVEs and classify them based on their severity and impact on my program.

Program Examples

  • CS-250 - This class was primarily centered around the SDLC and Scrum/Agile frameworks. The coursework helped me gain fundamental understanding of all three frameworks, and how to work together with a team and stakeholders to develop a software solution.
  • CS-210- This class was primarily centered around security analysis and mitigation. This coursework helped me learn about and how to use industry standard tools to identify CVEs, and their severity. It also taught me how to think about common vulnerabilities like cross-site scripting, injection attacks, rainbow table attacks, and why you should not raw store sensitive data.
  • CS-300 - This class was primarily centered around different data structures and algorithms to search, sort, add, and remove from them. This class really helped me understand Big-O notation as a theory, and how to adequetely determine the best algorithmic approach for a software's use case.
  • CS-360 - This class was primarily centered around receiving a framework and using it to build out an Android native mobile application. It helped strengthen my teamwork skills, as well as helped introduce me to native development as a whole. The most important skill it taught me was the ability to think about native implementations, and how it can vary based on the native OS or system.
  • CS-340 - This class was primarily centered around building out a client/server relationship using MongoDB and a frontend framework. Chiefly, it taught me how to think about database design decisions and why they mattered. It wasn't as simple as "MongoDB" is the best, I was taught to understand why it was the best database structure for the data I was handling.

How the Artifacts Fit Together

The artifacts form a coherent story of secure, maintainable software delivery while exemplifying my own strengths in different areas of Computer Science and Software Engineering.

  • Security Enhancement (Artifact 1): demonstrates practical cryptography, user-centric error handling, and retroactively thinking about security implications.
  • Service Design (This Website): shows RESTful structure, environment separation, and secure practices.
  • Algorithmic Thinking & Performance (Artifact 2): highlights thinking about data structure and trade offs between the variations. It highlights an ability to refactor an existing library, improve upon it, as well as benchmark the various algorithms to empirically measure which is the best.
  • Database & Modular Design (Artifact 3) showcases my ability to think outside of the box and compare two completely different database paradigms. It helps show my ability to abstract two existing frameworks into one, unified module, making it easier to use for teams that need to use both paradigms.

Together, these artifacts illustrate a complex understanding of software development, from secure coding to system design and performance analysis. Best to position me to deliver robust, maintainable solutions in real-world environments.

Professional Values & Next Steps

  • Values: simplicity over cleverness, security by default, evidence-based decisions, and teamwork focused mindset.
  • Near-term goals: join a team where I can own backend services end-to-end, strengthen platform security, and learn from my peers to strengthen my testing and design skills.
  • Long-term goals: lead initiatives that reduce operational risk and improve reliability through better abstractions, tooling, and documentation.