What does web development at Microblink look like?
Jurica: Web development is one of the most multifaceted positions at Microblink. Our web development team collaborates with all engineering teams and builds valuable tools for both internal and external purposes. While internal tools ensure smooth cooperation in data annotation, research, and sales teams, external ones help build supreme user experience for more than 100 million end users worldwide.
The great impact that the web development team has on our organization and our users is what makes this position at Microblink different and special.
What kinds of projects are web developers working on?
Jurica: There is a number of interesting projects currently taking place. For example, we're building a scalable API for document scanning and text recognition for mobile and web apps. We're making the infrastructure horizontally scalable with the goal to provide exceptional performance. Our machine learning models are used under the hood and they guarantee unmatched accuracy.
In addition to the scanning API, another very interesting opportunity we’re exploring at the moment is in-browser scanning. Since we own our complete tech stack, we can look into technologies like WebAssembly, WebRTC, and gRPC to build a product for the mobile web and PC webcams, with the same user experience as in our mobile SDKs. This would enable a whole range of progressive web apps to use our powerful tech.
Besides our products, we have a range of important internal developer tools built for the web. One example is our Machine Learning System (MLS) - a tool which enables evaluation of machine learning models, data annotation, secure data storage, and much more. MLS is central to the whole engineering efforts in Microblink.
Other examples of tools include Microblink Developer Dashboard, where users manage licenses and API keys, and the Ping app for tracking product usage, used by our sales team.
How are engineers in the web team helping in the machine learning process?
Jurica: The help is done mostly through the work on the Machine learning system (MLS) I already mentioned.
MLS securely hosts millions of images we use as data in the ML process, for example, images of different US retail receipts or math equations. In order to be able to use that data in a supervised machine learning setup, our web development team built a tool for data annotation.
In the past two years, the tool was used to annotate more than 5 million characters in math expressions, and even more on retail receipts. The tool ensures a high-quality data output with minimal errors. On top of that, MLS also serves as an evaluation tool, which we use to keep track of our ML experiments and datasets, compare different models, and perform model selection. MLS is the centerpiece of machine learning research in Microblink and has an enormous impact on all our products.
Which technologies do web developers work with?
Jurica: All of us at Microblink consider ourselves early adopters of new tech, and the web development team is no exception. We strive to use the best tools and technologies to get the job done.
For backend development in our enterprise products, we prefer the combination of Java and Spring, which are proven and increasingly powerful with each new version. For internal tools we sometimes use Node.js and Python Flask, which are faster to set up and simpler to use.
For frontend, nowadays we prefer React. We've used Angular in some projects, in others we developed completely custom components. We're always open to try new approaches.
For cloud deployment we've used Google Cloud, and for databases we prefer MongoDB.
When performance is critical, our web engineers use or work closely with our C++ engineers to get the most out of the powerful server CPUs.
What kind of people are you looking for to grow your web development team?
Jurica: All our products are built to last. That's why we carefully choose new team members to grow a talented, skilled, and compact team that can support and improve our products in the long term.
We look for computer science basics like understanding of algorithms, data structures, and object-oriented programming principles. We require some experience with frontend and backend frameworks, but not necessarily ones we currently use.
Experience, the number of years in the industry, or knowledge of a certain framework are not the primary criteria for us. Our engineering teams are full of talented and hard-working individuals, so we're looking to expand them with people who are willing to learn new stuff, like to get things done, and are eager to work in a dynamic and ambitious environment.
Related job opening