Summary of Position:
The Principal Software Engineer will lead the engineering team's best practices for software development to achieve the highest quality and solve difficult problems where the root cause seems elusive. This role will be working with Azure Cloud/IoT services, evaluating and adopting new technologies, along with best practices to solve problems.
- Hands-on development and problem resolution, writing clean, maintainable code, and mentor others to do the same
- Lead software design, and develop features and solutions with high quality
- Identification, implementation, and maintenance of Key Performance Indicators (KPIs)
- Lead the development efforts for cloud-based applications and infrastructure
- Create development standards/guidelines for application teams
- Translate business and functional requirements into documented technical specifications
- Develop support documentation for acceptance of systems changes into production
- Participate in code reviews and walkthroughs of technical specifications with other members of the technical team
- Engage in the application of systems analysis techniques and procedures, including consulting with users, to determine hardware, software, or system functional specifications
- Implement requirements of the API layer like security, custom analytics, throttling, caching, logging, monetization, request and response modifications
- Develop backend APIs for a variety of internal and customer-facing projects
- Design solutions and work with challenging Azure Cloud/IoT services
- Review log files to determine root cause analysis
- Walkthrough developer code, identify issues, and script to fix in order to eliminate the issues
- Review and update code to ensure quality, organization, and automation
- Create frameworks and set systematic checks in place to ensure good code coverage, test automation, and adherence to development standards Communicate design, requirements, functionality, and limitations of systems/applications
- Utilize departmental agile software development methodologies as a guide for development activities
- Meet project schedules by providing accurate estimates of effort required for development deliverables
- Communicate updates on project progress to development and project management.
- Escalate issues that may affect project success to management
- Maintain technical skills and expertise through continuing education and training
- Collaborate with other teams including Business, Enterprise Testing, Release Management, Project Management and Application Support for the successful delivery of systems enhancements
- Work with multiple Lead Engineers, Architects, Product Managers, and Testers as a connector to build and deliver the capabilities and features
- Demonstrate ownership and execution of projects delivered by your team and department
- Ensures Accountability
- Tech Savvy
- Communicates Effectively
- Values Differences
- Customer Focus
- Drives Results
- Plans and Prioritizes
- Decision Quality
This job operates in a professional office environment. This role routinely uses standard office equipment such as computers, phones, photocopiers, filing cabinets, and fax machines.
The physical demands described here are representative of those that must be met by an employee to successfully perform the essential functions of this job.
While performing the duties of this job, the employee in this position frequently communicates with other co-workers/clients who have inquiries about the various projects and other needs. Must be able to exchange accurate information in these situations. The employee must be able to remain in a stationary position 75% of the time. The employee in this position needs to occasionally move about inside the office to access file cabinets, office machinery, etc. Constantly operate a computer and office machinery such as a calculator, keyboard, copy machine, and printer. Frequently moves boxes with equipment weighing up to 25lbs across the building and/or to other offsite buildings for various project needs.
Required Education and Experience:
- Bachelor’s Degree in Computer Science or related field
- 8+ years of experience
- 8+ years of overall industry experience with minimum 6+ years on application development, 5+ on cloud platform technologies (AWS/Azure/Google Cloud Platform)
- Experience in database technologies – both relational and NoSQL with proficiency in at least 1 of each type
- Expert in at least two of the following domains: Kubernetes, public cloud (AWS/Azure), server-side web dev, client-side web dev, REST/web services, MS SQL / NoSQL database, Spark / Databricks
- Experience with AWS and/or Azure cloud technologies
- Demonstrate experiences with software testing methods, such as functional testing, stress testing performance testing, system resiliency testing, and failure injection
- Strong understanding of technical engineering concepts of applications infrastructure requirements, understanding of cloud requirements for engineering capacity, and ability to partner cross-organizationally
- Experience in developing and implementing code-based automation to simplify processes in public cloud environments
- Experience writing code using cloud provider APIs
- Ability to extract and analyze complex datasets using well-optimized SQL queries and define/implement dashboards and reports
- Self-driven, work well in a team, have great communication skills
- Expert knowledge of design principles and best practices
- Hands-on experience in developing maintainable, scalable, and reusable software
- Perform with minimal direction and work independently in a fast-paced environment
- Solid understanding of RESTful APIs
- Strong software design and programming fundamentals of REST Architecture
3MD Inc. is an equal opportunity employer and does not discriminate based on gender, sex, age, race and color, religion, marital status, national origin, disability, sexual orientation, gender identity or expression, veteran status, or any other category that is protected by applicable law.
Please note this job description is not designed to cover or contain a comprehensive listing of activities, duties, or responsibilities that are required of the employee for this job. Duties, responsibilities, and activities may change at any time with or without notice.