Senior Software Engineer


Position Title: Senior Software Engineer

Requirement Description: The ideal candidate will have experience developing software systems with the complexity of multi-process, multi-threaded components with soft real-time requirements. Must be able to demonstrate and apply broad knowledge of software engineering concepts, practices, and procedures.

- Bachelor’s degree
- 5 or more years of experience developing software systems basis
- Excellent written and verbal communication skills.

- Experience developing in C/C++/C# in MS Windows software development environments (Visual C++, Visual Studio) and the .NET framework.
- Windows Development (Visual Studio 2003-2010).
- Hands on development experience with interprocess communications methods (message queues and TCP/IP sockets).
- Experience using MS Office Tools (Word, Excel, Project, PowerPoint, Visio)
- Excellent understanding of Object Oriented Concepts, Operating Systems Knowledge (Windows 2003, Windows XP, Windows 7, etc.)
- Experience with Multi-threading
- Experience using Source code control systems (e.g. CVS, subversion, PVCS) and Bug/Defect tracking systems
- 5+ years experience through the entire Software Development Life Cycle, planning, tracking, design, development, implementation, testing, documentation and installation.
- A high-level of self-motivation and ability to work on a team
- Excellent time management and organizational skills
- Ability to effectively manage time, prioritize work, multi-task across many assignments and delegate tasks
- Effective interpersonal, written and oral communication skills
- Demonstrates the ability to adapt to and lead, change, and coach others in the acceptance and support of change
- Good problem solving skills.
- Strong analytical skills to assess situations and drive decision making
- Customer service orientation
- React to difficult or personally challenging situations/questions in a positive and productive manner (a service oriented manner)
- Ability to independently function in a changing, high-impact position, with deadline and resource constraints
- Familiarity with agile methodologies as well as software planning and estimation techniques are highly desirable
- Knowledge or applications written with SQLserver.
- Standard software development, test, and maintenance practices, processes, and documentation, such as SEI CMM.
- Knowledge of real-time control software architectures, embedded RTOS application design using threads and interprocess communications. Structured code, abstraction, encapsulation, device drivers, etc.
- Use of Multi-threading, MSMQ, Event Handlers in time-sensitive applications
- Understanding of Real-Time/Embedded systems architectures and designs
- Understanding of state machines, sequence diagrams

Duration: Available upon request

Location: Available upon request