Principal Software Engineer

Ascensus

Section 1: Position Summary
As a Principal Software Engineer at Ascensus, you will be working in a high-energy team, writing beautiful code by using the best engineering practices in the industry today (e.g. unit testing, source control, continuous integration, automation, design patterns). Passion for all aspects of software development is a critical. We are building teams that are empowered to solve the business needs by having a rapid development and deployment pipeline with a focus on automation and releasing software.
As a key contributor to the Scrum team, you will be responsible for delivering solutions that adhere to the software architecture strategy, coding standards, and established organizational policies and procedures.
Section 2: Job Functions, Essential Duties and Responsibilities
  • Responsible for protecting, securing, and proper handling of all confidential data held by Ascensus to ensure against unauthorized access, improper transmission, and/or unapproved disclosure of information that could result in harm to Ascensus or our clients.
  • Our I-Client service philosophy and our Core Values of People Matter, Quality First and Integrity Always® should be visible in your actions on a day to day basis showing your support of our organizational culture.
  • Design, build, and maintain scalable and robust applications
  • Independently analyze, implement, test, document and maintain new and current software applications in support of achieving the business goals.
  • Create estimates, assist with planning resources and tasks, and tracking team progress throughout the software development life cycle.
  • Participate in software architectural discussions, influencing decisions, and collaborating with peers to maintain consistency across the organization.
  • Lead or assist in technical initiatives working with multiple groups
  • Lead by example, act as a role model, coach, mentor and provide continuous feedback to other team members
  • Establish and enforce development best practices
  • Expects and requires innovation of her/his team
  • Lead, evaluate, and provide technical and architectural guidance to team members.
  • Has passion and convictions and the innate ability to inspire passion in others
  • Assist with other tasks and projects as assigned
Supervision 
  • N/A
Section 3:  Experience, Skills, Knowledge Requirements
  • 5-15+ years of experience developing software & systems for medium to large business environments
  • Strong technical leadership skills
  • Strong experience in multiple programming languages, technologies and software platforms, such as C#,  Java, JavaScript, MS-SQL Server, Sybase.
  • At least 8+ year’s hands-on experience with one or more of the programming languages (e.g.  C# or Java)
  • Strong and extensive experience with the Microsoft technology stack
  • Strong and extensive experience with design principles (patterns, cohesion/coupling, S.O.L.I.D.)
  • Strong background and experience with object-oriented design, data structures and algorithms
  • Experience and worked with Services Oriented Architecture and RESTful services development
  • Working knowledge of microservices
  • Experience with writing clean and maintainable code using engineering best practices (unit testing, TDD, continuous integration and deployment, automation, design patterns, refactoring etc.)
  • Proven record of mentoring and guiding less experienced team members
  • Strong experience working with other developers, quality engineers (QE), ops engineers and support engineers to ensure smooth deployment, continual operation and passion for developing good software.
  • Expert in leading and participating in design discussions with both technical and non-technical audiences.
  • Experience mentoring and coaching developers
  • Experience documenting business solution in technical documents and diagrams
  • Familiarity or experience with Agile engineering practices
  • Working experience with  Python, C/C++, MySQL, Apache, Ngnix, Redis, jQuery, knockout.js
  • Experience in open source development 
  • Good understanding of web technologies (HTTP, Apache, HTTP Proxies)
  • Experience with continuous integration and deployment (CI/CD)
  • Strong experience with multi-threaded applications and memory management
  • Experience working with legacy code
  • Agent of change to drive architecture around RESTful services
  • Familiarity with continuously deploying software in the Cloud
Subscribe Now