You love to develop software. You also love working with a team of diverse skills, backgrounds, and levels of experience. Complex problems are an enjoyable challenge. You strive for clean, bulletproof, scalable solutions, and appreciate the fact that creating a simple system from a complex set of requirements is a feat to be proud of. You are constantly aware of what you don’t know, and are constantly learning new things to fill the gaps. You are aware that this is an endless cycle of growth and understanding, and revel in it.
You are result driven. You realize that understanding and articulating what is needed is more important than coming up with a complex solution for what is not.
You’ve been developing for a number of years, and understand the full spectrum of application development, deployment, and maintenance. Your ideal day consists of good split between driving requirements, writing code, learning new techniques, and guiding teammates that may be less experienced than you are. You could roll out a solid web application end-to-end if you had to, from infrastructure setup to deployment and monitoring. You have an innate appreciation for continuous integration and test automation. You realize that nearly every solution is data powered, and a good solution wields the right combination of data technologies.
Working directly with a Solution Architect and Project Director, the Principal Engineer will lead a cross functional development team in design and development for a given strategic project. This growth role includes direct mentorship from Director level personnel in the company and the opportunity to enhance your skills around architecting, building, delivering, and scaling software-based solutions.
Working as part of an elite development team, and interfacing with everyone from senior business leaders of Fortune 500 companies to entrepreneurs and founders of cutting-edge startups, this role will foster and grow a wide-range of skills ranging from enterprise scale software architecture and delivery, to product management and creative problem solving.
The individual will be involved in stimulating and challenging research and analysis during the beginning phases of projects, in critical software and architecture decisions throughout project execution, and squarely involved in implementation of the most challenging areas of the solution. The Principal Engineer is a leader who will collaborate with other team members to teach and grow their skills while subsequently learning and growing their own, all in the context of delivering the best possible solutions to the goals before them.
Using a blend of knowledge, creativity, and tenacity the Principal Engineer will work with the team to ensure quality product delivery that meets or exceeds expectations. A successful team member will leverage his or her knowledge and creativity to build world-class solutions for difficult yet exciting business problems.
Reporting to the Director of Engineering, the Principal Engineer will have the following responsibilities and functions:
Work directly with clients to understand their needs, provide solution recommendations, and drive delivery of the solution
Work closely with product owners to define requirements, drive functional and technical specifications, and collaborate on feature definition
Develop specifications for technical requirements, use case models, data models, software architecture models, class and program specifications
Analyze business and functional requirements for distillation into technical specifications that can be delivered with high quality
Work alongside Solution Architects, Project Directors, other Developers, and Quality Assurance during project inception, development, launch and beyond, across one or more projects.
Participate in project planning and estimation activities during all phases of the project lifecycle
Maintain a working knowledge of operating systems, development environments, frontend and backend programming languages, and data architecture.
Collaborate on best practices and toolsets to improve execution and process delivery.
Educate new and existing team members on project specifics, various technologies, approaches, and architectures.
Bachelor's degree or equivalent experience preferred
6+ years practical development experience
Strong practical experience running initiatives utilizing modern development methodologies such as SCRUM, Agile, Extreme
Experience with multiple core programming languages such as Java, .Net, RoR, HTML5 and general object oriented programming
5+ years of development experience with Java and key Java-based frameworks (Spring, Hibernate, Apache, etc)
Experience with multiple applcation server environments (Tomcat, Weblogic, Websphere, etc)
Deep understanding of SQL and experience with multiple relational or non-relational database platforms such as MySQL, PostgreSQL, Oracle, SQL Server, Cassandra
Strong experience building RESTful web services
Experience with multiple User Experience implementation strategies (Desktop, Tablet and Mobile)
Experience with Cloud or On-Premise hosting solutions such as AWS, Rackspace
Experience with UNIX/LINUX server operating systems
Experience and appreciation for test automation and continuous integration.
Experience delivering projects that leverage enterprise grade development technologies and frameworks
Good understanding of Quality Assurance standards and best practices
Good experience writing system and user specifications/documentation
Excellent analytical, communication, and interpersonal skills
Ability to clear roadblocks and meet time sensitive deadlines
A motivator with an optimistic yet realistic "can do" attitude
Ability to travel on occasion based on client needs (10-25%)