Inspiration

Our motto at Lepsta is to always ask the question why? So looking into why some of the activities that developers go through each day have to be so complex. We identified one of the areas that each developer struggles with and yet it’s an integral part of their day to day. All developers have to use some source control system in their development life. All mid-level to senior developers use source control but only a handful can use it with confidence. We’ve all been at that point where something goes wrong with merging or conflict resolution and we make backups, refactor, rebase and crossing our fingers that we don’t break the Repository. So we set out to make that whole process simpler and efficient.

What it does

EngineOne allows developers to focus on writing code and worry less about administrative tasks of managing code. It does this by automating version control, syncing code to a cloud platform as you work. Due to fact that code is syncing as the developer works it allows us to reap some benefits that are not available with traditional source control. Two of the major benefits is that developer can easily switch to another developer’s active code which will allow them to render aid or pick up where the developer left off. The second major benefit is that we can detect potential conflicts on the fly. This will alert users when they are both editing the file and even worse editing the same code block. This allows users to spot it early and act accordingly before it becomes a three hour debugging process.

How we built it

After formalising what we want to build and all the cool functionalities that we want to implement we drew up a customer survey. This survey was built with the intention of challenging our ideas and assumptions. Since we had a long list of functionalities that we wanted to implement, we asked users to rank which features they would like and find valuable. This allowed us to prioritize on which features to focus on for the MVP. These features where a consideration between what the users want, what would give us the best competitive edge and technically what should be built first. This survey was conducted primarily in South Africa with other surveys being done all over Africa, America and Europe. This gave us the confidence that what we are building has worldwide reach. We the drew up system specifications and user requirements. Once we had all of these specs we set out to find the best languages and platforms that will help us achieve those goals and hence why we chose our stack.

Challenges we ran into

The system design was very problematic as there isn’t such a system out in the market so there was no base to work from. Once we had the system designed and a stack chosen we had problems of upskilling as some of the members where not all that versed in some of the technologies. Since the system had to be near realtime syncing we had to find an efficient way of transporting our payload and making our payload as small as possible. Since the platform needs to behave the same on all Operating Systems, porting some of the components is tricky as the behavior is not as you’d expect on the other platforms.

Accomplishments that we're proud of

We are really proud of how efficient our syncing is performing. Our system events are firing at regular events which allows for a very good view of the code history. The conflict detection system behaves beautifully and we see many developers enjoying the benefit. Copying changes between developers is easy and very intuitive.

What we learned

We’ve learned a lot about how developers have learned to live or work around certain problems in their unique ways. This has led us to change some of our initial approaches to how we build the system. We have learned a lot about certain pitfalls that you can find yourself in if you don’t plan out the work correctly.

What's next for EngineOne

EngineOne was designed with a range of features that will be rolled out with future version as we leverage on what we build. One feature that will be groundbreaking is code annotations. Code annotations are basically code commands that one can place inside their code and it perform actions from creating snippets, sending messages to the team, interacting with source control, interacting with task management tools, etc. Since the developers source code is automatically processed we can add or remove any annotations whey they are no longer needed. Our system will also allow users to work offline. E.g. You have developers sitting in an office and the internet goes down, their code will still sync with each other without them having to go through a hundred source control commands to try figure it out. We have a list of other features that EngineOne will rollout with coming versions that each will make the lives of developers easier and easier

Built With

Share this project:

Updates