With Strong software development and mastery of engineering practices throughout the software development life cycle, Software Engineer solves technical challenges and collaborates within product group to deliver effective and consistent technology.
- we're looking for an energetic and creative individual who has a passion for technology. you'll be joining one of the world s top 10 software company to power better journeys
Education & Experience
- University degree in Computer Science, Information Technology or equivalent
- Minimum of 6-8 years of experience with hands-on development and exposure to advanced C# concepts, .NET framework and design patterns.
Technical Skills
- 6-8 Years experience delivering robust web-based products applications, using Microsoft tech stack including C#, WEB API, .NET CORE, SQL SERVER, and Angular.
- Azure (or any Cloud) industry expertise to facilitate Cloud Migration to lead cloud migration and post - optimization. Azure Devop ops and services.
- Understand Distributed systems
- Decoupled applications plugged-in a scalable network
- Resiliency, Caching, Queuing, Serializing
- Decoupled and distributed database
- Deployment, Monitoring and logging best practices and available tools like SPLUNK, Kibana, SWB, Jenkins, Airflow etc
- Entity Framework Core, LINQ, Apache Kafka or Azure Event Hubs, Linux,
- xUnit, Fixtures, Fluent Assertions, NSubstitute
- Knowledge on containerization (Podman & Kubernetes) and services like AKS(Azure)/EKS(AWS)
- Understanding of Service Oriented Architecture
- Mentorship skills and stakeholder management
- API development expertise - various protocol - REST, Open API, Throttling, limiting, security, monitoring etc
- Hands-on DevOps - expertise on some CI/CD tools
- Expert in software designing and strong problem-solving skills using design patterns
- Experience in static analysis tool and improving software quality together with team. Experience in refactoring legacy modules into robust and modern modules.
- Expert in one or more structural messages [XML(XSD), JSON(Swagger), and YAML]
- In depth knowledge in data structures and algorithms, knowledge in distributed data structures.
- Hands on experience with DB [at least 2 among embedded (eg SQLite), client-server (eg oracle), NoSQL distributed (eg mongo, couchDB)]
- Model, design and implement Application (batch, daemons) / service (REST, WS).
- You should be able to self-manage the complex modules
Other Skills
- Natural tendency to work collaboratively, solve problems with groups, find win/win solutions and celebrate success.
- Excellent English verbal and written communication skills to convey technical information to stakeholders and / or be able to influence technical decisions
- Awareness of latest technology trends and standards in the industry.
Common accountabilities:
- Proficient in technical knowledge to ensure team performs at a high level.
- Understands how main business drivers may impact on own area. Can assess complex problems with broad impact on the activity, improve processes, recommend solutions and risk mitigation plans. Able to communicate complex information.
- Works with a high level of autonomy, based on management directions. May contribute to planning of resources and budget.
Specific accountabilities:
Technical Excellence
- Producing code of high quality with high efficiency
- Work in each step of the product development cycle including creating technical requirements, complex feasibility studies, project planning, identifying dependencies and improvements
- Investigate, analyze & give recommendations on the root causes of complex software and system defects
- Solving problems/troubleshooting in a timely manner & with a high level of engagement
- Foster applications that are easy to monitor and operate, to improve infrastructure availability
- Apply best practices on code quality and security-safe code through non-functional requirements mastery, code reviews, coding guidelines, unit testing and code refactoring
- Technological Acumen - cross disciplinary knowledge (ex. UI, network )
Continuous Improvement
- Suggest evolution of the component and make recommendations on how to manage the debt of the code / clean up the code
- Improve the technical aspect of the project delivery and provide recommendations for engineering process improvement
Building cross-functional/technical teams & knowledge sharing
- Work easily with others/ensure smooth communication
- Consistently create successful engagement on projects and collaborate with cross-functional teams in driving operating and service excellence
- Attending to PE community events
- Contribute to the R&D cultural transformation and talent development through team members (junior members) technical coaching and mentoring (give an answer, provide feedback) - reactive is mandatory
- Delivering trainings that have been defined - optional
- Being a Developer advocate (depending on area of influence, going to hackathon, recruitment days, conference, participating to Opensource)