Snr .Net Developer
in Cape Town
Leading Document Automation software company based in Bellville with offices in Seattle and London are looking for a Snr level Software Developer to join their team CPT based engineering team.
Helping organizations create business critical documents more efficiently & accurately - from pitch presentations and proposals, to contracts and statements of work - aligning all documents to the company CI.
Working closely with Microsoft to enhance document productivity across the Office platform. Their software is incredibly powerful but highly intuitive and very easy to use. Even the most non-technical of users can quickly create accurate, personalized and compliant documents. Clients include law firms and organizations that want to streamline their bid, sales and content management processes.
What we need you for:
Working closely with the VP of Engineering and his team in the following areas:
Development & Technical Responsibilities
- Develop highly performing, robust, quality and scalable features - defined best practice.
- Express Programming Omnipotence;
- Have an excellent understanding of your given programming environment to set precedent, and ensure correct habits. Knowing different ways to implement (and know which one is the best approach)
- Know the language's methods, syntax, structure, parameterization, memory leaks, and looping methodologies without the need to regularly consult the documentation.
- Know the best practices for development with authority
- Know when a framework is required, a nice-to-have, and when to avoid.
- Contribute to technical design decisions and technical discussions and challenge peers to ensure the best possible technical approach to building solutions are implemented.
- Plan & configure development environments
- Attend to Environment Issues found on Dev- & QA environments
- Keep up to date with trends and new technology
- Be aware of the latest trends. Read the latest articles and blogs. Try out the latest tools and experiment with new APIs. Help spread this mindset across the team.
- Participate in monthly meetings/workshops to go over new software / technologies/ capabilities
- Provide technical guidance to developers to help team successfully develop and deploy solutions
- Provide support to development team to diagnose and resolve application, configuration, and code level technical support issues.
- Perform software version control and maintain periodic compilation schedule
System Development Life Cycle
- Understand the product development life cycle and what others do
- Work with team to identify, design and implement SDLC processes.
- Requirements Analysis
- Work with product owner to unpack-, understand-, challenge and refine requirements
- Technical planning
- Work with technical lead and architect to translate requirements into technical design
- Provide input to architecture and design
- Work with technical leads to validate and adjust software architecture if necessary.
- Analyse risk and report problems in meeting system requirements
- Team Ceremonies
- Participate and contribute to backlog grooming, storyboarding, task breakdowns, estimations, etc.
- Support the implementation of the Agile/Scrum methodology principles, processes and supporting software within the team
- Ensure that code documentation, within area of responsibility is created, stored and maintained for current and future use.
- Timely and accurate reporting
- Testing - understand and support testing and maintenance procedures and activities.
- Bug Management - participate and contribute to the Bug Grooming ceremonies
- Assist with creation of Builds
- Deployment Testing
- Assist with solutions deployments and implementation to ensure successful delivery
- Mentor junior developers
What You Will Bring to our Team:
- Identify issues, problems and opportunities - recognizes issues, problems or opportunities and determines whether actions are needed.
- Improve the product quality and team's efficiency by being proactive in establishing and implementing development standards, work processes, tools and technologies used, etc. in conjunction with Director of Product Engineering.
- High attention to detail (accuracy imperative)
- Ability to see beyond the obvious.
- Ability to focus despite distractions, fanatical about detail.
- Abstract thinking
- The ability to hypothesize and see the bigger picture.
- Assuming responsibility and accountability for the successful completion of tasks and adhering consistently to standards of excellence. Ensuring that all relevant details have been considered.
- A methodical step by step approach to thinking that allows you to break complex problems into single and manageable components. A demonstration of the ability to apply logical thinking to gathering and analysing information, designing and testing solutions to problems, and formulating plans.
- Reasoning by elimination- analysis of a problem into alternative possibilities followed by a systematic rejection of unacceptable alternatives
- Compare sets of data from different sources; identify cause and effect patterns and draw appropriate conclusions.
- Work with IT Operations team on the best practices for architectural design, configuration, security, implementation, and disaster recovery procedures
- Lead by example
- Your actions and work speak for themselves. The rest of your team will begin to look to you for guidance, and therefore, you start to become that mentor within the team. If you act in a certain way, then others will tend to imitate you, especially if they look up to you. Be aware of your actions and how others view you.
- Motivate others & coach
- Motivate and coach other developers to do their best work. Motivation can be as simple as helping other developers when they're stuck on a bug and all the way up to supporting them in learning and development.
- Participate in all areas
- Participate in team discussions and meetings. As a senior, you need to be observant and get involved whenever you can in meetings. This partly goes back to learning about other areas of the product life cycle too. Understanding other areas of the business, can give you more ideas. Giving a persuasiveness to your views and the ability to justify them.
- Minimum 5 years' experience developing corporate solutions using Microsoft .Net.
- Minimum 1 year recent working experience in a senior role within an enterprise level development team
- Office 365 Development
- MVC pattern, entity framework, JSON
- Recent working experience delivering projects using SCRUM framework
- ALM and continuous integration using VSTS
- Strong knowledge of XML
- Data model design
- Experience working on high performance multi-threaded applications