It all started in 1998, in Johannesburg, South Africa. Two young software developers fresh out of college had a vision to make process automation easy and change how business was done. Since then, K2 has grown into an award-winning business application software company with five offices and over 500? employees across the globe. K2's business applications and tools help people everywhere create successful solutions and increase agility.
We are looking for a Senior Software Engineer with strong experience in .NET and strong understanding of web communication. The main aim of the position is to be part of a team that creates and delivers robust cloud-ready quality software. You and your team members are responsible for planning, designing, developing, testing and rolling out the build as per specifications and other duties as assigned. This role focuses on product development.
As a Senior Software Engineer you will:
- Review requirements, specifications and technical design documents to provide feedback.
- Participate in design and architectural discussions and provide input and/or recommendations that will allow our application to be secure, more maintainable, testable, and scalable.
- Design, develop, and test microservices for a cloud-based environment.
- Design backend software components including new features and refactoring existing code.
- Design, develop and execute automation.
- Maintain architectural and code integrity of existing code.
- Develop our team's software engineering skills and maturity.
- Other duties as assigned
What you’ll bring to the table:
- B.S. degree in Computer Science, in a similar technical field of study or equivalent practical experience.
- 4+ years of software development experience.
- 3+ years experience in architecting and building web and windows services from ground up using .NET.
- 1+ years working with microservices.
- Proficient software development skills in .NET (C# preferred).
- Solid understanding in: Web communication; Designing RESTful web APIs; Unit testing and mocking frameworks; and Integration testing.
- Experience in engineering practices such as code refactoring, design patterns, and system designs.
- DevOps experience is beneficial.
- Familiarity with p/invoke (Platform Invocation Services)
- Experience designing and maintaining high availability services at scale.
- Familiarity with basic security considerations.
- Experience mentoring software engineers to improve their skills, and make them more effective product software engineers.
- Solid understanding of the full software life cycle.
- Excellent problem-solving and analytical abilities.
- Excellent teamwork and communication.
- Experience developing using Agile methodologies.