Celestine Omin currently works as a Senior Consultant at Andela. Prior to joining Andela in 2016, he had worked at Konga for 4 years as a Software Engineer where he moved from Konga’s Seller HQ to the Service Oriented Architecture team. The Resource spoke to Celestine about hiring software engineers, managing them and picking tools for software development.
What does your current role at Andela entail?
His role as a Senior Consultant at Andela entails working with partners in the position of a Senior engineer. “Depending on the structure of what the partner’s team looks like. As a senior consultant, you can function anywhere from a lead engineer or like a mini CTO role of some sorts”.
If you were about to launch a technology startup, what engineering roles would you hire first? This question is in two phases: what would you hire for a web service and for a mobile-first service?
Celestine’s background as a software engineer would make him a technical co-founder of the supposed startup. He advises that he would hire engineers who have the skill set he doesn’t depend on the nature of the business. “People that do mobile engineering; ios and android but with a bigger focus on android because of the kind of market we’re in”. According to StatCounter, Android devices account for 69.3% of smartphone market share in Nigeria. Another factor that would affect Celestine’s hiring decisions would be the target audience of the product.
Secondly, he would hire people who have good experience in scaling software systems and infrastructural depths. “Third would be someone who has strong product and management skills because working with a product manager is just when that product comes to life no matter how smart your idea is. If you can’t get someone to help you push that idea into reality then it doesn’t make sense”. The last set of people Celestine would hire would be engineers who have experience in building for the web – Majorly APIs and front-end engineers.
There’s always a lot of new frameworks to make things faster, simpler or just to make things look better. What do you think about using frameworks that are new or have not been tested for scale in a production environment?
So how do you pick frameworks?
His rules are pretty simple for picking frameworks. Firstly, the backing of some of the most respected engineering companies – Facebook, Uber and Netflix are some companies he admires. “I would pick frameworks they have worked with because often times, you’re going to get a really solid backing for that project. It’s going to be properly maintained and in terms of resources, articles, Q&As and all of the information around them”. Celestine also believes these frameworks would be battle tested for all sorts of bugs and issues and the frameworks would be optimised for use. “By the time you’re coming in, you’re literally given a gift, you don’t need to reinvent the wheel. If I was developing for front-end today, it would be ReactJS because Facebook uses and supports React.” A second option would be AngularJS because Google supports it.
Celestine’s second rule for picking frameworks would be the ease of learning. “I normally go with frameworks that don’t have a steep learning curve because there are tons of things to learn as an engineer.” An engineer’s role typically depends on the role and the size of the company. “You’re doing DevOps and a couple of other things. As an engineer, You want to pick something you can easily learn in like one weekend and try to build something using it. Even though you’re not using the entire version of the framework. I don’t want to spend 3 weeks reading the entire documentation before I can write one line of code”.
How about open-source tools that are sort of backed by software foundations and close to companies?
He says he typically tends to the Apache foundation because they strongly back tools they have developed over the years. An example is Kafka for queue management which was developed at LinkedIn and the Apache foundation backed it up. “Another tool I’ll go with is Redis which was developed by a single guy but got the backing of VMWare and Amazon is now adopting it”
What’s your opinion on MVPs or fully featured products?
“It depends on what stage of the company that you’re in. There’s no simple rule to it. Another factor would be what markets you’re operating in.” He advises younger entrepreneurs to build MVPs so they can hit the market rapidly and test for product-market fit. He also gives the example of Slack – which was initially developed as a chatting component for a game engine. “When they found out it had a lot of potential and people were going to use it, they just scrapped the entire game engine just developed Slack”. MVPs should be developed and tested. The fact that an MVP is being launched is no reason to release a shabby product into the market. “If you can’t build it in 3 months and test the market, you’re probably doing it wrong”
About engineers being passionate and tending to build things for themselves or for software logic as opposed to friendly software. How can they begin to let go of logic and imbibe a more inclined design and utility culture?
“There’s a litmus test to that. If the average man on the street who has no experience with cyber can’t figure it out for themselves, I think you’re doing it wrong.”. Celestine advises that an engineer is just one person out of millions of potential users. “For every one product, there are five competing products. When Slack was launched, it became a wave and you had Slack clones everywhere almost every other week.”. People shouldn’t have to think to use digital products – the method to get sufficient data is to create prototypes and let people use them. “As engineers, we have this sentimental attachment with what we’ve built but I think you have to constantly remind yourself that this is not for you. I always say if my mother cannot use the app that I built, then I’ve failed”
From your experience, what lessons have you learnt from managing teams of engineers and how do you motivate people to be disciplined and meet deadlines?
Celestine believes managers should be human and express empathy. Managers tend to be focused on deadlines, shipping products and meeting KPIS. He recently wrote a blog post about empathy being the most important skill for engineers.
He also believes managers should explain the big picture and impact to engineers when building software products. “Most people oftentimes think it’s just work and it’s a task. I’m supposed to do this. Most people don’t really understand the consequences of what they’re building.” In Celestine’s previous job at Konga, the company pivoted from warehousing and selling products to becoming a full-fledged marketplace. “If you think about the fact that you’re not just writing code, you’re helping a merchant make sales, feed his family, send his children to school, pay hospital bills and pay his employees, I think you’ll approach that work a lot more different than when it’s just a task on the board.” This will help engineers approach building products from a human side.
Listening to people is also a very important aspect of management. “Often times, people say things without even using words so you have to be able to decipher their responses. I am a firm believer in holding one-on-one sessions with team members. Let’s just talk. What’s happening in your life? Is everything working? How are you doing? You’ll often times get to find out things you probably would never have if all you were just focusing on was work”. Celestine cites an example of a teammate who wasn’t delivering up to capacity and after speaking to him, it was discovered that the engineer’s mother was ill and all the hospital bills were his responsibility. “If i didn’t ask those questions, I probably would be screaming every now and then that this guy isn’t delivering and probably fire him. If you understand those things that well, then it becomes a lot easier to manage people”. He also believes treating people well will make them go to the mountain for their manager.
What’s really exciting you about Software Engineering?
He’s very excited that technology is becoming mainstream in Nigeria. “10 years ago if you told someone you were doing tech in Nigeria, half the time you were just doing support. Maybe working in a bank, turning servers on and off and working with switches, network and printers. There weren’t a lot of people building products for people to use”. The narrative has changed so much that parents are beginning to understand that technology jobs are real and can be built into a career. “Also, the fact that engineers are beginning to get the respect that is accrued to them. People are beginning to see the value of engineers. Business owners used to see us as disposable items and will toss you and replace you as they wished”.