Net Tech Lead Interview Experience Selected
Summary
TLDRThe speaker discusses their career journey, starting with a support project and moving to self-driven work. They recount a challenging migration of a large SQL database from on-premise to AWS RDS, overcoming issues with complex data types and missing keys. They also touch on CI/CD practices using TeamCity and SonarQube, and their approach to release management. The script also covers design patterns, dependency injection, and coding standards, emphasizing test-driven development and clean architecture.
Takeaways
- 🚀 The speaker started their career in a support role and has since worked independently on projects.
- 🌐 They recently migrated databases from an on-premise SQL Server 2008 to AWS RDS, facing challenges with large and complex data types.
- 🔗 They collaborated with AWS teams to use the AWS Database Migration Service (DMS) for schema migration.
- 🛠️ They encountered issues with missing keys and had to manually upload backups to S3 for RDS.
- 📈 They automated the migration process with a single button click using AWS Lambda and Step Functions.
- 🔄 The speaker mentioned using TeamCity for continuous integration, which triggers builds and deploys to a Nexus repository.
- 🔑 They discussed the difference between authentication (logging in) and authorization (access to specific methods or actions).
- 💾 They use design patterns such as Singleton, Builder, and Observer in their projects.
- 📝 They follow coding standards and principles like SOLID and use dependency injection extensively.
- 📊 They use SQL queries to find patterns like the fifth highest salary or employees with more than three address records.
- 🔍 They monitor performance and optimize queries using execution plans and indexes.
Q & A
What was the main challenge faced during the migration to AWS?
-The main challenge was migrating a large number of databases (500 to 700) with complex data types from an on-premise SQL Server 2008 to AWS RDS, which uses newer versions of SQL Server.
What approach was initially attempted for the migration?
-The initial approach involved using AWS Database Migration Service (DMS) to migrate the schema without data, but it was unsuccessful due to missing keys and complex data types.
How was the migration process improved?
-The process was improved by leveraging AWS's IDS restore and backup feature, which was enabled only for SQL Server. This was done in collaboration with different AWS teams.
What role did AWS Lambda play in the migration process?
-AWS Lambda was introduced to automate the migration process, making it possible to perform all tasks with a single button click, including creating backups, uploading them to S3, and creating RDS instances.
What is the significance of the 'single button click' automation mentioned in the script?
-The 'single button click' automation signifies a streamlined and efficient migration process that reduces manual effort and potential errors, making the process more reliable and user-friendly.
How does the speaker's team handle new code integration and deployment?
-The team uses TeamCity for continuous integration, which automatically triggers builds and sends code for analysis to SonarQube. Deployments are handled through a pipeline that builds, packages, and deploys code to a Nexus repository.
What is the purpose of the shell script mentioned in the script?
-The shell script is used to automate the download of artifacts from the Nexus repository, determine the latest version, and handle deployment, which can be done using either C# or PowerShell commands.
What design patterns are commonly used in the speaker's projects?
-Commonly used design patterns include Singleton, Factory, Builder, Observer, and Dependency Injection. These patterns are implemented to manage dependencies and ensure a clean architecture.
How does the speaker's team ensure code quality and standards?
-The team follows a test-driven development approach with a focus on writing unit tests and maintaining high code coverage. They also adhere to the SOLID principles and use a bootstrapper file to register dependencies.
What is the difference between authentication and authorization as explained in the script?
-Authentication is the process of verifying user identity when logging into an application, while authorization is the process of granting access to specific methods or resources within the application.
How does the speaker's team handle database performance issues?
-The team checks for proper indexing, avoids unnecessary joins, and uses execution plans to identify performance bottlenecks. They also consider recompilation and other optimization techniques to improve database performance.
Outlines
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowMindmap
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowKeywords
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowHighlights
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowTranscripts
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowBrowse More Related Video
Книги які має прочитати КОЖЕН програміст
DevOps Interview For Experience : First Round Selected
Building a Serverless Data Lake (SDLF) with AWS from scratch
the coding project that improved my skill the most (senior developer, no cs degree)
AWS Solution Architect Interview Questions and Answers - Part 2
AWS Quick Start for SQL Server 2017 on Amazon EC2
5.0 / 5 (0 votes)