My Personal Experience at a Start-up

Ezenagu Emmanuel
5 min readAug 17, 2021

Work experiences at a start-up. Myclinic is a startup that specializes in delivering advanced technological and medical healthcare to remote areas around Nigeria. Most of their focus has been on making healthcare access as cheap and portable as possible, enabling individuals in remote places to have access to affordable health care services. I began as an intern for three months after which I became a junior developer working on the start-up’s enterprise application.

Welcome Intern where is your container.

My first learning experience at my start-up was with docker, The thought of the solution that Docker provides was so liberating that I had to publish an article on this, which you can find here. Upon starting work after a successful interview I had, I was exposed to an issue getting the enterprise application to run successfully on my device. I later discovered the issue was due to version inconsistency between the frameworks and libraries with which the application was created and the configurations on my system. Updating the application had no effect. I was told by the senior developer to work with the image. Having heard of only Docker before, You need to have seen the look on my face when I was told to work with the image. I was like, is it an image of my IDE or … ( In my head of course ), but eventually settled for “how will I do that ? ”. And so my first exposition to Docker. I learned how to work containerize applications with docker and the many advantages accompanied with containerizing applications. It fixed the issue I was faced with and improved my ability to synchronize well with the team and make effective contributions.

How much progress can you make creating our PWA?

While fitting into the team’s culture and getting to deliver on tasks assigned to me, I worked on a PWA that needed to be integrated with the enterprise application to enable it to run on mobile devices. Working on it meant I had to be intentional about standards and abstraction. It was quite a large task that took a little over a month to accomplish. We had to work hard and fast to meet the tight deadline scheduled for the application delivery. Firstly majority of the work was on the frontend layout which we created using the Angular framework, creating static variables to reflect the general styles used throughout the application, then next came the integration with the already existing services which involve enabling data binding to those services running on the PHP scripts written on the backend. So the application existed more like a micro application, sharing data via REST API.

Landing Page, Microservices, Products

With the creation of the new PWA application came the need for a new landing page to exhibit the features of the application. Once the designer came up with the designs expected, I was tasked to execute the frontend accordingly to designs. There was no back-end integration, just an implementation of a live chat, which was a third-party integration — and also a third-party form submission for demo requests and quotations. At the end of the project, two versions of it existed with reasonable varying differences this being so due to updates in the designs. All projects carried out were of course executed using a version control system, “GIT”, so switching between both design outcomes was a few commands away. We had to carry out an A-B testing so as to determine the better performant outcome.

Another project was the implementation of a webhook microservice using Nodejs and express. This would exist autonomously on its own and will serve to receive actions made by users on the PWA and share the payloads to receivers that reside on the doctor’s end interacting with the Enterprise app whilst logging the operations to a MongoDB database.

Seeing that some deployments were made locally to the facilities, I was tasked with creating an internet logging application that would take a speed test of the internet connection after a specified duration and log it to a database sending alongside the systems MAC address to uniquely identify which system speed a specific log belonged to.

We are all good and set. Ready, Deploy.

My tasks overall did not only include desk work, occasionally when a new hospital was rolled in either on a trial-based plan or on a paid plan, but I also get to accompany the team to carry out deployment in those facilities. First, we would observe the facilities technical needs, for facilities without computers we would recommend the necessary machines they would need to purchase to help enable the application to serve them appropriately and for those the had existing systems, we would inspect them and recommend adequate upgrades needed to make them work efficiently. After the physical and technical requirements are made next came the installation of the enterprise software on the devices, an option available only to hospitals that opted for the on-site server solution and not the cloud-based solution. Deployment for such facilities was more or less a hassle when it came down to configuring the systems. We pounded over the option of which operating system would be appropriate enough for the specified system specification as not all facilities could afford high specification systems at the price range. After installation next would be the training of the staff on how to use the software for daily operations. Once in a while updates are made based on the feedback gotten and updates would be made as expected. I would say the most stressful parts of these all were when we had to train staff who were indignant towards the software utilization. Boy, it was hell, but also part of the training. Looking back now I would say a certain level of emotional intelligence and patience was what helped me scale through the horror.

Testing Testing

Throughout my stay there, I would say that the bulk of the work I did as a junior developer was writing tests for the entire enterprise application functionalities. I had written tests in the past with Mocha and Jest but not at the scale of an enterprise application. I had to learn protractor and jasmine, both of which are testing frameworks used for end-to-end testing for angular applications and which were relatively easy to grasp. Starting with the tests was not friendly, issues dealing with the asynchronous nature of Angular lead to bugs and errors passing simple tests. But once they were all resolved moving forward became easier as they can be fewer — one too many — ways to incorrectly fetch elements from the DOM with every wrong way solved. Tools present in the browser inspection and extensions like POM builder helped made identifying DOM elements easier.

Among the Miscellaneous

In summary, I am grateful for the decision I made to take the bold step to seek more experience of the tech culture community after years in my coding space was a huge experience and a game-changer for me, I am equally grateful to all those who assisted in putting my through, truly there’s No limit to the what you can learn. Learning is continuous and needs to be intentional. If it is intentional you will see yourself aligning your habits and attitude towards knowledge of what is unclear and unknown to you. This will inevitably produce the growth you need to see the changes you desire

--

--

Ezenagu Emmanuel
0 Followers

Software Engineering Enthusiast, Software Developer