• Home
  • Skills
  • References
  • Concepts
    • .NET Coding Tips
    • Interfaces
    • Abstraction
    • Inheritance & Delegation
    • Design Patterns

ASP.NET Skills


ASP.NET Web Application Development and Architecture

Nannette Thacker is an experienced contractor with over 20 years in Software Development and Architecture. She has a proven track record of delivering high-quality projects across various industries.

  • Experienced Software Architect: With expertise in designing and implementing scalable software solutions, Nannette has a demonstrated history of leading development teams and delivering high-quality software products.
  • Senior Full-Stack Developer: who specializes in back-end development, including class libraries, RESTful web services, APIs, and web forms. She is an expert in relational database design, complex SQL queries, troubleshooting, and detailed pre-testing, resulting in robust and efficient software solutions.
  • Technical Manager/Team Leader: Nannette is capable of leading the recruitment process, including interviewing, testing, and hiring top talent. She mentors team members and conducts code reviews to maintain high-quality deliverables. She provides technical guidance and fosters a collaborative team environment.
  • Software Development Life Cycle (SDLC) Management: Led end-to-end SDLC processes, from requirement analysis and planning to design, implementation, testing, deployment, and maintenance.
  • Modular Architecture: Leveraged modular development to enhance code reusability and maintainability.
  • Utilized Azure DevOps: To define, prioritize, and track features and user stories, aligning with project goals and timelines.
  • Remote Development: She has successfully worked remotely for over 20 years, demonstrating strong self-discipline, effective communication, and the ability to deliver high-quality work in a remote environment.
  • Versatile Developer: She has a proven ability to excel both as a collaborative team player and an independent contributor who is passionate about coding, consistently delivering high-quality work.
  • Requirements Gathering and Analysis: Capable of expertly gathering and/or analyzing detailed requirements, providing well-thought-out evaluations. Proactively suggests improvements and identifies potential flaws to achieve optimal project outcomes.
Tools and Skills
  • Development Tools: Visual Studio, ASP.NET Framework, VB.NET, C#, JavaScript, jQuery
  • Database Management: MS SQL Server Management Studio (SSMS), relational database design, normalization, complex SQL queries
  • Web Development: Web Forms, CSS, HTML, N-tier development, REST web services
  • Agile Methodologies: Successfully applied Agile practices to enhance project management and team collaboration
  • Azure DevOps: Created and managed features and user stories, maintaining clear requirements and efficient tracking of project progress
  • Leadership: Mentored and trained junior developers, created hiring questionnaires, assigned tasks based on team skills
  • Server Administration: Windows Web Server and IIS administration
  • SaaS Applications: Specialized in subscription web applications
  • Troubleshooting and Bug Fixes: Assisted junior developers, performed code reviews, and delivered high-quality results
  • Team Collaboration: Promoted cross-training and a supportive team environment, fostering coverage and knowledge sharing
  • Version Control: Visual Studio Team Services, GIT Code Repository through Team Explorer
  • Code Management: Established standards for branch creation and code check-in, responsible for code merges before publishing
  • Tools and Technologies: Codesmith ORM Generator, Visual Studio, WinMerge for code comparison, Progress Telerik DevCraft ASP.NET Ajax Controls
Case Study: Learning Management System
One of the most challenging projects I worked on was developing a learning management system for nearly 2000 clients. The main challenge was ensuring the system could handle high traffic and provide a seamless user experience. I overcame this by implementing a scalable architecture using modular development and optimizing database queries. Additionally, I led a team of developers, ensuring clear communication and effective task delegation.
  • Developed an online Learning Management System, SAAS with nearly 2000 clients - https://traininggrid.com/
  • Pennsylvania client: Remote.
  • Developed and Maintained LMS: Spearheaded the development and maintenance of a comprehensive learning management system, enhancing user experience and system functionality.
  • Customization and Scalability: Web application designed to be highly customizable and scalable to meet the specific needs of different clients and to grow with the organization.
  • Automation: Consists of many administrative tasks to improve efficiency and reduce the workload for administrators, such as training assignments and reporting by location, role, job, individuals, and more.
  • User Authentication and Security: Implemented robust login and authentication mechanisms, providing secure access for thousands of users.
  • Reporting and Analytics: Designed and integrated advanced queries and reporting features, enabling detailed tracking and analysis of user progress and performance.
  • Video Training Integration: Programmed mechanisms to allow users to view video training modules, facilitating seamless access and playback.
  • Questionnaire Functionality: Developed systems for users to take questionnaires and assessments, supporting diverse educational needs and compliance requirements.
  • System Scalability and Performance: Optimized system performance and scalability, accommodating growing user bases and increasing data loads.
  • Modular Development: Each module handles a specific aspect of the application, making the codebase easier to understand and manage. This aligns with the Single Responsibility Principle, ensuring that each module has a clear and focused purpose. Modules can be reused across different parts of the application, thus reducing redundancy and accelerating development by leveraging existing components. Modules can be deployed independently, enabling more frequent and targeted updates. This reduces downtime and allows for quicker delivery of new features and bug fixes.
    Modular Examples:
    User Management Module: Handles user registration, authentication, and profile management.
    Course Management Module: Manages the creation, updates, and deletions of the Training.
    Training Assignment Module: Manages the selection and assigning of training courses.
    Reporting Module: Allows users to generate custom reports on user progress and course completion.
  • Git Version Control: Feature development, bug fixes and releases were handled via Git. All code changes were reviewed through pull requests to a parent branch. We had a main parent branch for the entire project, but each module had its own module parent to allow merging each participating developer's branch into the module parent without yet pushing to the main parent. This usage helped maintain code quality and facilitate collaboration.
  • Code Management: Established standards for branch creation and code check-in, responsible for code merges before publishing

