Responsible for all aspects of the software delivery process including gathering requirements, designing, and developing software solutions, ensuring similar practices within the team, documenting software implementations, and investigating and solving problems.
Collaborate with software team members, and other cross-functional teams, in order to see projects to completion in an agile environment. Maintain a thorough understanding of the current system. Identify new processes that will lead to an improved development lifecycle. Setup code browser for the complete code. Minimum education required: Bachelor’s degree or equivalent in Computer Science, Computer Engineering, or a related field.
The following skills must have been gained through professional experience, graduate research experience, or academic coursework: knowledge of Open System Interconnection (OSI) model and various OSI layers; Unix socket programming experience including using TCP/IP and UDP protocols; experience performing annotation of video data and multimedia data extraction; experience working in Linux/Unix and Windows environments;
knowledge of systems engineering practices, the software development life cycle, software development methodologies, and sound coding practices; demonstrated design, analytical, and problem solving skills; experience using IPC/RPC communication and message queues; practical experience using WebServices SOAP/XML, ad hoc networking, and distributed operating systems; experience using Visual Studio/Eclipse IDE, Unified Modeling Language (UML) tools, and Object Oriented programming; knowledge of programming languages including C, C++, Java, ASP, Perl, and AJAX; knowledge of MS SQL and spatial database; and knowledge of content management systems including CVS/SVN.