Full Time Employee Contractor
The Senior Software Engineer is an accomplished technical leader, proactive customer-focused advocate, a team player with substantial software engineering experience, preferably with some experience within the healthcare industry. The Senior Software Engineer must have hands-on experience with enterprise level software development, integration and implementation of big data systems and their integration with SOA/Microservice architecture applications. The ideal candidate will have an advanced understanding of the Java and JEE platform or Scala, and Hadoop MapReduce or Apache Spark, HDFS, and Big Data querying tools (Pig, Hive, and Impala), Microservice Architecture, AngularJS V2, Typescript, WCAG/Section 508/USDS, and UX. The Senior Software Engineer will provide their expertise in architecture, design and implementation to a cross-functional software development team.
· Architect, design, code, and implement highly scalable components and reliable applications in a high traffic transactional data and data warehouse environment using the latest technologies following software engineering best practices
· Analyze, modify and unit test software in support of customer issues.
· Analyze and develop designs for enterprise systems (applications, databases, data lake) to meet business requirements
· Collaborate with Business and Systems Analysts to analyze business requirements and develop technical design specifications
· Support Architect and contribute to strategic implementations of enterprise products and solutions
· Provide software expertise in one or more of these areas: Java application integration, java enterprise services, service oriented architectures, Scala, security, Big Data (including data storage & ingestion, data processing, data analysis & exploration, data quality & reporting, business intelligence), business process management/business rules processing, user experience (UX) and accessibility (Section 508/WCAG/USDS Web Standards).
· Lead or perform proof-of-concept initiatives in new technologies
· Support sprint team in acceptance test driven development (ATTD) by building appropriate test automation
? Gather and assemble information to support risk assessment and security vulnerabilities of client and corporate enterprise systems
· Assemble, deliver and share technical information and training materials used across many technical disciplines and staff roles
· Lead less experienced software engineers in developing technical design specifications
· Provide thorough and automated unit test harnesses for developed solutions.
· Provide software development estimates outlining business and technical risks.
· Represent company at technical meetings pertaining to schedule, requirements, project plans, technical decisions, data discrepancies and other technical matters, as directed by team leadership.
· Recommend, design, implement and maintain the various file formats (including XML/XSD, SequenceFiles, Avro files, or Parquet files) that define the information interchange between project and external systems.
· Design, implement and maintain various file format (including XML/XSD, SequenceFiles, Avro files, or Parquet files) parsing algorithms and their interaction with application or data lake.
· Investigate and repair application defects (regardless of component), including front-end (screens), business logic and middleware (Java Enterprise), database/back-end logic (SQL and data modeling), or data lake.
· Maintain and improve the build scripts (Maven ?pom.xml? and Ant ?build.xml? files) and ensure their integration with DevOps pipeline. Pay particular attention to reducing the complexity, regularizing the use of third-party libraries and conformance to the client-mandated delivery and deployment protocols.
· Recommend and enforce policies for the source-code control system (GIT) and the team?s use thereof. (For example, ?Don?t Break The Build?, or ?DBTB? ? the policy that no check-in should cause a failure in the application build script.)
· Contribute to team coding standards and monitor the codebase for compliance.
· Contribute to and expand in-house documentation technical or otherwise.
· 8+ years of systems analysis experience
· 7+ years of application design experience
· 3+ years of experience in designing, building, & operating big data systems using distributed parallel processing technologies including experience with:
· distributed file system (HDFS)
· distributed programming (MapReduce, or Apache Spark)
· Big Data querying tools (Pig , Impala, or Hive)
· data ingestion (Apache NiFi, Scoop, or Kafka)
· resource management technologies (YARN, Mesos, or Kubernetes)
· 3+ years of combined SOA/Microservice architecture/REST integration experience
· Education and/or formal training may substitute for experience requirement
· Establishes and maintains effective professional relationships with internal and external stakeholder
· Ability to assist in the collection and consideration of required information and data.
· Proficiency with Hadoop MapReduce or Apache Spark, HDFS, and Big Data querying tools such as Pig, Hive, and Impala
· Proficiency in front end technologies (AngularJs V2, Saas, Typescript)
· Demonstrable knowledge with Java EE, Java generics and concurrent programming. Spring or other dependency-injection frameworks desirable.
Knowledge of Relational Databases (MySQl, PostgreSQL, Oracle), SQL and ORM technologies (JPA2, Hibernate).