Job title: Principal Engineer
Location: Fort Worth, TX
Experience: 5-7 Years
Description:
- Writes, tests, and documents technical work products (e.g., code, scripts, processes) according to organizational standards and practices
- Solves technical problems and builds components/libraries with far-ranging impact
- Delivers high quality work and coaches more junior engineers on technical craftsmanship
- Conducts root cause analysis to identify systemic problems and defines and leads execution of action items to address
- Designs thoughtfully integrated systems that model organizational best practices, allowing disparate teams across product domains to deliver value with speed, scale, and reliability
- Oversees the management of technical debt in existing systems and drives opportunities to eliminate within ongoing implementations
- Consistently anticipates scaling, latency, and durability challenges and guides teams in implementation of mitigating strategies
- Partners with the security organization to incorporate security conscious practices early in the lifecycle of new systems
- Thoughtfully evaluates technical risks and guides toward practical prevention strategies
- Consistently reflects on squad delivery practices throughout their span of of influence, recommends improvements to leadership and drives their implementation
- Maintains a focus on removing the duplication of effort across teams and proactively identifies opportunities for reuse within their span of influence
- Thoughtfully measures and assesses team and identifies areas of development for individuals
- Explores emerging technologies, leads development of prototypes with little or no guidance and incorporates into architectural solutions where appropriate
ALL YOU LL NEED FOR SUCCESS
Top 3 Requirements:
Micro Services with Spring Boot, Java, Kafka, Production Support experience
Nice to have skills:
PostgreSQL, Kubernetes, Redis, Git, Github Actions, Maven, Junit, Agile.
Other qualifications:
Skills / Experience:
o Perform requirements gathering, analysis. Create architecture & design documents o Refine requirements and map to technical modules fitting the enterprise wide architecture.
o Represent design of the system in UML diagrams such as Sequence Diagrams and ER models.
o Create Data flow diagrams and represent data in JSON format and map to business cases.
o Develop applications using Java, Spring Boot, Spring Cloud, and Cloud Foundry, Kubernetes o Develop microservices using REST, Spring, Spring Boot o Write Maven build scripts for building Java based Spring Boot microservices o Develop scripts to deploy the microservices in Cloud such as Cloud Foundry and Kubernetes.
o Develop Github actions to automate the scripts using CI/CD continuous integration and Continuous delivery.
o Use Swagger2API for publishing REST interfaces.
o Scale the applications using auto-scaling policies, design for fault tolerance, availability and low response times.
o Develop using Spring modules such as actuator for metrics, health check of services o Develop using Spring Cloud Config for storing configuration of the services.
o Develop using Spring Cloud Eureka to have service registry and discovery.
o Improve performance using Redis cache, PostgreSQL, NoSQL databases.
o Able to use Github Copilot to maximize the productivity and learning existing systems.
o Develop, deploy, and manage Kafka-based data pipelines and real-time streaming applications.
o Proficient in Kafka internals, producer/consumer APIs.
o Develop Data access layer using JPA, Hibernate and ORM tools over JDBC layer.
o Develop applications using cache such as Redis using Java Jedis client.
o Test REST resources using tools like Postman, Curl etc., o Make enhancements to legacy systems o Develop/enhance SOAP webservices over XML and JSON written using J2EE technologies, Servlets, JSP, JavaScript, jQuery, AJAX, Angular, React, NodeJS o Debug issues involving multi-threading, concurrency issues.
o Experience using XML, XSD, XSLT, DOM, JMS, Spring Integration o Knowledge of application servers such as Tomcat, Glassfish and JBoss.
o Develop applications using Spring MVC, Spring Batch and Spring Integration.
o Do performance tuning of SQL queries, propose improvements to existing systems.
o Support applications using multi-threading concepts, TCP/IP, database, and REST based JSON APIs o Handle legacy systems which involves processing using multithreading, handle concurrency issues and network issues.
o Configure Database connections, write SQL and PLSQL scripts to interact with RDBMS databases.
o Using Java and Spring technologies to develop REST based API s and clients invoking such REST services using JSON as payload.
o Knowledge of NGINX and other infrastructure tools.
o Create scripts using build and deployment tools: Maven, Git, Junit o Should be able to create code repositories in Git o Should perform GIT branching, merging and Push Requests in Git flow.
o Build Maven pom.xml build files to automate CI/CD in Jenkins.
o Implement CI/CD pipelines for DevOps using tools (Nexus, Hygieia, SonarQube, Github, Jenkins) o Should implement Jenkins pipelines to enable Code pipelines.
o Should fix code issues shown by SonarQube and improve code quality.
o Linux/Unix and Shell scripting
o Develop scripts written in Shell/Bash for various operational tasks.
o Experience with the scrum process
o Should participate in Agile ceremonies and contribute to the overall success of the project.
o Should effectively contribute in Sprint Planning, Daily Scrum Sprint Review and Sprint Retrospectives.
o Should update user stories, tasks in JIRA, Confluence, IBM Rally tools.
o Produce reports.
o Experience and understanding of test driven (TDD) & Behavioral Driven development (BDD) o Should develop test cases by writing code using tools such as Mockito, EasyMock.
o Should develop integration tests by writing code using tools such as Cucumber.
o Excellent verbal and written communication skills and problem-solving skills o Ability to work very closely with a larger development team of differing skillsets
Minimum Requirements
Bachelor s degree in computer science, electronics, engineering, or related field, plus 5-7 years of experience in the job offered or in software development or engineering plus demonstrated experience in:
o Design/Development Techniques: Object-oriented Analysis and Design) OOAD, Unified Modelling Language (UML), Test Driven Development (TDD), Java Design Patterns, Enterprise Integration Design Patterns, Disaster Recovery Design and Development o Web Technologies: Java EE, Spring MVC, Spring Web Flow, Struts, HTML, CSS, XML, Servlets, JSP, JavaScript, JQuery, Junit, JSON, Ajax, Angular, React o Service Technologies: Java 1.8, EJB, Spring Framework, Spring Boot, Groovy, In- memory computation, REST/SOAP Web Service, WSDL, JAXB, JAXP, XPATH, XSLT, XQuery, XSD, JMS, Spring Integration, WebSphere MQ, ActiveMQ o Relational Database and Persistence: Hibernate (Object/Relational Mapping), JPA, JDBC,MySQL, Oracle, PostgreSQL, PL/SQL, Query Performance Tuning o No-SQL Database: DynamoDB, NoSQL o Cloud Technologies: Amazon Web Services (AWS), CloudFormation Template o Caching Technologies: Redis Cache, EhCache Messaging Technologies: Kafka, Azure Event Hubs o Servers: Tomcat, JBoss, Glassfish, WebSphere o CI/CDTools Junit, Mockito, JBehave, Maven, Jenkins, Nexus, Chef, Puppet, Linux/UNIX Shell Scripting, Ruby o SCM Tools Git, Subversion o Monitoring Tools: Dynatrace, CloudWatch, Zenoss.
o Project Management Tools: Jira, Rally, Confluence, Visio, PowerPoint, Excel, Word o Operating Systems: Windows, Unix, Linux o IDEs: Eclipse, RAD, Oracle SQL Developer, PuTTY, Visual Studio Code, Robo Mongo, o Testing tools - Postman, SoapUI o Methodologies: Agile, Scrum, Kanban, XP