Application Architect -TechLead.The Application Tech Lead at Nihdi ICT holds a key position in the organization's technical leadership, primarily within a specialized application team. He is responsible for delivering impactful technical solutions to a specific portfolio. His role encompasses the technical oversight of new project initiatives and the maintenance of existing applications. Working collaboratively with developers and other team members, including functional experts, and business analysts, he also coordinates with the portfolio architect and the Infrastructure & Operations (I&O) teams. Reporting directly to the Project Lead, his expertise is crucial in driving innovation and integrating technology solutions that align with business goals and enhance operational efficiency.
|
🔑 Key Responsibilities of an application Architect
The Tech Lead's role is a blend of high-level technical oversight and hands-on coding. This dual responsibility ensures that the Tech Lead remains deeply connected to the technical details and challenges of the project while providing technical leadership and technical design direction. The Key responsibilities of a tech lead are:
- Technical Leadership and Coaching:
- Providing guidance and mentorship to the development team, fostering a culture of technical excellence.
- End Technical Responsibility of Software Systems within application team:
- Overseeing all technical aspects within the application team, ensuring that software development and deployment meet organizational standards and goals.
- Active Development Contribution:
- Dedicating a significant portion of time to hands-on development work, contributing to coding, feature development, and bug fixes.
- Preparation of Technical Deliverables:
- Creating detailed technical documentation for software releases, including infrastructure requests and release documents.
- Requests for Configuration Changes to I&O:
- Managing configuration change request made to I&O to ensure system stability and performance.
- System Design:
- Designing scalable, reliable, and maintainable systems while adhering to architectural standards and complementing the overarching architecture in collaboration with the architecture team.
- Requirements Analysis:
- Collaborating with analyst to refine requirements and translating them into robust technical solutions.
- Code Review and Quality Assurance:
- Ensuring code quality through thorough reviews and implementing stringent quality assurance processes.
- Performance Optimization:
- Regularly assessing software performance and making necessary adjustments for optimization.
- Security Considerations:
- Incorporating up-to-date security practices to safeguard software systems against threats taking into account architectural decisions.
- Technology Evaluation and Integration:
- Assessing and integrating new technologies that align with business objectives and enhance system capabilities taking into account architectural decisions.
- Troubleshooting and Support:
- Leading the resolution of complex technical issues, providing expert troubleshooting and support.
- Adherence to Architecture Standards and Collaboration:
- Collaborating with the portfolio architect to align with the strategic architecture while retaining the discretion to make complementary design choices.
🧠 Key Technical Expertise for an application Architect
A .Net Technical Lead should possess a comprehensive set of technical skills and expertise, including but not limited to the following areas:
- .Net Framework and .Net Core:
- Proficient in building applications using C# in both .Net Framework and .Net Core.
- Experience, among other things, with asynchronous programming, dependency injection, middleware, ...
- Backend Development:
- Proficiency in creating Web APIs with .Net.
- Experience with WCF or REST for building service-oriented applications.
- Knowledge of NServiceBus or similar frameworks for building distributed systems
- Knowledge of Azure Service Bus is a plus.
- Frontend Development:
- Skilled with Blazor for building interactive web UIs with C# rather than JavaScript.
- Experience in developing MVC applications.
- Unit Testing:
- Experience in writing and maintaining unit tests.
- Familiarity with testing frameworks like MsTest.
- Design Patterns:
- Thorough understanding of software design patterns such as Singleton, Repository, Factory, and Strategy.
- Ability to apply patterns in a practical context to solve design problems and ensure code maintainability.
- SQL:
- Strong knowledge over SQL language for querying databases.
- Knowledge of database design (normalization, indexing, denormalization, …) and experience with SQL Server.
- Git:
- Expertise in version control using Git.
- Experience with branching strategies and repository management.
- Basic Understanding of Networking:
- Fundamental knowledge of networking concepts, protocols, and configuration.
- Server Management:
- Basic understanding of server setup, configuration, and management.
- Familiarity with Windows Server environments and IIS.
- Security:
- Understanding of modern security practices and protocols, including OAuth and OpenID Connect, to secure applications against common threats and vulnerabilities.
- Cloud Services:
- Working knowledge of cloud services, preferably experience with Microsoft Azure.
- Understanding of containerization technologies like Docker and Kubernetes.
- Low Code Platform Integration:
- Experience with integrating traditional .Net applications with low code platforms such as Appian is considered an asset.
🧠 Key Soft Skills for an application Architect
For a technical lead, especially in a .Net environment, key soft skills would typically include:
- Leadership:
- Ability to inspire, motivate, and guide the other developers towards achieving project goals.
- Collaborative mindset to work with various cross-functional teams harmoniously.
- Awareness and consideration of team members’ emotions and motivations to create a positive work environment.
- Clear and effective communication skills, both verbal and written, for collaborating with team members, stakeholders, and non-technical audiences.
- Mentorship:
- Willingness to share knowledge, provide feedback, and foster professional growth among other developers.
- Ability to mediate disputes within the team and negotiate solutions with stakeholders.
- Problem-Solving & Decision-Making:
- Strong analytical abilities to identify issues and develop innovative solutions.
- Confidence and competence to make crucial decisions impacting project direction and execution.
- Capacity to understand the broader business goals and align technical objectives accordingly.
- Ability to empathize with customer needs and translate them into technical solutions.
- Resilience:
- Flexibility to cope with changing technologies, requirements, and environments.
- Capacity to prioritize tasks and manage time effectively to meet deadlines.
- Stamina to handle the pressures of deadlines and technical challenges without compromising performance.
- Commitment to stay updated with the latest industry trends and technologies.
- Language Proficiency:
- Mastery of either French or Dutch and English is a must. A passive understanding of the second national language (French or Dutch) is a nice-to-have.