The software development team is the central nervous system of Liberal Logic Inc. While our primary business area is core software for professional video and audio equipment, we also use the knowledge we gain in this area to develop completely different areas. Success in areas where software development is essential depends on the behavior of the software you and your team produce. There are a wide range of things that we consider important. We do not expect you to cover all of them. We list many of them here so that you can understand the direction we are aiming for, and so that we can minimize the mismatch between the expectations and the reality of the hiring process for both companies and individuals. Liberal Logic Inc. is conducting referral recruitment. If you are interested in being considered for a position, please contact us through a Liberal Logic Inc. representative. The hiring process includes a brief technical test. This technical exam simulates small-scale software development and takes a few hours to complete. Salary will be determined by mutual consultation and agreement, taking into consideration a variety of factors, including a description of past experience and specific development results, the results of the technical test conducted during the hiring process, engineering and business attitudes, work philosophy, and social and economic conditions.
* Ability to work on things with sincerity and not lie to yourself or others. * Ability to communicate with your team in a polite and respectful manner. * Able to continuously work on improving things and take a creative approach to problem solving. * Ability to design primitives for required functionality and then implement them. * Ability to properly illustrate your designs in some way. * Ability to design using appropriate methods, even when the scale of the design is large. * Ability to design objects that strictly handle initialization, use, and destruction based on RAII (Resource Acquisition Is Initialization). * Ability to implement class and object hierarchies that have an appropriate logical structure for the task. * Ability to keep the overall structure simple by effectively using the concepts of abstraction, polymorphism, etc. * Understand the difference between interface definition and implementation details, and be able to clearly distinguish between them when designing and implementing. * Ability to self-manage all aspects of software engineering and product development and lead teams as needed. * Ability to design and develop large (>100,000 lines) software using C/C++. * Experience with fault tolerant software design * Knowledge of and ability to implement SIMD arithmetic operations such as CUDA, AVX, etc., and distributed processing using threads * Strong skills in debugging, performance optimization, and unit testing * Ability to work effectively in a dynamic environment with changing needs and requirements * Ability to work independently or in a team environment, take initiative, and communicate effectively. * Perspective to dig deep into user issues and find effective solutions * Ability to speak up for yourself in team collaboration on architecture, design, and code review * Bachelor's degree in Computer Science, Engineering, Mathematics, or Science with 10+ years of software development experience. * Experience with version control, continuous integration, and continuous delivery concepts * Expertise in designing software systems. * Deep understanding of testing, continuous integration, build, deployment, and monitoring * Expertise in application performance profiling and improvement * Demonstrated technical leadership and continuous improvement * Experience developing software for cross-platform users * Ability to listen when someone points out a design or implementation that you have done. * Ability to provide user-readable and understandable documentation for software you have worked on, including diagrams. * Ability to debug by oneself when there is a defect in the design that you have done. * Be comfortable with English-language technical documents. * Able to write technical or user documentation in Japanese. * Ability to design and implement libraries that can be used by third parties
* Ability to work on things with sincerity and not lie to yourself or others. * Ability to communicate with the team in a polite and respectful manner. * Able to continuously work on improving things. * Be able to design the required functionality primitively and put it into implementation. * Ability to design using appropriate methodologies, even when the design scale is large. * Understand the difference between interface definition and implementation details, and be able to clearly distinguish between the two when designing and implementing. * Ability to self-manage all aspects of software engineering and product development. * Ability to design and develop medium size (>50,000 lines) software using C/C++. * Ability to propose ideas for solutions to user problems. * Bachelor's degree in computer science, engineering, mathematics, or a scientific field, or 3+ years of experience developing software in an object-oriented language * Experience with version control concepts. * Ability to listen when someone points out a design or implementation that you have done. * Ability to write user-readable and understandable documentation for the software you have worked on, including diagrams. * Ability to debug by oneself when there is a defect in the design that you have done. * Be comfortable with English technical documents, and be able to write Japanese technical documents or documents for users. * Ability to use libraries designed and implemented by third parties.