Senior Software Engineer – Java/JVM
Primary Responsibilities
Contribute to the ongoing design, development and maintenance of runtime security agent-based products and proof of concept prototypes
Investigate, perform root cause analysis, and solve complex issues identified in the field
Perform all the tasks required of a software developer within an Agile SDLC
Prioritize code quality with comprehensive and effective code reviews, and targeted unit and integration test coverage
Collaborate with a cross-functional team of developers, product managers and quality engineers, pre-sales engineers and field support engineers
Qualifications
7+ years of software development within the Java/JVM ecosystem
Natural curiosity, initiative and creativity in problem solving
Solid grasp of both fundamental and advanced software development concepts in Java, including class loaders, the JVM, concurrency and threading, asynchronous development and Java build tools (Maven, Gradle)
Familiarity/experience with custom class loaders, Java instrumentation, agents, bytecode manipulation libraries (ASM, Byte Buddy, etc.) a big plus
Experience with JEE, commonly used web frameworks (Play, Spring, Hibernate, etc.)
Experience with commonly used WAS/containers (Tomcat, Jetty, WebSphere, WebLogic, WildFly, etc.)
Proficient at profiling, optimizing, and debugging Java code
Experience with JUnit or other Java unit testing framework
Experience working with containerized environments (e.g. Docker, Kubernetes)
Knowledge of design patterns and an understanding of software development best practices
Understanding of git best practices
Ability to communicate complex concepts clearly and effectively to both technical and non-technical audiences
B.Tech or Masters (M.Tech/M.E) in Computer science or related degree
Preferred experience
Experience with the JNI and Java interoperability with native applications and libraries
Understanding how software security exploits work and experience building software that mitigates them
Proficiency in another language that runs on the JVM (Scala, Groovy, etc.)
Significant experience with at least one other development language (Python, JavaScript, PHP, C/C++, Go, etc.)
Experience with performance testing tools and techniques
Experience with penetration testing tools and techniques
At Thales we provide CAREERS and not only jobs. With Thales employing 80,000 employees in 68 countries our mobility policy enables thousands of employees each year to develop their careers at home and abroad, in their existing areas of expertise or by branching out into new fields. Together we believe that embracing flexibility is a smarter way of working. Great journeys start here, apply now!