4th Hot or Not - Taking You Forward

HOT OR NOT 2017 – TAKING YOU FORWARD

 

“Hot-or-Not 2017” is organized annually by Sioux with the aim of helping software engineers to keep up-to-date with the latest and “hottest” trends as well as knowledge to improve ways of working. Participants will decide whether the topic is “Hot” or “Not” in the end.

On April 15th, at Duy Tan University (03 Quang Trung), over 250 software engineers from many software companies in Da Nang city participated the event "Hot or Not 2017 ".  This event was really hot with many games and activities such as: HoloLens, photo booth, Challenge Game,…

 

 

An audience bring HoloLens

 


Take picture with Photo booth 

 Mr. Bas Van Loon is a Project Manager & Software Designer from the Netherlands with more than 18 years of experience in software engineering shared about “Practical tips to improve your estimation skills and make it fun”. These useful knowledge supported software engineers to work simply and more effectively.

 

 

 

 Bas talked about "Estimation skills in a software project"

 

 

 

 

Everyone was very excited about interacting with guest speakers

 

Cool tea-break was a great chance for networking. Many software engineers had opportunity to expand their network with technology community in Da Nang city.

 

 

 

 

After tea-break, the presentation of Mr. Nguyen Xuan Huy about “Maslow’s hierarchy” of Abraham Maslow provided the method how to apply this model in different aspects such as: personal development of a software engineer, software development project, start-up and organizations. 

 

 

The presentation about "Maslow's hierarchy" of Mr. Nguyen Xuan Huy

 

His inspirational speech showed many new perspectives about Maslow's theory through his successful stories and the way how to build a people-oriented company like Sioux High Tech Software. He shared about  the secret of living happily and work more productively. He brings positive energy to all of the audiences. 

 

  

 

At the end of “Hot or Not 2017”, we awarded two helmets for two guys who won the game “Coding Challenge” and gave a very valuable gift – a tile for the luckiest person in lucky draw game.

 

 

Winners of Game "Coding Challenge" 

 

 

The luckiest guy of "Hot or Not 2017" in Lucky draw 

 

 

 

 

 

 

We would like to thank you for all of your contribution to the successful event. See you in the next “Hot or Not”!

 

SIOUX I/O – Chance to touch Sioux

SIOUX I/O - CHANCE TO TOUCH SIOUX

Sioux I/O with the theme “Come and See” on February 2017, Sioux had the honor of welcoming guests to come and visit us at Sioux office. We had many interesting games and activities such as: Open office tour, HoloLens, Coffee Talk, Food, networking and job opportunities.

 

 

 

As always, we received a lot of questions from our guests in terms of projects, ways of working and company culture. We were happy to share with them about what we’re doing; our belief in people-oriented company and in technology. We understand deeply that each person has their own ability to create values for company. At Sioux, we give chance for them to discover their potential ability.

 

 

 

Thanks everyone for your visit, constructive questions and open-minded attitude to learning about us. We hope to organize more exciting Sioux I/O in the future.

 

 

Watch this video clip about Sioux IO in February 2017: 

 https://www.facebook.com/Sioux.asia/videos/1145067268953245/

See you in the next Sioux I/O!!!!

2nd Sioux Coffee - 'Challenges In Team Management' Workshop

The workshop “Challenges in Team Management” held in Art Hotel, Da Nang on 15 January 2017, was hosted and sponsored by Sioux High Tech Software with Techsoup.vn is the communication partner.

Topics Discussed at the Workshop:

  • Transforming from Engineer to become Leader
  • A Perfect Leader Model
  • Balancing Technical & Management
  • Task Delegation Skills
  • Conflict Resolution Skills

 

 

 

Speakers: Khiem Tran, Tan Nguyen, Khoa Nguyen, Trieu Vu, Huy Nguyen

There were many topics covered during the workshop and the speakers did an outstanding job of sharing their expertise with the attendants.

Thank all the speakers for their inspirational talks at the “Challenges In Team Management" Workshop. We are grateful for the time and effort you took to share your thoughts and experiences at Sioux Coffee.

 

The Leaders of Da Nang Information and Communications Department visited Sioux

Last Wednesday 8th February., The Leaders of Da Nang Information and Communications Department (DNICM) had visited Sioux High Tech Software. During this time, Thanh Quang Nguyen - The Superintendent of DNICM expressed pleasure and sincere thanks to the contribution of Sioux High Tech Software in the development of Da Nang city.

 

 

Currently, Sioux is building a mobile app for “Feedback Portal” of Danang City. This application is a channel for citizens, visitors review and feedback the problems in the city to the State Agencies can handle promptly. This application is expected to be released in March 2017.

 

 

Along with our efforts, Sioux wants to contribute to the community by doing more non-profit projects to support the development goals of DaNang City become a modern civilization city in 2020.

Functional Programming: Old School Technology To Reduce Modern Complexity

 

