Please send your applications to email@example.com.
AppGyver’s platform is transforming the way modern mobile and web apps are built, by providing a suite of products that work seamlessly together to tackle all aspects of development, combining the productivity of visual tooling with code-level extendibility.
You will be working with a very cool and complex stack of technology, developed over the past 7 years. We have a solid roadmap, and many parts of our platform are due for a version 2.0 or 3.0 upgrade/rewrite. We want you to take ownership of a part of the platform that interests you, and lead its development to the next level.
Let us know what you’d like to work with, and we’ll craft the perfect position for you.
To paint you a picture of the opportunities available, some of the key components of our platform are listed below.
The visual builder lets you create and configure with drag-and-drop all aspects of an app: UI, navigation, frontend and backend logic, backend services, data integrations, user authentication, business automation rules, notifications, app delivery, users, permissions and much more.
The app UI is crafted with our own proprietary builder, while data integrations and backend/frontend logic utilize a heavily modified version of IBM’s Node-RED.
In essence, we are looking to solve visual programming in the app/API development context in a way that doesn’t feel worse than regular coding. We feel we’ve gotten quite a few of the key concepts right, and we’d love to share our philosophy with you.
It is built with Ruby on Rails, Node.js, React and Vue.js, with some legacy Angular parts due for a React rewrite.
Our data layer is an on-prem-deployable middleware/proxy component. It handles all the data traffic between the mobile/web clients and master data sources (DBs/APIs/legacy services). It also includes a GraphQL engine, so client apps need only make a single HTTP request to get all the data they need.
There is also a service layer to create services that can be triggered by automation rules or user interaction (like sending an SMS or a push notification, generating a PDF report, performing calculations, rendering a graph etc).
An auth layer handles the client login process, allowing any kind of custom authentication to be developed for the client apps. User permissions are also handled here, in conjunction with the data layer.
An automation engine listens to events happening in all apps, and based on defined triggers – such as data record created – fires actions in a Zapier/IFTTT fashion. Additionally, the automation layer supports arbitrarily complex workflows with a Business Process Modeling Language -compliant design, complete with human tasks, exclusive gateways, system tasks and so on.
All of the middleware components are built with Ruby on Rails, Node.js and TypeScript, and deployed to Heroku with a Docker option for on-prem/private cloud deployment.
Currently, our client apps use our proprietary, Cordova-based native wrapper on iOS/Android and Ruby on Rails on web, with our own Ionic-based Supersonic framework combined with Angular 1 powering the HTML5 side of things.
We are in the process of rebuilding our client apps on top of React and React Native. The mobile part is in internal beta at the moment, with the web rewrite starting this Fall.
An important component is also our Supersonic Data library, which handles the communications between the data layer from the client side, and includes things like ACL/session support, data sync across devices, file uploads, local caching and more. Full offline support is provided by running a local Apollo GraphQL engine on the client app, with offline mutations, conflict resolution and offline ACL support on the backlog.
When developing an app with the visual builder, a proprietary JSON format (called DOLAN, for Dynamic Object LANguage and the meme) is constructed that contains the page structure, component configurations, frontend logic etc. This is used to create the HTML5 version of the app, which is then served via the Ruby on Rails app, or packaged into the mobile app format. Our companion app can then download the HTML5 files and configuration of the app, and display it in the native container. This circumvents the need for constant binary builds while developing.
For the React Native client, the JSON configuration is interpreted by the app on the fly, allowing instant hot-reloading.
Our cloud build service runs Xcode/Android Studio on Mac Minis. Users can configure the necessary certificates, assets and provisioning profiles in our cloud, after which new binary builds can be requested at will. It is due for a rewrite to support React Native builds and tools like Fabric.
The app delivery services are built with Ruby on Rails and Node.js.
A serious development platform needs to make it easy for teams of all sizes to work together and deploy their apps across a variety of scenarios.
We are building a world-class organization support to allow big and small teams to collaborate effectively on projects, while also giving admins granular control over who has access to what. A business user should only be able to utilize mock backends, while a senior developer can take a project all the way to production.
Further problems to work on are version control of mobile app projects, arbitrary app environments, integrated enterprise app delivery, app lifecycle management (i.e. PoC > pilot testing > full-scale testing > production), automated testing, feedback gathering from users, analytics, audit logs and so on.
Of course, all this requires databases (PostgreSQL, MongoDB, Redis), logging, error and uptime monitoring, automated deployments, working with IaaS (AWS, Google Cloud) and PaaS (Heroku) providers and generally everything required to run a modern, world-class SaaS business.
Currently, while the platform is composed out of some 20+ microservices, most of the APIs between components are private.
We want to make it viable for developers to create a React Native app completely decoupled from the rest of our architecture, or create a set of GraphQL-powered APIs that do not use an AppGyver client, or build their custom authentication system using our backend, or run their business processes using our automation engine.
As such, we are packaging these different aspects of the platform into a format that developers will embrace and grow to love.
You are a grade-A performer, looking to play NHL hockey instead of slumming it with the minor leagues. You know how to write great software using modern technologies. You have an attitude to always deliver and a holistic approach to problem solving. You are a true, passionate software craftsman, proud of your work in the best Juhla Mokka spirit.
You understand that a component running in production is infinitely more valuable than one sitting on your laptop. When faced with a problem, you come up with a solution and implement it, circumventing any obstacles that come up. You don’t shy from asking advice when truly necessary, and you know when to take a step back to plan more. When the dust has settled and the end result is gone through together, you have solid reasoning for the decisions you made. If a better solution is then collectively found, all the better.
While it’s always great to have experience with the technologies we use, we believe software craftsmanship is more about communication, way of thinking, taste and solid work ethic. New languages can always be picked up. At the same time, if someone has worked with J2EE or LAMP for the past five years, that tells you a lot about the person.
You love translating customers’ business needs into effective, technologically viable solutions.
Your work combines rapid service/UX design with hands-on business process consulting, with a bunch of mobile/web app and enterprise IT architecture planning on top.
You will work in few different roles in different teams: as a sales engineer in pre-sales meetings, as an app developer helping to win a deal with a prototype, and as a senior consultant/solution architect in a workshop to map out the technological and business requirements of a particular case.
A typical project will start with the sales team having identified some need with a customer. This can be an improvement on an existing process (like getting rid of a paper form), launching a completely new digital service, building mission-critical integrations – anything to move the customer’s digitalization efforts forward. These projects are usually very fast-paced, anywhere from 30 to 100 hours.
You will conduct a workshop or a requirements gathering call with the customer to rapidly understand the problem being solved. By drawing on your technological and business process consulting expertise, you are able to come up with a solution that not only solves the problem, but does it in a way that fits well within the customer’s existing IT architecture and leverages the underlying technologies and other particular features of AppGyver’s platform in a smart way. You are able to facilitate and guide the customer towards making the choices that enable the project to be successful, dropping out too complex features and gently guiding them towards fast wins.
By knowing how to code things yourself, your estimate of the project workload is accurate, and any features that require additional RND are well mapped out. In some cases, you are able to do the requisite technological RND yourself – seeing if a good React Native plugin exists for a particular problem, for example, or investigating how an integration with some esoteric ERP system could be achieved.
After the initial specification, you will hand over the project to its lead app developer. Depending on the customer, you might continue to ideate and specify additional features along the way, especially once the initial phase is over and more features need to be developed.
You will also work with some of our customers in a more generally consultative position, gaining understanding of the organization and helping uncover more digitalization needs to put in the backlog.
You will work with the product team to help them understand what new killer features would enable more projects to be done faster – both for existing cases and those lost because they weren’t yet a fit for the platform’s strengths.
We are looking for a developer excited about modern HTML5, the best technologies and getting great things done with code. Both junior and senior positions available.
Your work will be split between two roles:
You will use our Composer toolset, which combines visual configuration with full code-level extendability via React/React Native/Node.js. This allows you to get the boring parts done quick and spend time coding what's exciting. In addition to UI, you will build front-/backend logic and integrations. While you can get going with just frontend or backend work, this is a great opportunity to learn and expand your skill set from a frontend developer to fullstack.
Projects are extremely fast-paced – 20-80 hours – and you have great freedom in turning customer specifications into actual implementations. Work happens at our spacious southern Helsinki office (Merimiehenkatu 36), so you won’t be stuck in the customer meeting room, coding with crappy ergonomy.
Depending on your interests, you can also participate in the initial specification and design work that goes into the apps, taking full charge of crafting and delivering an app that effectively solves the business problem at hand. Team lead positions are also available, both off the bat and as something to grow into.
Your real-life dogfooding of our platform will provide invaluable feedback to the product owners, to help them prioritize what new features will have the biggest impact.
Seniority in terms of completed projects and work-years is not essential here – there’s interesting problems to solve for all levels of developers. What’s more essential is the qualities listed in the intro chapters – passion for your craft, a mindset to always deliver, capacity to lead your own work, a dedication to learn and improve, and so on.