Senior Software Engineer
Natural Language Processing (NLP)
The Scalable Knowledge Ingestion group at IBM Zurich Research Laboratory is leading the development of a large-scale document processing platform used by Fortune 500 companies to accelerate their innovation. The platform is helping customers in extracting hidden knowledge from large corpora of public and proprietary documents. Our platform accelerates the development of large-scale pipelines for knowledge ingestion [1-4] and graph-based services to query the extracted knowledge [5-6].
Information extraction is the most crucial and most challenging task for our platform. Our customers are interested in very diverse and highly technical domains, ranging from chemistry to biology. We need to perform tasks such as entity extraction, relation extraction and linking across all those verticals. Our NLP stack must be robust across domains, easily customizable with little amount of annotations efforts and extremely efficient to reduce the deployment costs.
As a Senior Software Engineer, you will be working on exciting research topics in NLP while having the chance to implement and deploy the features powered by your innovations at scale. Your code will be running on Kubernetes clusters (Red Hat Openshift) of hundreds of nodes deployed in multiple cloud environments including IBM Cloud, Microsoft Azure, and Amazon AWS. You will be adopting modern software engineering practices including continuous delivery with automatic autoscaling of the NLP workloads. To accelerate development and rate of innovation, you will be given access to best-in-class computing infrastructures for training.
At IBM Research we have an open, flexible, and collaborative working environment. As a software engineer, you will be encouraged to open-source your code where it makes sense, to disseminate your inventions by publishing patents, and to publish papers into top-tier AI/ML conferences and journals.
There are many research topics which are relevant to us. Among them there is efficient NLP, unsupervised representation learning, self-supervised training methods, and unsupervised methods for NER to name a few. Recently, we have been exploring NLP models with extremely low memory footprints and low inference times .
- Develop state-of-the-art AI algorithms for Natural Language Processing.
- Evaluate the applicability of recent NLP methods for our use-cases.
- Design/train/support models for Natural Language Processing running in production.
- Publish papers in top-tier conferences and disseminate innovation via patents.
- Knowledge about NLP: language models, self-supervision, unsupervised learning, representation learning, NER.
- Expertise in software engineering: data structures, parallel computation, object-oriented design patterns, unit testing, profiling.
- Proficient in Python and expertise in deep learning libraries (Pytorch, Tensorflow).
- Ability to speak and write in English fluently.
- Passionate about creating robust technology used by multiple customers.
Ways to stand out
- You have passion for efficiency and for elegant and maintainable code
- You can pick the right programming language for the task (e.g., C++, Cuda)
- You have experience in running models in production environments.
- You have experience in the full ML workflow and workflow tools (e.g., MLFlow)
- You know how to troubleshoot complex issues in large distributed systems
- You think full stack from the model architecture to the cache lines
Links to our work
 Robust PDF Document Conversion Using Recurrent Neural Networks [IAAI, 2021, IAAI 'Innovative Application' Award]
 TableFormer: Table Structure Understanding with Transformers [CVPR, 2022]
 Delivering Document Conversion as a Cloud Service with High Throughput and Responsiveness [IEEE Cloud, 2022]
 Corpus Processing Service: A Knowledge Graph Platform to perform deep data exploration on corpora [Applied AI Letters, 2020]
 Stochastic Matrix-Function Estimators: Scalable Big-Data Kernels with High Performance [IPDPS, 2016, Best Paper Award]
 pNLP-Mixer: an Efficient all-MLP Architecture for Language (under submission, 2022]
IBM is committed to diversity at the workplace. With us you will find an open, multicultural environment. Excellent flexible working arrangements enable all genders to strike the desired balance between their professional development and their personal lives.
How to apply
If you are interested in this exciting position, please submit your most recent curriculum vitae, your diplomas, as well as a motivational letter.