The products that we are currently developing are becoming more and more complex. This complexity comes from the increasing demand for new software features to be delivered in less time. This is reaching a kind of absolute level beyond which we can’t no longer develop the software in a manageable, cost-effective way. To just keep adding more engineers to develop the software is no longer the solution. We are reaching the boundaries of what is possible. 

 

By: Paul Zenden, system architect at Sioux in Eindhoven.

Paul Zenden

Complexity limiting the future

New products, new games, and new services, they are all getting more and more complex. Think of virtual/augmented reality games, wafer steppers, your smartphone, smart cars and internet of things in general. Why is that?


New products/services have to live up to our expectations. We are getting used to the current way of working and expect the next version of a product to do better, be faster, look nicer, have more pixels, be connected to the internet always and everywhere, etc. New features have to be added in less time to keep a competitive edge. Furthermore, we expect that applications can connect to and work with each other (e.g. use your smartphone to control the TV). This is all enforced by growth of the hardware capabilities.


However, there is a problem. In some domains, we are already reaching the point that the size of the software is becoming so big that it is almost impossible to maintain. It’s getting out of control. We can’t just keep adding more engineers to develop and maintain the software. F. Brooks already made this observation in 1995 in ‘The Mythical Man-Month’.


The solution lies in reducing the complexity and developing software in a smarter way. One technology I would like to highlight is functional programming. Functional programming is certainly not the only and single solution and is also not new, but it will help us to take the first step.

Why now?

Functional programming concepts are already known and used since the 1950s, but they haven’t been applied very widely in the past decades. An important reason is that the available hardware lacked computing power and internal memory capacity what is needed to create industrial solutions. The object-oriented paradigm was more suited then. Now that we have the availability of cheap and powerful multi-core, distributed systems and cheap memory, functional programming catches up.

Functional Programming in a nutshell

Functional ProgrammingFunctional programming works with ‘immutable state’, functions with no side-effects and the fact that complex functions can be constructed from simple functions. Functions are treated in the mathematical interpretation of functions (so-called ‘pure’ functions). Functions only transform the input data, producing output data, without changing the input data. When functions have no side effects, it becomes much easier to realise parallel execution and gain a performance increase by executing the application on a multi-core target.


Immutable state means that once a variable is assigned some value, it can never be changed. By making changes to the state impossible multi-threaded solutions can be created, without many of the common issues like race conditions (when accessing shared memory) or dead-locks.


It almost seems impossible to write useful programs without the ability to change the value of variables. But it is, by combining pure functions, immutable variables and recursion. I challenge you to find out for yourself.

Reduce complexity, or not?

Functional programs are less complex in the sense that they, generally speaking, achieve the same functionalities as object-oriented programs with less,  and better quality code. (On Rosetta Code there are many examples of the functional programming language solutions that are much smaller than the object-oriented counterparts.) This leads to a lower risk of bugs, due to immutable state and functions with no side effects. Functional programming also provides a powerful way to create distributed systems, due to the easy realisation of parallel execution.


But, too bad, functional programming also introduces a new complexity for a lot of engineers. And that is that functional programming is a paradigm that is significantly different from object-oriented or procedural programming. To be able to develop efficient functional code, you first have to learn functional programming concepts and overcome the paradigm shift. And that is not so easy. This hinders a more wide-spread acceptance at this moment. But should this stop us from looking at the benefits of functional programming languages? No. Learning a new paradigm, language is done once, after that, you can

Rise of the Languages and Frameworks

There are a lot of functional programming languages to choose from like Scala, F#, Erlang, Clojure and many more. It’s often possible to combine imperative languages with functional programming languages, and/or use a coding style in an imperative language that results in a functional way of solving the problem.

Did you know that the following popular products/applications all use Erlang: WhatsApp, RabbitMQ, SimpleDB (Amazon), CouchDB, eJabberd, GPRS/3G mobile network nodes (Ericsson)?

New, powerful frameworks are coming out that shield off difficult details and that make applying functional programming concepts more and more accessible. Examples are ELM for client-side web applications and Phoenix, a server-side web framework. Another interesting new-comer is Elixir. Elixir is based on Erlang, a mature functional programming language and framework. Erlang is already in use in the telecom domain for more than 20 years. Elixir embeds the power of Erlang, but with a more accessible language derived to some extend from Ruby. Elixir also has impressive meta-programming features which allows the development of so called internal DSL’s. Another nice development is the use of Elixir in the embedded software domain.

Explore and Learn

 

Functional programming reduces code size, reduces the risk of bugs, enables easy parallelisation and thus increases the performance. It is one of the available means to help us manage the growing complexity in products and services. It is especially a technology to consider for concurrent, distributed applications.

For many software engineers, functional programming is not a part of their skills, yet. And this makes applying functional programming on a broad scale difficult. We can all help to turn this around and start learning functional programming today!


Paul Zenden is an experienced system architect at Sioux in Eindhoven.