1.3 Senior Developer - Milancho/CareerPathGuideline GitHub Wiki
- Helping your team learn and grow
- Planning and architecting the solution
- Communicating effectively with your team and client
7 key strengths that senior+ / staff level engineers should be known for: π
- Ship and model the highest quality of work
- Influence the orgβs culture around best practices in testing, rollouts, monitoring, scaling, etc.
- Spot and solve pain points or weakness in technical and organizational systems
- Lead complex projects with clear deliverables & milestones that may span years
- Partner with cross-functional leaders in design, product, security, data science, to work towards larger team goals/projects
- Give strong technical / business communication both oral and written
- Provide mentoring, pairing, onboarding, documentation - to help the team level up
- Senior+ engineers are force multipliers, technical owners, and engineering culture mentors. π
- The main objectives shall be to design, implement, test, and maintain software
- Manage product technical roadmaps and dependencies.
- Technical leadership experience, leading small to medium-tech teams
- Continuous improvements of existing processes and business flows.
- Identify repeatable processes and automate them quickly
- .NET Framework, JavaScript, TypeScript, Angular
- Experiences with databases (SQL Server, NoSQL databases).
- Experience with Scrum methodology and Agile tools
- Code reviews
- Understanding of common design patterns and engineering practices.
- Familiarity with Azure (serverless, IoT, infrastructure).
- Continuous Development with Continuous Integration (CI/CD).
- Experience with test-driven, agile development and a continuous integration build environment
- Solid understanding of TDD, code coverage, and code quality.
- Good communication skills and fluent English
- Good understanding of SOLID principles, OOP, patterns
- Knowledge of Unit Testing
- Ability to communicate well with both technical and non-technical peers
- Commercial experience in software architecture (N-Tier, SOA, Microservices)
- Experience with cloud-based platforms (Azure or AWS)
- Experience with NoSQL Storage, Elasticsearch, and the ELK stack
- Experience in some of .NET Core, React/Angular, Micro Services, Docker, Kubernetes, Azure, ADO, Databricks, Spark, SQL, Azure Event Hub, Azure Service Bus Relay, Event Driven Architecture, CI/CD, TDD, BDD, Consumer Driven contracts. Experience in eXtreme Programming practices would be advantageous. Experience in implementing cloud-native scalable architecture in an agile team.
Hards skills will make you a good engineer:
- Performance optimizations
- Data structures and algorithms
- Relational and non-relational databases
- Problem-solving and analytical thinking
- Software architecture and design patterns
Responsibilities:
- Work with the team to design, implement & test software
- Mentor and train other team members on design techniques and coding standards
- Adapt the Agile Development Methodologies to fit your way of working (we are proud of our world-class Agile Coaches and Scrum Masters)
- Offer a fresh perspective and question why things are done in a certain way
Qualifications And Experience
- Good understanding of SOLID principles, OOP, patterns
- Knowledge in Unit Testing
- Ability to communicate well with both technical and non-technical peers
- Execute with pragmatism
The following skills would be a plus:
- Commercial experience in software architecture (N-Tier, SOA, Microservices)
- Experience with cloud-based platforms (Azure or AWS)
- Experience with NoSQL Storage, Elasticsearch and the ELK stack
2
WHAT WILL YOU DO?
design, develop and implement complex solutions using the latest technologies and tools, solve technical problems and write high quality code using proper coding standards, record and track changes regularly throughout the development lifecycle using source control, learn something new and also share your knowledge about new technologies with the team, and much more!
REQUIREMENTS:
- Excellent technical knowledge of programing in C# and .NET platform,
- understanding of software development life cycle and experience with developing in an agile environment,
- Knowledge of the following technologies: .NET framework, ASP.NET, MVC, JavaScript, .NET Core β advantage,
- Good knowledge of relational databases, MS SQL Server and ORM technologies,
- Familiarity with architecture styles/APIs (REST, RPC, SOAP),
- Willing to share knowledge and learn new technologies,
- Familiarity with web services architecture (REST, SOAP),
- Fluency in spoken and written English.
WHAT WE OFFER:
- Opportunity to work with an exceptional team of people,
- Excellent environment for personal and professional development,
- Opportunities for further professional training and certification,
- Stable and well-organized working conditions with the ability to work on various interesting projects,
- Dynamic environment in a technologically advanced organization,
- Many benefits that support your personal life: flexible working hours, family-friendly business, sports and cultural activities,
- Fostering innovation and sharing ideas and knowledge,
- Work in an international environment.
3
Required technical skills/experience:
- Minimum 5 years of experience in Software Development using Microsoft stack of technologies
- Proficient knowledge of C#
- Experience in .NET Core 3+
- Experience working with distributed architectures
- Experience with message queues/topics
- Identity Server 4 knowledge is a plus
- Experience in GIT and working with Pull Requests/code reviews (must)
- Knowledge of Authentication protocols, OpenID protocol
- Experience in front-end development using SPA framework
- Knowledge of JavaScript - Knowledge of HTML5 & CSS3
- Familiar with Agile methodologies, SCRUM, Kanban
- Experience with team collaboration systems/software (GIT, Jira, Confluence, etc.)
Unit testing:
- Experience in Moq or other mocking framework (optional)
Distributed systems:
- Experience in integration with other systems (internal/external) (must)
- Experience in JSON, WebApi, Swagger, Open API Spec. (must)
- Experience in message-based communication (queues/topics) (optional)
- Experience in Kafka (Azure Event Hub) (optional)
Architecture/Patterns/Principles:
- Knowledgeable about different design patterns (Mediator, Repository) (must)
- Microservices architecture (optional)
- SOLID principle (optional)
Front-End experience:
- Experience in HTML and JavaScript
- Experience in front-end frameworks: Angular, React
Required soft skills:
- Good communication skills
- Good analytical skills
- Organized and able to work with tight schedules
- Solid spoke and written English
senior engineer
#1 - Strong technical skills - of course.
But here's what I also see most senior engineers have.
A senior engineer has these 5 traits:
- Communication skills
- Willing to help juniors
- Understands tradeoffs
- Knows how to simplify problems
- Understands business requirements
Senior Developer
- Scrum teams
- Experience with Agile/Scrum
- Cloud-native applications
- Kubernetes and Docker
- Domain-Driven Design (DDD)
- Event-driven microservices
- Command Query Responsibility Segregation (CQRS)
- Event Sourcing (ES)
- Single Page Applications (SPA)
- WebComponents
- Adaptive Cards