Description:
As a Senior Software Engineer, you will lead the design, development, and maintenance of high-performance software applications that are critical to our business and public safety customers. You will be responsible for creating scalable, efficient, and maintainable systems, while mentoring and guiding junior engineers. To be successful in this role, you should be passionate about coding, architecture, and driving innovation, to help shape the future of our software products. This job posting is being used to fill an existing vacancy.
What You'll Do
- Lead the design and architecture of complex, scalable software solutions, ensuring they are robust, maintainable, and optimized for performance.
- Take ownership of high-impact projects, from requirements gathering through to implementation, deployment, and ongoing support.
- Write high-quality, clean, and efficient code. Enforce coding standards, best practices, and conduct code reviews to maintain a high level of code quality across the team.
- Mentor and provide guidance to junior engineers, helping them grow in their careers and improve their coding practices. Provide constructive feedback during code reviews.
- Work closely with product managers, designers, and other engineering teams to ensure that software features are aligned with business objectives and customer needs.
- Focus on optimizing application performance, ensuring that the software scales effectively under increased loads and performs reliably in production.
- Lead efforts to resolve complex technical issues and ensure that software is bug-free and meets business requirements.
- Stay up to date with the latest industry trends, tools, and technologies. Drive innovation and suggest improvements to the development process, architecture, and product features.
- Participate in agile processes, including sprint planning, daily stand-ups, and retrospectives. Help the team break down complex tasks into achievable milestones.
- Ensure that code, system designs, and technical processes are well-documented for knowledge sharing and future reference.
- Performs other related duties as assigned to support team objectives, departmental needs, and overall organizational priorities.
What You'll Bring
- Degree in Computer Science, Software Engineering, or a related field, or equivalent industry experience and training.
- 6+ years of professional software development experience.
- Advanced proficiency in one or more programming languages such as C#, Python, JavaScript (Node.js), or similar.
- Deep understanding of software architecture, design patterns, and principles. Experience in designing scalable and distributed systems.
- Expertise in both front-end (e.g., React, Vue) and back-end (e.g., Node.js) development, with a focus on building full-stack applications.
- Strong knowledge of relational and NoSQL databases (e.g., MySQL, PostgreSQL, MongoDB, MS SQL Server).
- Experience with cloud services such as AWS or Azure, and deploying scalable applications in the cloud.
- Experience with DevOps and CI/CD practices, including continuous integration, continuous deployment, and tools like Docker, Kubernetes, Jenkins, and Terraform.
- Extensive experience working with multiple development practices, with a deep understanding of various principles (Scrum, Kanban, etc.).
- Experience with automated testing, test-driven development (TDD), and unit testing frameworks.
- Strong leadership, communication, and collaboration skills. Ability to work cross-functionally with both technical and non-technical stakeholders.
Impress Us With
- Working knowledge of Microservices, SOA, Monolith, REST, RPC, SQL, NoSQL, etc.
- Proficiency in multiple programming languages such as Java, Python, C++, JavaScript, or C# along with multiple frameworks.
- Expertise in optimizing and fine-tuning large-scale applications for performance, scalability, and high availability.
- Previous experience in mentoring or coaching junior engineers and fostering a positive, collaborative team culture.
- Understanding of security best practices and experience implementing security measures in software and DevOps processes.
- Experience in industries such as finance, healthcare, public safety or government.
- Experience with leveraging AI tooling in development workflows.