The Senior Software Engineer will work individually and in a collaborative team-focused environment. Individual will prototype, design, develop and integrate unique solutions to hard problems. Individual will lead parts of software development efforts through all aspects of the software engineering life cycle including scope and work estimation, design, documentation, implementation, testing and integration. Senior Software Engineer will assist in determining and recommending the best designs based on customer business objectives, timelines and other resource constraints.
Must be dynamic, innovative, self-starting problem solver. Must have the aptitude and attitude to tackle unsolved technical challenges.
Senior Software Engineer will:
• Interact with software system engineers and technical team leads to rapidly learn a complex operational system, its subsystems, and components to positively contribute to development;
• Determine and communicate system requirements and capabilities in furtherance of the customer’s mission;
• Design, develop and document modular, readable, and maintainable solutions to hard problems;
• Champion and implement advanced software development practices;
• Recommend and lead changes to development and systems integration that will increase efficiency and development effectiveness.
• Degree in Computer Science, Electrical Engineering, Computer Engineering, or related field and experience commensurate with the requested level in software engineering; if no degree, equivalent experience in software engineering;
• 12+ years of verifiable experience independently designing and implementing medium to large-sized software systems and components;
• Five+ years of experience developing in Microsoft C#;
• Five+ years verifiable experience creating software with two or more of the following technologies:
o ASP .Net,
• Five+ years of experience working with two or more of the following:
o Windows Server 2008 R2,
o Ubuntu Server,
o Microsoft SQL 2008 R2,
o Windows 7,
o Microsoft IIS 7.
• Ability to communicate effectively in both oral and written media to describe the strengths and weaknesses of software designs and the implementations of those designs;
• Knowledge of Linux operating system (Ubuntu desired) and at least two application, messaging, or web server systems.
• Proven experience in solving challenging technical problems.
• Senior to expert level knowledge in Microsoft SQL database.
• Ability to demonstrate expert knowledge of networking technologies from the programmer’s perspective.
• Knowledge of Docker
• Ability to create and read Bash scripts