algonote(en)

There's More Than One Way To Do It

Programmer ability cannot be measured by years of experience

More important than years of experience What are the key factors in estimating a programmer's ability? When software engineers and designers register with a job search site, they may be asked to submit a skills sheet: how many years of Jav…

Personal guidelines for team separation

Dogmatic and prejudiced. Preface When you increase the number of developers to grow a software product more, at some point you will need to reorganize the team structure. This is because as the complexity of the breadth and depth of what w…

It is wrong to abuse delegate on the basis of Demeter's Law

IMO Delegate in Ruby and Rails When a class is too bloated because all the requirements are packed, you probably want to split it up. When designing tables, you may want to normalize and split it into separate tables. There are the other w…

Measuring Python Cohesion with Cohesion

How to measure cohesion in Python What is Cohesion? Cohesion is a software metric that measures the proximity of related methods and variables. For example, in LCOM4, the functions accessing a variable in a class are traced and clustered. …

Software Engineer Information Resources

Software engineer information gathering summary. Thin and wide. General Japanese X(Twitter) A tweeting social network, where a self-proclaimed 3-year-old can share useful insights. Hatena bookmark Social bookmarking website. You can find u…

rails stats and company valuation

Is the development speed slow, or is what you are making bad? Preface: Can rails stats measure company value? rails stats is a handy command to get statistics about the Rails repository, and you can do the same in Laravel with php artisan …

How to prevent dispute in IT companies

Common problems Preface: quarrels tend to occur in IT companies Working in an IT company, you may occasionally encounter quarrels. We often hear stories of co-founders leaving a start-up company due to a dispute. It is also rather common i…

Scrum may not be inherently necessary for Web development in Japan

Is a full-time Scrum Master needed? Introduction I recently read the paper "The New New Product Development Game," which is the source of Scrum. It is generally a discussion of how US companies can become as good as Japanese companies by a…

Measuring Cognitive Complexity of the frontend with SonarQube

How to find the frontend code smells Continuous Inspection with SonarQube There are some ways to quantify the readability of a program. For example, Cyclomatic Complexity and Cognitive Complexity are used. Cognitive Complexity is considere…

SBOM requirements for legal regulation (in Japan)

Introduction to Software Bill of Materials What is SBOM? SBOM (Software Bill of Materials) is a list of software components and their dependencies. It is not always the same as the list of libraries because some of the software may use in-…

Designing and Operating a Successful IT Company Evaluation System, Learning from Fujitsu's Collapse Case Study

Notes from reading "Fujitsu from the inside". I read "Fujitsu from the inside" This is an old book from 2004, but I read "The Collapse of Fujitsu's 'Performance-Based Management' from the Inside" , which describes the inside story of Fujit…

Unity is already profitable

Read Unity's financial report Runtime Fee will be introduced in Unity Update: Unity withdrew some of the changes. It has been announced that Runtime Fee will be introduced to Unity from 2024/01. Unlike the previous billing model, the fee i…

Checklist for Technology Selection

How to select technology stack Preface When you develop something, it is often necessary to use some external services or tools. Unless it is a hobby development, we want to make decisions with a certain level of rationality. Here is a che…

Is the structure that forces engineers to study in the IT industry evil?

One of the most common complaints made by new software engineers is that they have a hard time studying. In web development, where they have to study every time a new technology comes out, sometimes outside of work hours, or they feel left…

List of open source web services that architects should check out

Reference for implementation Preface: Let's read open source implementations When you are doing web development, you may feel uneasy whether this way of writing is normal or not, or whether the direction of implementation is good or not. I…

How Twitter caches timelines

Reading Twitter's internal structure. Introduction Microblogging services like Twitter have a lot of posts in a short period of time. Especially for the timeline, simply moving data in and out from the RDB will not scale. I found some arti…

Write Code Every Day at HackerRank

Notes about HackerRank. What is HackerRank? HackerRank is a learning site where you can learn programming by solving problems. While most of these sites specialize in either web development or competitive programming, HackerRank covers bot…

GraphQL Adoption Anti-patterns

Is GraphQL a silver bullet? Introduction In web and application development, there are various methods for passing data between servers and between server and clients. The most common are SOAP and XML in the past. In most cases, JSON REST …

How NTT changed assessment & work style

The inside story of a traditional IT company Preface NTT Group, which has 330,000 employees, is working on reforming its personnel system. Fujitsu has 130,000 employees and Toyota has 360,000, so you can see the scale of the project. I fou…

How Sony laid off employees

Book review of Sony Layoff Introduction Layoffs are booming at American tech companies. Information is summarized in layoffs.fyi. Twitter, in particular, reports that more than half of its employees have left through layoffs or voluntary r…

Left-to-right manga types

I want to read more left-to-right Japanese manga! Preface: Translation is not the only blocker to make manga multilingual Illegal copy of manga by Mangamura was a social problem, Illegal uploading on the Internet is a source of concern for…

List of libraries (gem) commonly used in Rails development

A list of commonly used gems Preface As I summarized last month, I think that the return from apps to the web is happening a little in the SaaS boom. Even if you can use a lightweight framework for just the API of an mobile app, a full-sta…

Using RDBMS & Rails is rational selection for zero to one development, especially in SaaS era

How the architecture has changed over the trend of products Introduction There are several architectural patterns that we can choose in web development. The server structure is categorized by monolithic or microservices. Tthe database is s…

Learn Server-side C#(ASP.NET MVC) on Udemy

Study server-side C# Preface When it comes to web development, PHP is traditionally used in famous LAMP (Linux, Apache, MySQL, PHP) stack. Next movement is MVC frameworks such as Ruby on Rails. Recently, Golang is often used in microservic…

How to deal with businesses with hiring difficulties

I don't have the answer yet. Preface Although it is not true recently, Japan has had a popular salaryman working style of lifetime employment. The rate of job change is low compared to other countries. Startups are required by investors to…

Learn biped robot by Zaku (ZEONIC TECHNICS)

Notes about robot Zaku What is ZEONIC TECHNICS? ZEONIC TECHNICS is a bipedal robot course offered by Bandai. It is based on Kondo Kagaku hobby robots, and many of the parts are from Kondo Kagaku. The humanoids offered by Kondo Kagaku, such…

How to run Emacs macro via CLI without remembering complex shell commands

Proof of concept Introduction When I convert file or replace some text, if the repeat is necessary, Use unix commands Combine 1 Write scripts are standard selection routine. Sometimes complex 2 is called as shell art. Ref: 【シェル芸人への…

How to find CTO-class engineer

opinionated article What is CTO? CTO(Chief Technical Officer or Chief Technology Officer) is the top of company in charge of technology. Some companies also have VP of Engineering as different role. In that case, recruiting, education and …

List of Russian-related softwares

Check Russian libraries Introduction The relation between Russia and Ukraine was worse and military advance was conducted. Many countries including Japan is doing sanction to Russia. The effect is huge. Software libraries used for web deve…

Collectible Card Game AI

Notes about the papers of Collectible Card Game AI Introduction Game AI competition in IEEE COG 2019 was held. The competitions include Angry Bird level generation, fighting video game like Street Fighter 2, DeepMind hanabi. Also, Collecti…