What are the responsibilities and job description for the Software Architect II position at CSX?
Job Summary
CSX Technology is transforming the rail industry through innovative approaches to technology solutions. Our software architects use their expertise to define solutions for the most complex business requirements and create the foundation for next-generation software capabilities. Here, you’ll be part of a culture that prides itself on delivering robust solutions to a variety of interesting and challenging projects.
Responsibilities
- Provides technical guidance to project teams and areas.
- Guides technology teams with usage of CSX Enterprise Standard techniques, tools and libraries along with building applications that follow CSX design principles and code quality standards.
- Promotes and socializes the standard application architecture view within larger organization.
- Exhibits working knowledge of industry directions, standards and emerging technologies. Makes recommendations for integration into CSX portfolio.
- Hands-on technical expert, contributing to the architecture design of multiple software projects or a single large/complex project ensuring the success of major application development and roll-outs.
- Partners with Business Architects and Product Owners to trail blaze technology system scope, objectives, and requirements.
- Leads the development and implementation of foundational software libraries and tools used by application development teams across the enterprise.
- Communicates and collaborates effectively with individuals and groups at all levels of the organization, internally and externally
- Participates as technical expert, contributing to the architecture design of multiple software projects or a single large/complex project ensuring the success of major application development and roll-outs.
- Partners with Business Analysts and Architects to define technology system scope, objectives, and requirements.
- Drives merging business requirements with technical software solutions including data design.
- Communicates and facilitates alignment with project teams and architects across the organization.
- Implements standard software builds, risks, costs versus benefits and impact on the enterprise business process and goals.
- Assists with the development and implementation of foundational software libraries and tools used by application development teams across the enterprise.
- Miscellaneous activities and responsibilities as assigned by manager.
- Work hours may vary in length and schedule (may include a non-standard work week).
Knowledge and Skills
- Experience within several of the following domains:
- Cloud Native and Microservice Architecture, including Kubernetes or other container orchestration platforms
- Single Page Application development using Angular or similar framework
- API design and management
- Event Driven Architecture using messaging platforms or event streaming platforms such as Kafka
- Application servers and frameworks such as Java/Jakarta EE, MicroProfile, and Spring
- IoT architecture implementations using technologies such as Python, NodeJS, AMQP, MQTT
- Relational and NoSQL databases such as PostgreSQL, MongoDB
- DevOps automation and development
- Public cloud platforms such as AWS, Azure and GCP
- Serverless platforms such as Knative and AWS Lambda
- Analytics and business intelligence platforms such as Hadoop, Spark, Elastic, Splunk
- Software Architecture patterns and Object Oriented Programming
- Full Software Development Life Cycle (SDLC) tools and concepts such as dependency management and developer workflows
- Tools focused on improving code quality and testing: SonarQube, JUnit, Mockito, JMeter, Cucumber, Selenium
- Agile methodologies such as Scrum or Kanban and their application
- Strong written and oral communication skills including interaction with business partners, vendors, and technical staff
Minimum Qualifications
- Bachelor's degree from an accredited institution required in Computer Science, Computer Engineering, Software Engineering, Information Systems/Technology or related major field of study.
- 7 or more years of experience required in Software Development.
Equivalent Minimum Qualifications
- High School diploma/GED.
- 9 or more years of experience required in Software Development.
Preferred Qualifications
- Master's degree from an accredited institution required in Computer Science, Computer Engineering, Software Engineering, Information Systems/Technology or related major field of study.
- 5 or more years of experience required in Software Development.