Senior Software Engineer - RRT
Interact Software
- Philippines
- Permanent
- Full-time
- Minimum 5+ years of professional experience in software development, with a focus on API first backends, ASP.Net and ReactJS frontends.
- Proven experience in developing engaging, scalable, high-performance, high-transactional Web UI and APIs.
- Extensive experience with C#, ASP.NET, and .NET frameworks.
- Strong proficiency in ReactJS and Node.js for frontend development.
- Experience with SQL Server, including T-SQL, Stored procedures, and SQL Transactions.
- Familiarity with Docker containers and container orchestration.
- Experience working in an Agile/Scrum development environment.
- Demonstrated ability to support the Team Leadership (Product, Delivery and Engineering Managers), as well as collaborate effectively with other teams.
- Expert understanding of Object-Oriented Programming (OOP) concepts and principles.
- Deep knowledge and application of Software Engineering Design Patterns and SOLID principles.
- Proficiency in data structures, including arrays, linked lists, stacks, queues, trees, graphs, and hash tables.
- Understanding of algorithms such as sorting algorithms (quicksort, mergesort), searching algorithms (binary search), recursion, and basic algorithmic complexity (Big O notation).
- Experience with version control systems, particularly Git using Bitbucket.
- Familiarity with ElasticSearch, Redis, memory caching, distributed locking, and queue-based mechanisms.
- Knowledge of AWS cloud hosting and infrastructure management.
- Experience with CI/CD tools like TeamCity and Octopus Deploy.
- Understanding of test automation frameworks, specifically Playwright.
- Familiarity with the Atlassian Suite (Jira, Confluence) for project management and documentation.
- Strong leadership skills, with the ability to mentor and inspire team members.
- Exceptional problem-solving abilities, capable of tackling complex technical challenges.
- Excellent communication skills, both verbal and written, able to convey technical concepts to various stakeholders.
- Proactive and self-motivated, with a passion for technology and continuous learning.
- Attention to detail and a commitment to delivering high-quality, reliable software.
- Collaborative mindset, and keen to help create a positive Team environment by contributing to team dynamics.
- Strategic thinker, able to align technical design options and architectural decisions with business objectives.
- Adaptable and flexible, comfortable working in a fast-paced, dynamic environment.
- Innovative mindset, eager to explore new technologies and drive improvements.
- Design and develop high-quality software solutions using our tech stack, including C#, ASP.NET, ReactJS, Node.js, and SQL Server.
- Lead and participate in architectural discussions and decision-making processes to shape the future of our applications.
- Implement and enforce best practices in software development, including SOLID principles and design patterns.
- Optimize application performance, ensuring scalability and reliability for high-volume queries and transactions.
- Conduct code reviews (face-to-face or via pull requests), providing constructive feedback to improve code quality and maintain coding standards.
- Mentor and guide junior and mid-level engineers, fostering professional growth and knowledge sharing.
- Collaborate closely with other teams, including UX/UI Designers, Test Automation Engineers, and DevOps, to deliver cohesive and user-centric solutions.
- Develop and maintain unit and automated tests using Playwright to ensure the highest software quality.
- Manage source code effectively using Git tools.
- Utilize CI/CD pipelines with TeamCity and Octopus Deploy to streamline the deployment process.
- Troubleshoot and resolve complex technical issues, applying critical thinking and problem-solving skills.
- Stay updated with emerging technologies and industry trends, evaluating their potential integration into our tech stack.
- Contribute to the continuous improvement of development processes and workflows.
- Ensure security best practices, collaborating with security teams to safeguard applications.
- Lead and participate in the planning and execution of complex software projects, ensuring alignment with business objectives.
- Coordinate with Product Managers and Delivery Managers to define project requirements, timelines, and deliverables.
- Identify and mitigate technical risks, ensuring project success and application stability.
- Oversee the front-end and back-end development lifecycle, ensuring timely delivery of project milestones and product releases.
- Provide mentorship to junior engineers, helping them develop their skills and understanding of best practices.
- Foster a collaborative and inclusive team environment, encouraging knowledge sharing and continuous learning.
- Facilitate training sessions and workshops to upskill team members and promote professional growth.
- Ensure the highest code quality by implementing and advocating for thorough testing practices, including unit tests, integration tests, and end-to-end tests.
- Collaborate with QA teams to establish testing strategies and ensure comprehensive test coverage.
- Implement performance optimization techniques, ensuring scalability and reliability for high-volume queries and transactions.
- Ensure security best practices, collaborating with security teams to safeguard applications.
- Work closely with UX/UI Designers to implement responsive, user-centric, and accessible designs.
- Collaborate with backend teams to ensure seamless integration and functionality of front-end components.
- Communicate complex technical concepts effectively to non-technical stakeholders, bridging the gap between technical and business teams.
- Contribute to the continuous improvement of development processes and workflows.