Software Engineer

TEKSYSTEMS INC.
Vista, United States of America
yesterday

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Intermediate

Job location

Vista, United States of America

Tech stack

Agile Methodologies
Algorithm Design
Software Applications
Software Bug Management
C Sharp (Programming Language)
Client Server Models
Computer Programming
Databases
Continuous Integration
Web Development
Embedded Software
Object-Oriented Software Development
Real-Time Operating Systems
Software Engineering
Software Systems
Web Applications
Multithreading
Test Driven Development
Software Troubleshooting
Backend

Job description

  • This Software Engineer will collaborate with other members of the Engineering Department (mechanical, electrical) to design, test, analyze, calibrate, maintain, enhance the performance of these Leidos systems/products. Group size is approximately 40 engineers.
  • Software Engineering in C# code. Mostly desktop development. Design, develop, and maintain software solutions, delivering high-quality, secure software while adhering to best practices and contributing to team success
  • Assist in the design, development, testing, and maintenance of services, simulators, and diagnostics using C# (ensuring alignment with best practices and coding standards). Utilize object oriented design principals, practices, and patterns to ensure the code base is reusable and maintainable.
  • Develop software that adheres to industry security standards and contributes to the security compliance of the codebase and coding practices.
  • Utilize object-oriented design principles, practices, and patterns to ensure the codebase is reusable and maintainable.
  • Apply Agile development practices, including Test-Driven Development (TDD) and Continuous Integration, to ensure high-quality, continuously tested code.
  • Collaborate with Electrical Engineering, Mechanical Engineering, and Scientists to meet customer requirements.
  • Troubleshoot and resolve technical issues under the guidance of senior engineers.
  • Communicate effectively within a small cross-functional development team environment.
  • Report project status and issues to management as required.
  • Daily stand up meetings, grabbing tasks from backlog, getting those reviewed and merged into the mainline code base and tested
  • Use TDD to ensure the code base is tested and to enable refactoring in the future.
  • Some of this work is sustainment of a existing systems with millions lines of code. Will do analysis of failures and look through the code base to find bugs, identify a solution, and fix the problem.
  • Interact with Electrical Engineering, Mechanical Engineering, and Scientists to develop systems that are consistent with customer requirements.
  • Be proactive in leading group design discussions and/or grabbing another developer to pair program on non-trivial features/code.
  • Report project status and issues to management as required.
  • Evaluate customer problems, troubleshoot and assist Field Service Engineers, and help customers through problem resolution utilizing effective written and verbal communication skills.
  • Interfacing desktop software with embedded and PLC based hardware systems
  • Need people on the backend who know C# and understand desktop and interfacing with embedded software. There is no web development in this role.
  • Having experience with messaging like rabbitMQ just tells him that they've dealt with the middle and back end tiers and information going between systems,
  • multithreading is a good thing to look for but not necessarily fully required
  • He looks for people that have worked on products, for instance Medical device or other
  • He looks for people with longer durations - like 2+ years at a company minimum
  • He wants someone who's done some algorithm development, device oriented, is strong enough to understand some of the very complicated code base that is existing there.

Requirements

  • 8+ years overall programming background (role requires a solid foundation in software development. Must have solid understanding of object-oriented design (OOD) principles and practices. Strong enough to understand some of the very complicated code base that is existing. Engineer who has done some algorithm development
  • 4+ years of C#.net on production / products (i.e. devices, products, client-server software, not web). Multithreading would be nice to have. Must have strong windows/desktop development experience (and desire to primarily develop desktop applications rather than web applications). This type of software is typically client-server software, multi-threading, real-time software, software messaging, image processing.
  • Strong grasp of how the C# code interfaces with the back end (whether it be a database or the hardware/sensors, etc.)
  • Familiarity with Agile development environments, including Test-Driven Development (TDD) and continuous integration
  • Ability to create basic design documentation and other technical documentation
  • Strong troubleshooting and bug-fixing skills

Apply for this position