Senior Java Software Engineer
Location: San Jose, Costa Rica.
We are recruiting an experienced Java developer to take a senior role in developing our cyber analytics platform. We are committed to developing a leading edge system based on the latest web-scale data collection, analysis, and storage technologies. We are building a flexible platform that can support multiple business offerings and are looking for a candidate who wants to explore the edge of the possible and find creative solutions to difficult problems. If you are looking for a job focused on developing against a list of detailed pre-determined specifications, then this isn’t the position for you. We expect the candidate to work closely with stakeholders across the company to deliver on our vision and develop a set of tools that enable our analysts succeed and provide critical intelligence to our clients. We expect the candidate will embrace the current vision, take ownership of it, and help constantly evolve and improve the platforms.
- Senior contributor to the Java development team; take part in code reviews, mentor junior developers, validate implementations for correctness and completeness; improve software development processes and quality of deployed projects.
- Mature our existing capabilities and play a central role in designing and building our next-generation production level, web-scale cyber analytics platform to meet our discovery, collection, analysis, and reporting requirements.
- Ensure scalability and security are planned for in every internal development project.
- Work with the rest of the development team to deliver mission critical services.
- Evaluate and help select the core technologies needed to build out the platform.
- Work closely with executive leadership, application development teams, and intelligence analysts to ensure that requirements and needs are being met.
- Work in an Agile environment to continuously deliver improvements and new capabilities based on our rapidly evolving analytical and business needs.
- Deliver distributed scalable microservices based applications developed within a mixed development environment with a core focus on Java backend services.
- Contribute across the range of internal applications, from scalable analytics and data processing to backend services for our client facing web applications.
- Development in a Linux / open source, cloud based, environment integrating external and internal APIs through JSON.
- Support the intelligence analysis team through a highly iterative fast development cycle to understand requirements and deliver capabilities.
- Work closely with other engineering teams to ensure interoperability of applications.
- Evaluating and utilizing various leading edge technologies for systems development.
- Maintaining complex software projects. This includes version control, testing, release engineering, and deployment.
- Agile! We are a small, committed team where everyone chips in to make things happen. Mindset is just as important and skillset. The team is driven by a burning desire to pull intelligence out of the mass of data and quickly surface those insights to our analysts and clients. Technology is just a means to that end.
- Bachelor’s degree or foreign equivalent in computer science or related field.
- Solid understanding of object oriented design, design patterns, distributed systems and backend services.
- Experiencing designing and delivering microservice based applications.
- 6+ years of experience developing in Java and JVM ecosystem.
- 3+ years of experience working in a team-driven Agile environment.
- Strong experience in Java 8, asynchronous development
- Experience developing highly scalable microservice based applications
- Messaging (e.g. Apache Kafka or AWS SQS).
- Lucene / Elasticsearch or other full text indexing systems
- Amazon AWS or Google Compute Cloud.
- Comfortable in a Linux / BSD environment.
- Strong analytical skills and ability to work independently and collaboratively.