Making things from scratch was always something I loved doing. I created anything imaginable out of cardboard when I was a kid. From a cardboard robot that spits trading cards to birthday gifts to friends. Even though cardboard was not very appreciated as a gift. My love for building things came from there. I was then introduced to programming for the first time in the form of a Playstation game. The game was called "RPG Maker 3" where you could design your world and story using if clause and flags.
Being a craftsman from heart, I am more passionate about making products I can be proud of from front and back.
昔から僕はモノづくりが好きでした。とくに子供の時はダンボールがあれば、カードダスを吐き出すロボットから友達のプレゼントまで兎に角なんでも作り上げていました。プレゼントとしての評判はイマイチだったもののモノづくりの熱はその当時から変わっていません。そんな僕が最初に出会ったプログラミングがプレイステーションのゲーム「RPGツクール3」でした。そのゲームでは世界と物語を作りながら条件分岐やフラグを作っていけます。
モノづくりを心から好きである事は変わらず、表からも裏からも自身持って見せられる製品づくりを心がけています。
- Leading design/develop/test a product with teams abroad
- Providing pricing, assortment analysis in PoC
- "Mobile Phone Operator" on-site staff
- "Television Broadcaster" on-site staff
- "Mobile Phone Operator" on-site staff
- "Leading Insurance Company" on-site staff
- Developing cloud-based analytics platform
- Developing “Pepper robot” reception system
- Refurbishing the Hotel reception system
- Developing and maintaining Analysis System to transport and track
- Developing and maintaining a Traceability System to transport and track
When you are going to start a new project, you want to have the best team you can ever imagine. However, that is not always the case in reality. You might need to proceed the development with rookies. Your team needs governance! Don't worry. It gets very fun once you get used to it.
The current trend is "waterfall is evil, agile is great". I agree with most of the parts, but not when it comes to planning. If you want to plan and design a project, you need to think as deep as possible.
Once you plan and design things very deeply, this part shouldn't be so hard. Your members can figure out the actual work only when tasks are thought through. Especially when your member is a rookie. If you have a senior engineer in your team, ask him to help you out with creating tasks.
You might have a programmer that can complete the work in triple the speed compared to other members. This seems like a great thing until you find all the code he made is unreadable. You'll face the real issue when you want to update the code. Every small updates can only be done by that programmer. The speedy programmer will end up working for all the bug fixes, then he quits because the work became boring. All the code has to be readable. For this reason, and also to make the review process much easier. You want the code to be readable to non-programmers, so they can also join the code review.
Engineers use countless hours to finally come up with the best piece of code, and realize they are rejected during the review. Rejecting a work is tough, especially if you know how much time it has been spent on it. Reject when the work is "too less", or "too much" and must be exactly what you asked.
There are several reasons why you should automate your project. To visualize your process by having everything in code, to prevent the human from making errors, and to make your project grow by eliminating repetitive tasks and adapting to new things.
There are many tests you need to do to assure the system is running as intended. Create unit tests to make sure each of the functions is working. You can have the programmer create all the tests for review. That way, you can check if all requirements are there as well. Automate all this by having unit tests in a code. The test should always pass until the code is changed, but the changed code should now have a new test to do along with it.
Automating deployment is very important since we all worked on the code in various environments. To run them on a server, there might be several more steps. You may want to prevent the environmental issue in another way, but visualizing all the deployment processes is important. You'll find visualizing the process in code is the best way since you have now set yourself ready for auto-deployment. Now let the computer know your code is complete. The computer will then do the rest for you, as you mentioned in the code you made.
You can easily identify a Data Scientist if they have a certificate, but that isn't the case for most people who calls themselves Data Scientist. Thankfully you can identify Data Scientists from three skills they are required to have at work.
Know what is required for the company to be profitable. Find the analytic results that drive your project the best. Prove to your stakeholders that the project is worth driving.
There are a million ways to come up with the same result. To get there the fastest, you need to know your tools. Load your data as datasets and find the data's characteristics. Casually run several machine learning algorithms to find what parameters are important.
Know your data well. Know why you got that result. Your hypothesis seems correct until you found out the sales increase was due to a local festival in the area. Knowing how things should and shouldn't will get you closer to the truth! The truth might be cruel sometimes. In that case, solve it with your business knowledge.
Data Management Platform (DMP) gets you to know the customers, contents and advertisements. Since DMP is made to find the second use of the data, advertisement is an important factor along with customers and content. To combine all your services in one DMP, keep in mind your data follow the following "axis" when they are stored:
If a user likes certain content, the user would prefer a certain advertisement. Investigate your users to provide the right content, or invite the users to what best match your content. Then provide the right advertisement to them! Constantly improve your data by crosschecking what's needed in your DMP.
Sometimes your latest data might not be fast enough. You want to get them in your DMP, even if they are not in complete shape. Label them as Confirmed data and Preliminary data, so you know what type of data you're dealing with. If you can go the machine learning way, add Predicted data into your collection for collecting data even faster.
Have all the data available from the raw data to the aggregated data. You may come across some data not available in the aggregated data. Have Cleansed data and Raw data available to you. Once you find anything valuable, update the pipeline to be used to rest of the members.