Job Description :
Position :: Principal Software Engineer
Employment Type :: contract to hire
Location: :: Fort Worth, TX

Description :
Develop and support real-time software applications and engineering duties for a leading supplier of technology based products and services for the rail and transit industries. This position has an opening for a dynamic, result-oriented Principal Software Engineer with a positive attitude to getting the job done. The individual will be assigned to the Train Control team to support and develop new functionality for the Train Management Dispatching System (TMDS) product.

Responsibilities
Responsible to lead Product(s)/Feature(s) development team based in US and India following good OOPS concepts and stringent code quality/Software Security standards.
Responsible for producing design artifacts like process/activity flows, object relationship model, ER model, decision tree charts and UML diagrams.
Accountable for maintaining Software Architect document and Software Design document and other design/Software artifacts for a Product or feature(s
Responsible to work with Software Manager and Product Manager to set the roadmap of the Product or Feature(s) from technology standpoint, Quality improvement Plan (QIP) and modernization aspect.
Responsible to work with Software manager and Technical scrum master to put a delivery plan in line with Product /feature(s) roadmap and plan to transform Project oriented development to more product oriented development.
Responsible to work closely with Solution architect and Platform Architect to review requirements and conops to engineer solutions and products.
Responsible to work with Build & Release engineer to put a code baselining/merge and branching plan together in line with the delivery plan and make sure the team adhere s to it.
Responsible to work with Technical Scrum master for Scrum planning, produce work breakdown structure, estimation, resource planning and retrospective.
Responsible to improve quality of code and keep complexity low as part of QIP initiative.
Responsible for task assignments, organizing and coordinating with team members to delivery product or meet milestones as per the delivery plan with Technical Scrum master''s assistance.
Responsible to work with testing lead to ensure the Product/Feature(s) has test coverage.
Responsible for supporting product maintenance related activities i.e. bug fixes, defect triaging, feature development, validation and training.
Responsible for making sure the team follows development process, code documentation, coding standards and design standards by holding design reviews and code reviews.
Responsible to make sure the team follows the schedule and communicate status plus concerns in daily standups to Technical Scrum master and resolve any roadblocks.
Participate in SRS review, architectural and design Round-table meetings, Change review board, Release planning, Toll-Gate meetings and Staff meetings.
Responsible to work with infrastructure engineers to plan, setup and maintain development environments/labs.
Mentor Software Engineers in the team and work with Software Manager to identify skillset gaps and training opportunities.
Travel to customer site(s) for deployments or production emergencies.
Responsible for the technical direction of onshore and offshore teams.

Qualifications
Strong 15+ years'' experience in application development on .Net framework in C#, VB and Sql Server. Solid desktop application development, web/Windows services (SOA) experience and good understanding of Microsoft platform.
Strong knowledge of Software Development processes, design patterns and design artifacts.
Strong knowledge of Unit testing and tools to improve code quality and reduce complexity.
Strong skills in OOP programming, design patterns, data modeling and database design.
Strong knowledge of Multi-threading and enterprise-level distributed computing.
Strong team management, organizational and coordination skills.
Good to have knowledge of configuring and interfacing with enterprise level messaging platforms like RabbitMQ, ZeroMQ, QPid, MSMQ, etc.
Good to have knowledge of algorithms related to graph theory and experience with graph database like TinkerGraph, Giraffe, Neo4j, etc.
Good to have experience with .net graphics (GDI+ or WPF) but not required.
Good to have knowledge of domain modelling and entity modelling.
Good to have experience with IBM CLM tools and source code repository like IBM Rational Team Concert, IBM Jazz or IBM ClearQuest.
High degree of attention to detail.
Strong debug and troubleshooting skills.
Team player and works well with others.
Effective oral and written communication skills; ability to articulate clearly and concisely.
Self-motivated, quick learner, results-oriented and a clear focus on quality.
Ability to develop high level of credibility and strong positive relationships with peers and management.
Good to have real time system development experience but not required.
Willing to travel up to about 25 % of their time to customer sites across North America

Education, Experience and Knowledge Required:
B.S. or M.S. in Computer Science or Computer/Electrical engineering or relevant professional experience.
The candidate needs to have 15+ years'' experience in Enterprise-level Product development and support processes.
Experience as a Principal, Team lead or Project Lead for at least 5 years and have managed/lead a geographically distributed team of software engineers.
Experience and understanding of Real-time distributed systems.
Would be desirable but not mandatory that candidate has knowledge of railroad system operations.


Job 2 :

Sr. Software Engineer – Middleware
Fort Worth, TX
Long-term assignment with conversion to direct hire
Fulltime work week

Overview
Develop and support real-time software messaging applications and engineering duties for a leading supplier of technology based products and services for the rail and transit industries. This position has an opening for a dynamic, result-oriented Senior Software Engineer with a positive attitude to getting the job done. The individual will be assigned to the Burlington Northern Santa Fe (BNSF) Computer Aided Dispatch (CAD) team to support and develop new functionality for the Train Management Dispatching System (TMDS) product.

Responsibilities
Design Middleware solutions to support existing distribution applications messaging.
Design, Code, maintain and document the middleware solution and Interface control documents (ICDs
Develop communication libraries for the applications to interface with the middleware.
Support the full messaging stack and maintain message construction and parsing libraries.
Develop services to support the messaging and middleware solution.
Participate in requirements and design workshops with internal team and client teams.
Participate in designing, coding, testing, debugging, configuring and documenting software as per WRE policies and procedures.
Apply generally accepted programming standards and techniques to assure efficient program logic and data manipulation.
Working independently or with a team to develop solutions that meet project requirement within the program schedule and budget constraints.
Make independent technical contributions in-support of program objectives, as well as interacting with other software and systems engineers and customers.
Mentor junior level software engineers, be the interface and provide technical guidance to geographically distributed software teams
Support Production issues and bug fixes.

Qualifications
Strong 10+ years'' experience in middleware solution development on .Net framework in C#, VB and Sql Server. Solid desktop application development, web/Windows services (SOA) experience and good understanding of Middleware architecture and solutions.
Understanding of building secure systems involving SSL, TSL and message/data integrity principles and standards.
Experience with multithreading and asynchronous coding.
Experience of configuring, administrating and interfacing with enterprise level messaging platforms like RabbitMQ, ZeroMQ, QPid, MSMQ, etc.
Have understanding of general network design principles including TCP/IP and UDP.
High degree of attention to detail.
Strong debug and troubleshooting skills.
Team player and works well with others.
Effective oral and written communication skills; ability to articulate clearly and concisely.
Self-motivated, quick learner, results-oriented and a clear focus on quality.
Ability to develop high level of credibility and strong positive relationships with peers and management.
Good to have real time messaging system development experience but not required.

Education, Experience and Knowledge Required:
B.S. or M.S. in Computer Science, Engineering or Mathematics.
Experience and understanding of the operational interworking''s of computer information systems and database management systems used to support complex n—tiered systems.
Would be desirable but not mandatory that candidate has knowledge of railroad system operations.
             

Similar Jobs you may be interested in ..