99th Monthly Technical Session

Mussin Benarbia
henngeblog
Published in
7 min readNov 29, 2022

Welcome to our 99th MTS! The “Monthly Technical Session” is an event we at HENNGE hold every month during which some of us give a presentation to share knowledge and ideas we are passionate about.

On October 21st, 2022 we held the 99th session. This session was packed with interesting talks ranging from product management, to Python techniques, to infrastructure. Let’s see them more in detail.

But before that…

A warm welcome to our new member, Simon Juba!

Talk 1: How does data help the Product Marketing Management team in decision-making?

The PMM team’s role is that of leading our product to succeed by turning our product’s value proposition into compelling messages for customers and they do so through a series of decision-making processes. Decision-making can be very tough if you have nothing to support the claims you’re making. In this session, Poyu explained how we actually use data to make informed decisions.

It was very interesting to learn which factors go into deciding what features to prioritize and what strategies to follow depending on the product. The process of aggregating data and making sense of it is complex, and this talk gave us a little insight into the amount of work the PMM team does to make sure our customers are always satisfied and at the center of every decision!

Thank you, Poyu for the great talk and work!

Talk 2: Early Detection of TB Disease with an Expert System

Nicholas gave a talk about a project he built in University, an Expert System to provide an early diagnosis of Tuberculosis.

An Expert System is a computer system that emulates the decision-making capabilities of a human expert. In this talk, Nicholas provided an introduction to Expert System, its advantages and disadvantages, considerations before building it, and the software development process required to build one.

The process of building an Expert System is truly fascinating. It’s formed by two components, the knowledge base, and the inference engine.

The knowledge base is a “database” of sorts that will contain the knowledge collected from experts on a certain topic. This data needs to be translated by a software engineer into a form that can be queried and processed by the system.

The inference engine is the system that through the utilization of algorithms can infer a case based on the user’s input/current condition. This is the component that interacts with the knowledge base to form results.

Nicholas walked us through the steps he took to build his specific project, starting from collecting data regarding TB disease cases from a dataset, building the inference engine and API layer (Go), building the interface with which the user interacts (React + TS), deployment and containerization, and testing the results through interviews with medical experts as well as non-technical people. The results were impressive as the medical experts claimed that the application is reasonably accurate while the interviews with non-technical people revealed that the application is easy to use and interact with. Some even said they wanted to use it to diagnose themselves in the future!

He then told us about his plans for future development, such as adding more variants of TB inferences and hopefully getting this application to be adopted by Indonesian health centers.

Talk 3: Restricting IAM Role Permissions

To create the best balance between security and productivity, we came up with the idea to provide a dedicated AWS account to each developer while we ensure our baseline of security. To achieve it, we are building a pipeline for AWS account management with AWS Control Tower Account Factory for Terraform (AFT). With this pipeline, we can automate AWS account creation and enable all security guard rails which we want to apply to all AWS accounts.

In this talk, Toshi explained in detail how the pipeline works and how each developer will be able to have their own AWS account which will be created with our chosen security settings, by default.

This is great for learning and experimenting with new AWS services before trying to integrate them with our existing products.

Talk 4: ECS to EKS — Migration and Discoveries

Liam gave a talk about how and why his team decided to migrate from AWS ECS to AWS EKS. Among the reasons were the need to have better service-to-service communication, improve canary deployments, allocate fixed memory/cpu sizes, etc.

We learned about the pros of using EKS, such as its declarative infrastructure, the fact that it’s open source, cloud-agnostic, and has great tooling but we also talked about the cons, such as the knowledge gaps, the steep learning curve, CLI intensive, requires a change in workflow from the current one, etc.

Liam also gave us some advice and steps for a successful migration:

His team successfully managed to migrate all of the services and the outcomes were great! They achieved faster deployments and rollbacks, more in-depth observability, more flexible autoscaling and better feedback loops.

Talk 5: AWS Certifications: Are they worth it?

Hey, that’s me! I gave this talk about AWS Certifications as after joining HENNGE last year, I had the opportunity to work on infrastructure-related issues which made me realize how important it is to learn the underlying concepts first rather than trying to learn on the spot, as one develops a feature.

I spoke about what certifications exist and how they differ, why I recommend everyone to try getting at least one of them, what are the challenges, and how is the exam itself.

The gist of it is that these certifications are incredibly valuable and helpful. I recommend the Cloud Practitioner to anyone who works in IT, regardless of whether their position is technical or not. It can be eye-opening and give a whole different perspective on what products we work with on a daily basis.

Associate-level certifications are recommended to those who work with AWS regularly and want to step up their game as well as learn about some niche products or use cases.

Professional-level certifications go very in-depth in almost all topics they tackle and would definitely put someone in the position to be able to architect, deploy and manage a large-scale application all while making sure that security and compliance are top-notch.

If you’re interested, go on and challenge yourself with one of these certifications!

Talk 6: You don’t need Python advanced techniques! (okay, maybe a little)

Python has many advanced features. Although useful, the wrong usage of them can impact code readability and maintainability. In this talk, Habibi discussed when and where to use each Python advanced feature appropriately.

He categorized some of these techniques into 5 levels:

Level 1 — List comprehension, type hinting, anything from itertools, collections, urlparse, pathlib, json, random, yeld and yield from.

Level 2 — class, dataclass, splitting modules, CLI creation using argparse or click, @property, custom error class

Level 3 — Base class (to be inherited), iterable class, context manager class, decorator, package

Level 4 — Mixin class, @my_property.setter, __add__ and __sub__, __len__, import_module

Level 5 — Metaclass, abstract base class, __getattr__

This was another very informative talk with some fun takes! In conclusion, Habibi recommends learning advanced techniques, but not to go out of our way to use them if there is no real need to. Learn and experiment with them on private projects, but in actual production code, consult with others first! Remember, Simple is better than complex.

Conclusion

Another great MTS! Thanks to all of the speakers for the insights and advice. As always, we concluded the event with good food, good drinks, and great company 😃

See you at the next MTS recap 👋

--

--