
Website BIMLauncher BIMLauncher
Integrating CDE solutions - One CDE solution at a time
At BIMLauncher we’re developing a SaaS that facilitates integration between different Common Data Environments (CDEs) used across the construction industry. Our end goal is to allow multiple teams to be able to use their CDE of choice and be able to share resources and communicate as-if they were using the same CDE.
At its core, our system replicates in a target CDE a resource that is identified to be shared from a source CDE. This could be anything from a document to some activity such as a discussion thread or a workflow. And maintain that integrated CDEs are in-sync – as per customer configuration. This allows multiple teams working across multiple CDEs to collaborate on construction projects.
As a scalable system, we maintain that our architecture must be robust for extension, performant, and accessible. We are onboarding more software engineers to join us in bringing our system to the next level.
Our system is written mainly in Javascript and runs as Docker containers on AWS. We employ a number of AWS services such as ECS/ECR, DynamoDB, Cognito. Managed dynamically with CloudFormation. We are at a stage where our solutions are proven. Our production environment has been serving recurring customers for over 2 years. And we are looking to scale. This means reevaluating our design and orchestrating an architecture that would allow implementation of a wide spectrum of workflows.
We are a small and friendly team of 5 working entirely remotely across Europe and Asia. Joining BIMLauncher you’ll be expected to:
* Support/Maintain our current system. This would include troubleshooting issues, fixing bugs, optimizing performance when needed and extending/adding features.
* Participate in in-depth conversations in regards to system architecture, technology/tool selection, cloud computing, development practices, etc.
* Brainstorm, design and implement solutions to meet industry needs.
As a software engineer, you are expected to:
* Participate in software architecture design. You love making abstractions from concrete requirements. Make separation of concerns clear. Anticipate change. And not too much.
* Be passionate about writing well written software. You appreciate that code is written for humans too. You like reviewing code, enjoy pair/mob programming, and take code maintainability seriously. That code should be scoped/modular, easy to read, easy to test, and easy to change. You understand making tradeoffs between quality and time and strategically bring change to the system.
* Program in Typescript. We are currently moving away from vanilla Javascript to a more typesafe language. The choice for Typescript is mainly compatibility with the current system. It’s not strictly necessary that you are fluent in Typescript. As long as you are fluent in some statically typed language and are willing to learn Typescript that will be fine too.
* Have an interest in Functional Programming. You recognize the distinction between data, calculation and effects. You use types as a design language – maybe heard of type-driven-development. You don’t need to be an FP wizard or know category theory. If you’re curious what a Functor or a Monad is, that is enough. If you know, check.
* Be proficient with Git. You know your way around Git and Github. Able to rebase, merge, resolve conflicts, maintain branches etc. You know how to develop software as a team. Make contained commits, write meaningful commit messages.
* Willing to learn and teach. You are open for friendly debate and discussion. You understand that no one knows all and there are always better ways to do things. You are not afraid to suggest alternatives. And not afraid to take criticism.
You are more likely to be a good candidate if you are:
* Interested in the inner workings of the technologies you use. In terms of tools and frameworks, you find pleasure in studying their implementations, discover their limitations, tend to get to the bottom of issues rather than just finding ways to make it work. In terms of languages, you are keen to know the type system in-and-out, observe the paradigm the language encourages. Have opinions, as well as understanding, on patterns and conventions and not blindly follow the mainstream.
* Have some experience with AWS. This is only a plus. But a plus would be nice. If not, you are willing to learn and use AWS.
* Live (or work) in a GMT+ time zone. Although working hours are flexible, it’s imperative that we make an effort to collaborate. Able to join calls for discussion, reviews etc. at overlapping times.
None of these are strict requirements, but the more they describe you, the more you’ll enjoy working with us.
Please reach out to us by sending an email detailing why you want to join us to john@bimlauncher.com if you think working at BIMLauncher is a good fit for you or that you want to learn more about us.
To apply for this job email your details to john@bimlauncher.com