As a Senior Software Engineer, you will be responsible for all phases of software development, including design, coding, integration, and debugging of major portions of software projects such as cloud based API applications, cloud web based applications and other cloud-based software.
This employee has full professional experience and expertise to imaginatively address tasks/assignments of a medium to complex level. Structures and manages the execution of project/program tasks with little guidance and supervision and recommends and executes new approaches.
Assignments require technical analysis and inventive design recommendations for cost effective resolutions of problems. Coordinates across functional groups to ensure all tasks and input are received. Leads technical support staff in testing and analysis.
Specific responsibilities include:
- Design, develop, maintain and debug organized, easy to read, object-oriented software.
- Administrate and maintain cloud server infrastructure.
- Documentation of software designs and code with specifications and source comments, end user documentation.
- Programming in high level languages as appropriate and required for the projects. Languages may include Java, XML, Python and others.
- Developing cloud based backend applications deployed in Application server at Linux environment.
- Apply fundamental and advanced technology principles to multiple tasks.
- Demonstrate substantive knowledge of cross-functional and related technical areas such as hardware or communications technologies.
- Researches technologies and presents complex findings with recommendations for integration into team technical strategy.
- Initiation, preparation, presentation and leadership of design review meetings.
- Works closely with Mobile and Embedded Software Engineers creating custom solutions.
- Handles external customer interaction and provides direction to outsource engineering and resources.
- Maintain a safe and clean work environment.
- Understand and follow company rules and regulations.
- Perform all other duties as assigned and required.
Education and Experience Requirements:
- BS/BA degree in Computer Science or related field, or equivalent work experiencerequired
- 8+ years of full software development lifecycle experience
- 8+ years of Server Side / Backend End engineering experience including taking a product from inception through multiple release cycles.
- 5+ years of Object-Oriented Analysis, Design, and Development experience.
- 2+ years of server / infrastructure management.
- Experience designing and developing Server Side applications running on Linux / Java / Open Source software .
- Expertise building Spring Framework applications.
- Excellent problem solving skills.
- Experience designing RESTful API's and implementing such APIs within a security framework such as OAuth
- Troubleshooting and fixing issues in mobile applications.
- Strong experience with optimization and analysis of existing Server Side applications, including profiling and memory leak detection.
- Experience building use case driven software with Agile Software Development and Test Driven Development methodologies
- Masters degree in Computer Science or equivalent work experience.
- Experience with Amazon EC2, AWS is a huge plus
- Experience with Maven, Jenkin, Hudson, Perforce is a plus
- Current experience with modern messaging proposal, e.g. MQTT, XMPP is a huge plus