View all jobs

Principal Software Engineer

Greater Boston, Massachussetts
If you enjoy exploring new technologies and are looking to participate in transformative software development, then we want to talk to you. The ideal candidate is a hands-on full stack engineer with significant experience in developing performant user-friendly software systems. Agile experience and the ability to take a technical leadership role are must haves for this position. You should embody a passion for continuous improvement and test-driven development. We are looking for someone who demonstrates excellent communication skills, is a great collaborator, handles responsibility and failure well, has strong analytical skills, and enjoys learning. This role reports to the Director or Manager of Software Development.
Education:  B.S. in Computer Science required or a combination of equivalent educational experience

Skills and Experience:
  • Extensive Java Development experience and object oriented development knowledge
  • Experience in test and task automation in an agile development environment, utilizing rapid development techniques and DevOps
  • Experience with micro-services and other service oriented architectures and design methodologies (like BDD/DDD)
  • Full stack development experience  
  • Experience turning requirements into software design specifications and architecture
  • Technical leadership: Mentoring, SME for both business and technical discipline topics
  • Understand prioritization and balance own work as well as that of other engineers without guidance
  • Ability to take a lead role on establishing standards and best practices
  • Provide solid guidance for code reviews
  • Proficiency developing and troubleshooting complex software systems that run in mixed-environments including Linux, Unix z/OS and/or Windows
  • Clear communications (oral and written) and willing team player
  • Experience with Java, functional programming, XML, XSLT, JMS, JDBC, ORMs, thread-safe programming; web development technologies 
  • Experience with UI frameworks like Angular, React as well as JavaScript, etc.
  • Experience with testing frameworks such as JUnit, Mockito
  • Experience working with DevOps and build automation tools like Docker/Docker Swarm, Gradle, Gitlab, Jenkins, Artifactory etc.
  • Experience with queue technologies like RabbitMQ, MQSeries
  • Experience with databases such as Postgres, Mongo, DB2
  • Experience with building APIs and services using REST, SOAP, etc.
  • Experience with scripting languages like Perl, Shell, etc.
  • Experience with developing software on various Operating Systems like Linux, Unix, Windows
  • Experience with application servers such as WebSphere, Tomcat
  • Participate in process to elicit and specify project requirements and define project scope  
  • Assist in development of software application architecture 
  • Analyze, design, code, test, debug, maintain, and document software components in accordance with company’s  software architecture and software development processes
  • Participate in application performance tuning
  • Ensure developed applications adhere to company security model / policies 
  • Lead code review of developed software artifacts 
  • Ensure that deliverables meet the project requirements, including timely delivery and quality (reliability, performance, and maintainability)
  • Contribute to the creation of project schedules by providing estimates related to effort, duration, and completion of assigned tasks
  • Adhere to company’s processes for change / configuration management
  • Find innovative ways to improve quality and productivity
  • Provide ongoing technical support for external / internal users of software components
  • Participate in the research and evaluation of software development tools and emerging technologies
  • Participate and effectively contributes in a team environment, in accordance with company’s Core Values
  • Communicate effectively with other company technical units as well as business stakeholders to facilitate the development process to ensure the attainment of company corporate goals
  • Mentor / train less experienced software engineers
  • Serve as technical lead within scope of expertise, including acting as a systems analyst and designer
  • Participate in a skills growth path to promote achievement of corporate goals as recommended by the Department Manager
  • Comply with all applicable and departmental software policies, standards, and practices including all standards relating to Security and Disaster Recovery
More Openings
Technical Recruiter
Senior Database Software Developer
Share This Job
Powered by