Используем cookie для работы сайта и статистики. «Хорошо» разрешит ещё и запись сессий.
Neo4j
Мальмё, Швеция2 года назад
Грейд
Intern
Уровень английского
B2, выше среднего
Письмо на почту или сообщение рекрутеру в Telegram
Neo4j — это платформа графовых интеллектуальных систем, которая преобразует данные в знания для создания интеллектуальных приложений и систем ИИ нового поколения. Она включает в себя готовые к корпоративному использованию графовые базы знаний для точного, объяснимого и управляемого ИИ; наиболее полные, надежные и простые в развертывании графовые возможности в любой среде и любом источнике данных; а также непревзойденную экосистему, которой доверяют 84 из 100 компаний из списка Fortune 100 и которую поддерживает крупнейшее в мире сообщество пользователей графовых баз данных. Интеллект, который работает. Результаты, которые имеют значение.
Разработана для работы везде и интеграции со всем, что существует, в любом облаке для динамических, персонализированных и автономных систем ИИ. Мы достигаем более быстрых результатов, предоставляем контекстуальные знания и решения, которые влияют на клиентов и сотрудников по всему бизнесу.
Наше видение: В Neo4j мы всегда стремились помочь миру разобраться в данных.
Поскольку бизнес, общество и знания становятся все более взаимосвязанными, наши технологии способствуют инновациям, помогая организациям находить и понимать взаимосвязи в данных. Мы создали, развиваем и лидируем в категории графовых баз данных, и мы меняем представление о том, как организации используют свои данные для инноваций и сохранения конкурентоспособности.
Работая в инженерном отделе Neo4j в Мальмё, вы будете взаимодействовать с разнообразной командой талантливых коллег по всему миру.
Автоматическая генерация многоступенчатых панелей мониторинга на основе графовых баз данных с использованием LLM
Эта диссертация исследует генерацию панелей мониторинга на основе графовых баз данных, управляемую естественным языком, с акцентом на поддержание соответствия между намерением пользователя и сгенерированными результатами. В то время как предыдущие работы по преобразованию естественного языка в визуализацию улучшили генерацию отдельных диаграмм, создание согласованных многоэкранных панелей мониторинга остается сложной задачей, особенно для данных с графовой структурой, где взаимосвязи и ограничения запросов имеют центральное значение. Для решения этой проблемы генерация панелей мониторинга рассматривается как многоступенчатый рабочий процесс, а не как одноэтапная задача. Разработан конвейер, который разделяет интерпретацию намерения, привязку схемы, планирование, генерацию запросов и проверку, с избирательным уточнением человеком в процессе. Предложенный подход реализован для базы данных Neo4j и оценен по сравнению с базовым методом генерации посредством сравнительного исследования панелей мониторинга и исследования интерактивных рабочих процессов. Результаты предполагают, что предложенный рабочий процесс улучшает воспринимаемое качество панели мониторинга и пользовательский опыт, особенно в отношении согласованности, удобства использования и соответствия намерениям. Выводы указывают на то, что структурирование генерации как проверяемого и итеративного процесса является многообещающим направлением для генерации панелей мониторинга.
Алгоритмы направленного построения графов и оптимизация параметров: В рамках моей диссертации я реализовал и сравнил несколько различных алгоритмов построения графов, а также некоторые методы ускорения медленных частей этих алгоритмов. Эти алгоритмы затем использовались для тестирования подхода, который, насколько мне известно, является новым, к выбору значений параметров для алгоритмов построения графов. Для этого я использовал методы, аналогичные тем, которые применяются в машинном обучении, для выбора значений параметров и измерял полезность любого набора параметров, создавая свою собственную функцию полезности. Я создал эту функцию, рассмотрев объективные меры качества построения, которые общеизвестны, такие как количество пересечений ребер, а также время, затраченное на построение данного графа. Полученный метод оптимизации параметров позволил значительно увеличить скорость построения графов для нескольких реализованных мной алгоритмов построения, не жертвуя качеством построения. Кроме того, подход не специфичен для какого-либо набора параметров и с некоторыми модификациями может быть применен к любому алгоритму построения графов, зависящему от некоторых констант.
Моделирование данных профилирования в графовой базе данных для анализа производительности: Бенчмаркинг является важной частью процесса разработки любого критически важного приложения. Анализируя данные профилирования, разработчики могут выявлять узкие места и регрессии производительности до того, как они достигнут клиентов.
Neo4j выполняет обширный набор тестов для своей базы данных, в результате чего каждую неделю собирается огромное количество данных профилирования. Эти профили обычно визуализируются по отдельности в виде графов-пламени, которые анализируются вручную. Обнаружение закономерностей и различий между несколькими профилями затруднительно при ручном анализе из-за размера и сложности данных. Мы предлагаем структуру для выявления узких мест и регрессий путем моделирования данных профилирования в виде деревьев стека вызовов в графовой базе данных. Мы демонстрируем полезность этой структуры для межпрофильного анализа, такого как анализ временных рядов и методы, основанные на агрегировании. Мы приходим к выводу, что этот подход имеет большой потенциал, и наша диссертация может быть использована в качестве основы для принятия решений организациями, желающими внедрить аналогичную структуру.
Использование графовой базы данных для моделирования данных профилирования имеет много преимуществ и подходит для древовидной структуры данных. Это делает данные более доступными и облегчает гибкие запросы, в которых пользователь может задавать вопросы о данных и выполнять нетривиальное агрегирование. Это уже помогло Neo4j в процессе определения причин некоторых проблем с производительностью. Основным недостатком является сложность, связанная с импортом больших объемов данных.
Навигация по сбоям в распределенных системах: сравнительное исследование алгоритмов обнаружения сбоев: Алгоритмы обнаружения сбоев используются для выявления неисправных узлов в распределенных системах. Цель данного исследования — улучшить использование Neo4j алгоритмов обнаружения сбоев, исследуя два пути: либо оптимизировать их существующий алгоритм Lighthouse, либо внедрить новый алгоритм. Были изучены существующие алгоритмы и реализован алгоритм SWIM. Была установлена базовая линия и оценена по сравнению с оптимизированными по параметрам версиями SWIM и Lighthouse в симулированной сети. Результаты показывают, что базовая линия масштабируема и надежна, но медленна, Lighthouse быстр, но менее точен, а SWIM умеренно быстр и наименее точен, но генерирует наименьшую сетевую нагрузку. В заключение, выбранные параметры детектора сбоев в значительной степени важнее самого алгоритма. Кроме того, для успешной оптимизации параметров решающее значение имеет наличие масштабируемого симулятора и точные системные требования для управления компромиссом между скоростью, точностью и сетевой нагрузкой.
Политики замещения кэша и их влияние на операции графовой базы данных: В этом проекте магистерской диссертации исследуется и пытаются улучшить стратегию кэширования страниц базы данных Neo4j. Сосредоточившись на протоколе вытеснения кэша страниц, несколько различных алгоритмов оцениваются как в экспериментальном прототипировании с использованием Python, так и в ядре базы данных Neo4j. Используя измерения прототипов и результаты тестов Neo4j, можно сделать вывод, что текущей политике замещения страниц трудно найти лучшую стратегию. Однако модификация текущей политики замещения страниц путем использования глобальной, а не локальной для потока структуры данных и настройки параметров увеличила коэффициент попаданий и пропускную способность. Кроме того, измерения на различных реализациях показали, что коэффициент попаданий можно увеличить за счет некоторой накладной стоимости, но реализация сложного алгоритма быстро увеличивает накладную стоимость и может снизить пропускную способность настолько, что сделает алгоритм неэффективным.
Случайная генерация планов выполнения для обнаружения ошибок в Neo4j: В последние годы графовые системы управления базами данных (GDBMS) набирают популярность для многих сценариев использования. Одной из самых популярных GDBMS является Neo4j, которая использует Cypher в качестве языка запросов. С растущим использованием GDBMS во многих критически важных для бизнеса приложениях, тестирование Neo4j и ее конкурентов стало крайне важным. Одной из распространенных практик выявления ошибок в системе баз данных является использование случайно сгенерированных тестов, известных как фазз-тестирование. Ранее это делалось путем случайной генерации запросов, и для этой цели существует несколько доступных инструментов. При выполнении запроса Cypher запрос проходит несколько этапов обработки, чтобы обеспечить быстрый возврат корректного результата. Одной из промежуточных структур, используемых в обработке запросов, является план выполнения, который детализирует, как среда выполнения должна решить запрос. В этой диссертации мы предлагаем новый подход к фазз-тестированию GDBMS путем случайной генерации планов выполнения. Наш инструмент использует дифференциальное тестирование между различными средами выполнения Neo4j, что позволяет выявлять некорректные результаты, возвращаемые одной или несколькими средами выполнения. Эти типы ошибок известны как логические ошибки. Мы также можем выявлять ситуации, когда среды выполнения Neo4j выдают неожиданные исключения. Набор тестов выявил 20 ошибок в Neo4j, из которых 11 были логическими. Этот подход к фазз-тестированию оказался полезным при выявлении ошибок в средах выполнения Neo4j, которые ранее получали недостаточное покрытие при фазз-тестировании с помощью запросов. Другие системы управления базами данных, использующие планы выполнения, могут извлечь выгоду из подхода, предложенного в этой диссертации. Основными недостатками этого нового подхода являются то, что он нелегко переносится между различными GDBMS и требует доступа к исходному коду обработки запросов.
Neo4j, без сомнения, является самой популярной платформой графовых интеллектуальных систем в мире. У нас есть клиенты во всех отраслях промышленности по всему миру, и наши продукты имеют доказанное соответствие продукта рынку. Присоединение к нашей команде — это возможность формировать будущее данных и аналитики.
Neo4j — одна из самых быстрорастущих технологических компаний в этой отрасли. Ее годовой регулярный доход (ARR) превысил 200 миллионов долларов, удвоившись за последние три года.
Привлекла крупнейший раунд финансирования в истории баз данных (325 млн долларов серия F). Поддерживаемая инвесторами мирового класса, такими как Eurazeo, GV (ранее Google Ventures) и Inovia Capital, Neo4j привлекла более 600 миллионов долларов финансирования и в настоящее время оценивается более чем в 2 миллиарда долларов. Это ставит Neo4j в число наиболее хорошо финансируемых компаний-разработчиков баз данных в истории.
84% компаний из списка Fortune 100 и 58% компаний из списка Fortune 500 используют Neo4j. Примеры включают Boston Scientific, BT Group, Caterpillar, Cisco, Comcast, Department for Education UK, eBay, NBC News, Novo Nordisk, Worldline и других.
Соучредитель и генеральный директор Эмиль Айфрем создал удивительную культуру, которая гордится отношениями, инклюзивностью, инновациями и успехом клиентов.
Бесчисленные отраслевые награды. Массивные предприятия и индивидуальные разработчики/специалисты по данным любят Neo4j. Сильное чувство сообщества и экосистемы построено вокруг платформы.
В недавнем исследовании Forrester Total Economic Impact™ Neo4j отметили за обеспечение ROI в 417% для клиентов.
Исследования показывают, что представители недостаточно представленных сообществ реже подают заявки на вакансии, если они не соответствуют всем требованиям. Neo4j — калифорнийская компания со шведской душой. Мы способствуем сотрудничеству, и каждый из нас наделен полномочиями вносить свой вклад и оставлять свой инновационный след в проектах. Мы нанимаем кандидатов, которые отражают следующие основные ценности Neo4j:
(we)-[:VALUE]->(relationships) (we)-[:FOCUS_ON]->(userSuccess) (we)-[:THRIVE_IN]->(:Culture {type: ['Open', 'Inclusive']}) (we)-[:ASSUME]->(:Intent {direction:'Positive'}) (we)-[:WELCOME]->(:Discussions {nature: 'IntellectuallyHonest'}) (we)-[:DELIVER_ON]->(ourCommitments)
Вы завершаете обучение и хотите погрузиться в графовые технологии? Мы ищем студентов, которые хотят пройти обучение по написанию магистерской диссертации вместе с нами в Neo4j!
Вы будете получать советы и постоянную поддержку от нас — мы являемся экспертами в области графовых технологий и готовы помочь вам максимально раскрыть свой потенциал.
Январь/февраль 2027 г.
About Neo4j: Neo4j is the graph intelligence platform that transforms data into knowledge to power the next generation of intelligent applications and AI systems. It includes enterprise-ready knowledge graphs for accurate, explainable, and governed AI; the most comprehensive, trusted, and easy-to-deploy graph capabilities across any environment and data source; and an unmatched ecosystem trusted by 84 of the Fortune 100 and supported by the world’s largest graph community. Intelligence that works. Results that matter.
Built to work everywhere and integrate with everything across every cloud for dynamic, personalized, and autonomous AI systems. We deliver quicker results, contextual knowledge, and solutions that impact customers and employees across the business.
Our Vision: At Neo4j, we have always strived to help the world make sense of data.
As business, society and knowledge become increasingly connected, our technology promotes innovation by helping organizations to find and understand data relationships. We created, drive and lead the graph database category, and we’re disrupting how organizations leverage their data to innovate and stay competitive.
The Role: Are you at the end of your studies and want to immerse yourself in graph technology? We are now looking for students who want to do their Master’s Thesis alongside us at Neo4j!
As part of Neo4j engineering in Malmö, you will work with a diverse team of talented colleagues worldwide. You will receive advice and continuous support from us - we are experts in graph technology and positioned to help you perform to the best of your ability.
Past Thesis Topics:
Multi-Stage Dashboard Generation over Graph Databases with LLMs
This thesis investigates natural language–driven dashboard generation over graph databases, with a focus on maintaining alignment between user intent and generated outputs. While prior work in natural language to visualization has improved single-chart generation, producing coherent multi-view dashboards remains challenging, particularly for graph-structured data where relationships and query constraints are central. To address this, the work frames dashboard generation as a multi-stage workflow rather than a single-step task. A pipeline is designed that separates intent interpretation, schema grounding, planning, query generation, and validation, with selective human-in-the-loop clarification. The proposed approach is implemented for a Neo4j database and evaluated against a baseline generation method through a comparative dashboard study and an interactive workflow study. Results suggest that the proposed workflow improves perceived dashboard quality and user experience, particularly in coherence, usability, and intent alignment. The findings indicate that structuring generation as an inspectable and iterative process is a promising direction for dashboard generation.
Force Directed Drawing Algorithms and Parameter Optimisation: Through my thesis I have implemented and compared some different graph drawing algorithms in addition to some methods to speed up the slow parts of these algorithms. These algorithms were then used to test what to the best of my knowledge is a novel approach to select parameter values for graph drawing algorithms. For this, I use methods similar to those used in Machine Learning to select parameter values and measure the utility of any set of parameters by creating my own utility function. I created this function by looking at objective measures of drawing quality that are commonly known, such as the number of edge crossings, along with the time it took to draw a given graph. The resulting method for parameter optimisation could find significant increases in the speed of graph drawing for several of my implemented drawing algorithms without compromising drawing quality. Furthermore, the approach is not specific to any parameter set, and with some modification can be applied to any graph drawing algorithm dependent on some constants.
Modeling Profiling Data in a Graph Database for Performance Analysis: Benchmarking is an important part of the development process for any mission-critical application. By inspecting profiling data, developers can identify bottlenecks and performance regressions before they reach the customers.
Neo4j runs an extensive benchmarking suite on its database, resulting in a huge collection of profiling data collected each week. These profiles are commonly visualized individually as flame graphs which are inspected manually. Finding patterns and differences among multiple profiles is difficult to do manually, due to the size and complexity of the data. We propose a framework for identifying bottlenecks and regressions by modeling the profiling data as call-stack trees in a graph database. We demonstrate the usefulness of the framework for cross-profile analysis such as time series analysis and aggregation-based methods. We conclude that there is much potential in this approach and our thesis can be used as a decision basis for organizations wanting to implement a similar framework.
Using a graph database to model profiling data has many advantages and is suitable for the tree-like structure of the data. It makes the data more accessible and facilitates flexible querying in which the user can ask questions about the data and perform non-trivial aggregation. It has already aided Neo4j in the process of pinpointing the cause of some performance issues. The main disadvantage is the complexity involved in importing large quantities of data.
Navigating Failures in Distributed Systems: A Comparative Study of Failure Detection Algorithms: Failure detection algorithms are used to identify unhealthy nodes in distributed systems. The goal of this study was to improve Neo4j’s use of failure detection algorithms by exploring two paths: either optimising their existing Lighthouse algorithm or by implementing a new algorithm. Existing algorithms were surveyed and the SWIM algorithm was implemented. A baseline was established and evaluated against parameter-optimized versions of SWIM and Lighthouse in a simulated network. The results show that Baseline is scalable and reliable but slow, Lighthouse is fast but less accurate, and SWIM is moderately fast and the least accurate but generates the least network load. In conclusion, the chosen parameters of a failure detector are to a great extent more important than the algorithm itself. Furthermore, to successfully optimise parameters it is crucial to have a scalable simulator and precise system requirements to manage the trade-off between speed, accuracy, and network load.
Cache replacement policies and their impact on graph database operations: In this master thesis project, the page caching strategy of the Neo4j database is researched and attempted to be improved. Focusing on the eviction protocol of the page cache, several different algorithms are evaluated in both experimental prototyping using Python, and in the Neo4j database kernel. Using the measurements of the prototypes and the results of the Neo4j benchmarks conclude that the current page replacement policy is hard to beat with a different strategy. However, modifying the current page replacement policy by using a global instead of thread-local data structure and tuning parameters increased the hit rate and throughput. Furthermore, the measurements on the different implementations showed that the hit rate can be increased at the cost of some overhead, but implementing a complicated algorithm quickly increases the overhead and might decrease the throughput enough to make the algorithm ineffective.
Randomly generating execution plans for bug detection in Neo4j: In recent years, Graph Database Management Systems (GDBMS) has increased in popularity for many use cases. One of the most popular GDBMS is Neo4j, which uses Cypher as a query language. With the increasing use of GDBMS in many business-critical applications, the need to test Neo4j and its competitors has become critical. One common practice for identifying bugs in a database system is using randomly generated tests, known as fuzz testing. Previously, this has been done by randomly generating queries, and several tools are currently available for this purpose. When executing a Cypher query, the query goes through several processing steps to ensure a correct result returns quickly. One of the intermediate structures used in the query processing is the execution plan, which details how the runtime should solve the query. In this thesis, we propose a novel approach to fuzz testing GDBMS by randomly generating execution plans. Our tool utilizes differential testing between different Neo4j runtimes, which allows for identifying incorrect results returned from one or more of the runtimes. These types of bugs are known as logic bugs. We can also identify situations when the Neo4j runtimes throw unexpected exceptions. The testing suite identified 20 bugs within Neo4j, of which 11 were logic bugs. This approach to fuzz testing has proven helpful in identifying errors within the Neo4j runtimes, which previously received insufficient coverage by fuzz testing using queries. Other database management systems that utilize execution plans can benefit from the approach proposed by this thesis. The main drawbacks of this new approach are that it is not easily portable between different GDBMS and requires access to the query processing source code.
We tackle challenges in:
Does this topic sound interesting? Please apply!
If you are applying as a group, please apply separately and indicate who you are applying together with in your Cover Letter.
Project start Jan/Feb 2027
Why Join Neo4j? Neo4j is, without question, the most popular graph intelligence platform in the world. We have customers in every industry globally, and our products are a proven product/market fit. Joining our team is an opportunity to shape the future of data and analytics.
Neo4j is one of the fastest-scaling technology companies in this industry. It recently surpassed $200M in annual recurring revenue (ARR), doubling its ARR over the past three years.
Raised the biggest funding round in database history ($325M Series F). Backed by world-class investors like Eurazeo, GV (formerly Google Ventures), and Inovia Capital, Neo4j has raised over $600M in funding and is currently valued at over $2Bn. This puts Neo4j among the most well-funded database companies in history.
84% of the Fortune 100 and 58% of the Fortune 500 use Neo4j. Examples include Boston Scientific, BT Group, Caterpillar, Cisco, Comcast, Department for Education UK, eBay, NBC News, Novo Nordisk, Worldline, and others.
Co-founder and CEO Emil Eifrem has built an amazing culture that prides itself on relationships, inclusiveness, innovation, and customer success.
Countless industry awards. Massive enterprises and individual developers/data scientists love Neo4j. A strong sense of community and ecosystem is built around the platform.
A recent Forrester Total Economic Impact™ Study cited Neo4j as delivering 417% ROI to customers.
Research shows that members of underrepresented communities are less likely to apply for jobs when they don’t meet all the qualifications. If this is part of the reason you hesitate to apply, we’d encourage you to reconsider and give us the opportunity to review your application. At Neo4j, we are committed to building awareness and helping to improve these issues.
One of our central objectives is to provide an inclusive, diverse, and equitable workplace for everyone to develop their potential and have a positive, career-defining experience. We look forward to receiving your application.
Neo4j Values: Neo4j is a Silicon Valley company with a Swedish soul. We foster collaboration and each of us is empowered to contribute and put our innovative stamp on projects. We hire candidates who reflect the following Neo4j core values:
(we)-[:VALUE]->(relationships) (we)-[:FOCUS_ON]->(userSuccess) (we)-[:THRIVE_IN]->(:Culture {type: ['Open', 'Inclusive']}) (we)-[:ASSUME]->(:Intent {direction:'Positive'}) (we)-[:WELCOME]->(:Discussions {nature: 'IntellectuallyHonest'}) (we)-[:DELIVER_ON]->(ourCommitments)
Neo4j is committed to protecting and respecting your privacy. Please read the privacy notice regarding Neo4j's recruitment process to understand how we will handle the personal data that you provide.
Сравним навыки, грейд, формат работы и зарплату
Чаще всего от 30 200 до 43 800