Case Study
Proof of Concept Feasibility Study
Challenge: A recent project required setting up a dashboard for managers to view training completion percentages and other relevant data across their units, districts, and zones. The challenge was that obtaining accurate percentages necessitated running a complex query on all training data for each location. I anticipated that executing this query for even just five locations each time a user accessed their dashboard would lead to significant performance issues, especially since many users managed far more than five locations.

Solution: To address this, I conducted several feasibility studies to validate my concerns and devised an alternative solution. I developed a web service that periodically ran the necessary queries for each client and stored the updated percentages in a separate table for dashboard display. Although the dashboard results were not in real-time, they were updated every 20 minutes, which was acceptable to customers.

Outcome: This approach ensured that the dashboard remained responsive and efficient. Additionally, when a new, large client joined, their percentage report initially took 20 minutes to generate. I optimized the query, reducing the execution time to under 2 minutes for this client, while other clients experienced query times of just a few seconds.

Handling Architectural Risks
Mobile vs Web Application: When developing a mobile application, it was crucial to address architectural issues to ensure a single set of shared code. The mobile app needed to call a web service to retrieve data for display, while reusing the majority of the web application’s code. To achieve this, the web application’s architecture was restructured, encapsulating all functionality within class libraries. This allowed both the web forms and the mobile web service to call these classes efficiently.
Application Architect
  • Role of Application Architect: As an Application Architect, I ensure that software solutions are designed to meet business needs, are scalable, maintainable, and align with best practices. I play a crucial role in defining the architecture, guiding the development team, and ensuring the final product meets quality standards.
  • Designing Scalable Applications: To design scalable and maintainable software applications, I start by understanding the business requirements, then choose appropriate design patterns and technologies. I focus on modularity, reusability, and clear documentation to ensure the application can scale and be maintained easily.
  • Detailed Requirements: To ensure that my designs meet both functional and non-functional requirements, I collaborate closely with stakeholders to gather all requirements, then create detailed design documents and prototypes. Regular reviews and testing are conducted to make sure requirements are met.
  • Secure Coding Best Practices: To integrate security into my architectural designs, I follow best practices such as secure coding standards, encouraging regular security reviews, and incorporating security features like encryption and authentication. I also make sure a team member is tasked with staying updated on the latest security threats and mitigation strategies and shares those with the team.
Agile Development
In order to maintain high-quality software development and allow the team to adapt to changes quickly and efficiently, I encourage Agile Development using these methodologies:
  • Iterative Development: I encourage code to be developed and delivered in small, manageable increments or iterations which may last a few days to a few weeks, depending on the complexity of the project. This allows continuous feedback and adjustments to make certain the final product meets user needs and expectations. It also helps identify and address issues early in the development cycle.
  • Continuous Integration (CI): I encourage frequent integration of code changes into a shared repository, often multiple times per week or even per day depending on the project. Thus code merges can be tested to detect integration errors as quickly as possible. This helps in identifying and fixing bugs early, reduces integration problems, and ensures that the software is always in a deployable state. It also encourages collaboration among team members.
  • Regular Retrospectives: In order to continuously improve the team's workflow and performance, regular meetings are held at the end of each iteration to reflect on what went well, what didn't, and how processes can be improved. This enhances team communication and helps in identifying and resolving issues that may be hindering progress.

Shining Star Services LLC

Bill Rate: $135-$155 per hour depending on complexity.
No bid jobs.
Contact:

ASP.NET Web Application Development

We specialize in creating comprehensive web applications, covering everything from relational database design to front-end and back-end development, class libraries, web services, and more.

© 1997-2025 Shining Star Services LLC - All Rights Reserved.