Meet the Partners for Codecamp in Timisoara | 25 May

Codecamp Timisoara will take place on May 25. Don’t forget to register HERE.

In the meantime, we want to thank our partners for being with us every step of the way.

For most of the Romanian, BRD is a day to day presence, spread all over the country. We are a Top Romanian Bank and one of the companies listed at BVB. We have also a long history. Descendent of the National Industrial Credit Society, created in 1923, BRD was initially the Investment Bank of the Romanian country before becoming, in 1990, a universal bank. In 1999, Societe Generale became the majority shareholder of the bank. The French bank, one of the biggest from the euro area, with 145.000 employees in 66 countries and over 31 mil.  Clients from all over the world, transferred in Romania know-how that allowed us to become shortly one of the leaders of the Romanian market.

We constantly are looking to innovate ourselves, while offering to wide public programs and products tailored, from kids to students and businesses of different sizes, comfort and security. We have 2.3 mil clients and 780 branches. Our activity covers three major business lines: retail and IMM, big corporations and investment banking. With over 7.500 employees we are one of the biggest banking employers.

BRD is an important economic actor in the local economy but also we are an active social player, involved in the community through projects and programs that cover social, cultural and sportive areas.

We are proud to support technology and innovation in our country and we engage our efforts in developing key actors (the new generation of IT specialists and tech entrepreneurs ) for a digital society. Our main projects are  BRD First Tech Challenge, the Robotics Labs and Innovation Labs but we constantly continue to search and support initiatives, such as Codecamp,  that contribute to supporting the Romanian creators of technology and innovation. Furthermore, we have developed a special offer for the IT segment through which we hope to answer the daily banking needs of this public.  Find out more details on www.brd.ro/code

 

Established in 1998 in Cluj-Napoca, Softvision is now a big and global outsourcing company that provides great software product development services to their clients. Softvision expanded throughout Romania in Baia Mare, Bucuresti, Iasi and Timişoara. The company develops over 300 projects for over 100 clients from Europe and USA, in the following fields: software development, testing and quality assurance, mobile apps, UI/UX Design, support services and others.

Softvision is renowned for its Top 500 Fortune, Silicon Valley and Wall Street clients: Microsoft, Toshiba, Alcatel, Sharp, Swisscom, Sprint and others. In 2016, Softvision merged with well-renowned US-based Company SPI (Software Paradigms International), thus becoming an International Company with offices also in Canada, Australia, Brazil and India.

With the merger, Softvision gained new clients from the retail segment: Macy’s, Saks Fifth Avenue, Bloomingdale’s, Neiman Marcus, Lord&Taylor, Estee Lauder, Michael Kors. Softvision encourages their employees to work hard, play hard and to continuously learn through the Softvision University Program.

This was developed to offer full support to every individual in the company to reach the highest professional development level in accordance with their potential. Softvision University comprises 11 communities: .Net, Android, iOS, Web, DB, QA, Java, C/C++, DevOps, PM and Artificial Intelligence.

 

Edurom is a national company that has been successfully providing in Romania, since 2002, human resources services, based on two powerful and well known global methodologies: BELBIN and Situational Leadership -The Original Model.

Moreover, EDUROM exclusively represents these methodologies in Romania. Thus, day by day, we are striving to: Build Leaders, Create and Develop PERFORMING Teams, and achieve significant Improvements of Productivity for our customers. Based on this, Edurom provides professional services in Training, Recruitment, AND Consultancy (Performance Management and Productivity Improvement).

ACI Worldwide, the Universal Payments (UP) company, powers electronic payments for more than 5,100 organizations around the world. More than 1,000 of the largest financial institutions and intermediaries as well as thousands of global merchants rely on ACI to execute $14 trillion each day in payments and securities. In addition, myriad organizations utilize their electronic bill presentment and payment services.

Through their comprehensive suite of software and cloud-based solutions, ACI delivers real-time, immediate payments capabilities and enable the industry’s most complete omni-channel payments experience.

Visma offers software and services that simplify and digitize core business processes in the private and public sector. The Visma group operates across the entire Nordic region along with Benelux, Central and Eastern Europe. The headquarter is located in Oslo, Norway. The Visma Group comprises five business areas: SMB, Enterprise, Commerce Solutions, Custom Solutions and Cloud Infrastructure Services.

We provide solutions that keep our customers one step ahead of their competition. In optimising for efficiency, the goal posts are constantly being moved. There will always be parts of an operation that can be performed more efficiently – or automated altogether. At Visma, we aim to provide solutions and software that are of such high quality that they turn our customers’ business and administrative processes into competitive advantages. That means offering world-leading solutions today, as well as tapping into the opportunities tomorrow’s technology offers.

SmartValue: inspired by innovation

SmartValue?
We are business advisors and developers for Newpharma, Belgian start-up of the year in 2018;

The #cool team?

Established since 2011 in Timisoara, SmartValue has just welcomed two new locations in its portfolio. Take a look inside our team:

  • Open #communication – Think. Talk. Listen. Brainstorm.
  • Great #talent – We grow and learn together
  • Unified #vision – Building apps for the future
  • #Dynamic – Always using the latest technology
  • Committed to #succeed – Because we have a clear road ahead

What makes us tick?

  • Autonomy
  •   Imagination
  • Diversity
  • Agility
  • Flexibility
  • Responsiveness
  • Having fun

Veoneer is the world’s largest pure-play company focused on Advanced Driving Assistance Systems (ADAS) and Automated Driving (AD). We are 7,900 people in 13 countries worldwide, working on making the world’s fastest growing, cutting-edge technologies — like radar, night vision, electronic controls, and human-machine interface — ready for the demands of mass production and real world use.

Continental is a top-tier automotive manufacturing company that specializes in tyres, interior electronics, chassis components, brake systems, powertrain, tachographs and numerous other factors related to the transportation and automotive industries. Continental is divided into five sections: Chassis & Safety, Interior, Powertrain, Tyres, and Contitech. One of the company’s main areas of expertise is fuel consumption, attained via reduced-resistance tyres, more efficient fuel injection systems and hybrid propulsion systems.

plentymarkets is THE e-commerce ERP in Europe!

You can manage all of your online business processes with one software: plentymarkets. From setting up your items to processing orders, managing payments and fulfillment: all of the processes are efficiently linked together so that you can fulfill orders quickly and provide your customers with a high level of service. You will profit from our comprehensive support options and will always be ahead of the game with our updates and innovative ideas. plentymarkets makes e-commerce simple, convenient and efficient by providing you with a wide range of individual functions that all work together harmoniously under one roof.

Our young, talented and motivated team builds the foundation of our success. Using cutting edge technology we always set new challenges for ourselves and we are seeking new team members to help us write our success story.

Elektrobit (EB) is an award-winning and visionary global supplier of embedded and connected software products and services for the automotive industry.
A leader in automotive software with over 30 years serving the industry, EB‘s software powers over 1 billion devices in more than 100 million vehicles and offers flexible, innovative solutions for connected car infrastructure, human machine interface (HMI) technologies, navigation, driver assistance, electronic control units (ECUs), and software engineering services.

Endava is a public technology company, with over 18 years of experience of working with some of the world’s leading Finance, Insurance, Telecommunications, Media, Technology, and Retail companies. Through the Digital Evolution, Agile Transformation and Automation solutions, Endava helps its clients be more engaging, responsive and efficient by supporting them from ideation to production.

Endava has 5,300+ employees located in offices in North America and Western Europe and delivery centres in Romania, Moldova, Bulgaria, Serbia, Macedonia, Argentina, Uruguay, Venezuela, and Colombia.

Along with investing in long-term customer relationships, Endava recognised the importance of providing rewarding and challenging careers for people and, by doing so, has established itself as the employer of choice in certain regions.

Syneto is here to transform the way organisations of all sizes manage their IT infrastructures and helps them achieve their most important objectives: remove complexity, lower costs and increase agility for faster resource deployment.
Our highly usable data technologies enable customers to create hyper-converged as well as software-defined storage infrastructures. Powerful analytics capabilities help organisations make informed, effective data-driven decisions and deploy revenue-generating applications quickly, easily and with confidence.

Ness Digital Engineering is an innovative custom software development firm Ness Digital Engineering provides digital transformation and custom software product engineering services to help organizations envision, build, and continually evolve their digital platforms to enter new markets, capture new revenue and gain operational efficiencies.

Their global team enables clients to compete and grow in today’s digital economy by providing deep expertise in experience engineering, product and platform development, and data analytics. Ness’s strength is the ability to provide a seamless blend of creative design and user experience engineering, combined with a rigorous, productized approach to digital platform development and data analytics.

Product engineering is central to the company’s heritage. Using their Ness Connected framework, they help companies define and develop the right digital products and services faster to significantly accelerate time to market, improve customer engagement and reduce business risk. As a custom software development firm, Ness believes digital platform development and product engineering requires a fundamentally different approach than running traditional enterprise IT services or providing staff augmentation.

BearingPoint is a leading international provider of innovative regulatory and risk technology solutions (RegTech and RiskTech) and services along the Regulatory Value Chain for Financial Services. Customers representing 6,000 firms worldwide, among them large international banks, leading insurance companies, as well as supervisory authorities and central banks, trust BearingPoint’s RegTech and RiskTech products and services. BearingPoint’s solution portfolio of Regulatory Reporting and Risk products is based on the Abacus platform, a proven, mature and future-proof strategic solution that proactively builds in latest industry trends and regulatory developments.

Appsbroker is Google’s largest partner in Europe, helping drive Google Cloud and Apps adoption at major enterprises across the globe and helping hundreds of thousands of people embrace SmarterWorking. Their SmarterWorking solutions leverage the power of Google Cloud to help modernize and streamline big business functions; helping teams collaborate and transform ways of working.

Appsbroker delivers digital transformation strategies that unlock real business value. Whether it’s hidden in data, corporate knowledge, people, or processes; Appsbroker’s SmarterWorking solutions, built on Google Cloud, are leading the way in business transformation.

Haufe Group offers integrated and comprehensive workplace solutions to successfully manage tax, commercial and legal challenges. Their solutions cover content, applications, professional training and qualifications, services as well as Online communities and portals.

Their target groups are small, medium and large companies, self-employed/freelancers, as well as tax and legal advisers, public services and NGOs.

They have consistently developed into a specialist for digital and web-based services. Headquartered in Freiburg, Germany, Haufe employs approximately 1,800 people around the world.

Over the past 12 years, West University of Timişoara (UVT) has been focusing on providing students with unique learning experiences. Through changes in the national-educational politics, demographics, economic market demands, and national and regional demands, the University has managed to adapt and grow into one of the best in the country. UVT is committed to offering students the required education to help develop the local economy with bright, ingenious ideas worth taking into consideration.

UVT is made up of 11 faculties; each offering different types of programs that are meant to hone pioneering initiatives. The West University of Timişoara is involved in international collaborations and mobility programs like PHARE, Socrates, Leonardo da Vinci, and more. The University prides with being active, innovative, creative, and specialized in perfecting the next generation of researchers, professors, and specialists in areas like Economic Sciences, Law, Physics, History, Information Technology, and more.

Iulius Town is a mixed use urban regeneration project developed by the Iulius Management Center company.  Iulius Town will become a landmark for the sustainable development of Timişoara, bringing together office, retail, park and entertainment functions.

Iulius Town is a vibrant location, worthy of a European Capital of Culture, as well as the promoter of a broad variety of cultural, artistic and social events. The project was designed based on a new lifestyle concept, offering a unique business and shopping experience and a venue where you can enjoy life.

United Iulius Timișoara is part of the Iulius Town urban complex, the second mixt ”lifestyle center” in România.

At JetBrains, code is their passion. For over 15 years they have strived to make the strongest, most effective developer tools on earth. By automating routine checks and corrections, their tools speed up production, freeing developers to grow, discover and create.

Their line of software products include:

* IntelliJ IDEA (The most intelligent Java IDE)
* PhpStorm (Lightning-smart PHP IDE)
* WebStorm (The smartest JavaScript IDE)
* PyCharm (Python IDE for professional developers)
* RubyMine (The most intelligent Ruby IDE)
* AppCode (Smart IDE for iOS/OS X development)
* CLion (A smart cross-platform IDE for C and C++)
* DataGrip (Your Swiss Army knife for databases & SQL)
* PyCharm Edu (Professional tool to learn programming with Python)

* Rider (New Cross-platform .NET IDE based on the IntelliJ Platform and ReSharper)
* ReSharper (Visual Studio extension for .NET developers)
* ReSharper C++ (Visual Studio extension for .NET developers)
* dotTrace (.NET performance Profiler)
* dotMemory (.NET memory Profiler)
* dotCover (.NET unit test runner and code coverage tool)
* dotPeek (Free .NET decompiler and assembly browser)

* TeamCity (Powerful Continuous Integration out of the box)
* YouTrack (Issue tracker designed for development teams
* Upsource (Code review and repository browsing)
* Hub (JetBrains team tools, integrated)

* Kotlin (Statically typed programming language for the JVM, Android and the browser)
* MPS (DSL development environment)

Meet the Partners for Codecamp in Chișinău | 11 May

Codecamp Chișinău will take place on May 11. Don’t forget to register HERE.

In the meantime, we want to thank our partners for being with us every step of the way.

Established in 1998 in Cluj-Napoca, Softvision is now a big and global outsourcing company that provides great software product development services to their clients. Softvision expanded throughout Romania in Baia Mare, Bucuresti, Iasi and Timişoara. The company develops over 300 projects for over 100 clients from Europe and USA, in the following fields: software development, testing and quality assurance, mobile apps, UI/UX Design, support services and others.

Softvision is renowned for its Top 500 Fortune, Silicon Valley and Wall Street clients: Microsoft, Toshiba, Alcatel, Sharp, Swisscom, Sprint and others. In 2016, Softvision merged with well-renowned US-based Company SPI (Software Paradigms International), thus becoming an International Company with offices also in Canada, Australia, Brazil and India.

With the merger, Softvision gained new clients from the retail segment: Macy’s, Saks Fifth Avenue, Bloomingdale’s, Neiman Marcus, Lord&Taylor, Estee Lauder, Michael Kors. Softvision encourages their employees to work hard, play hard and to continuously learn through the Softvision University Program.

This was developed to offer full support to every individual in the company to reach the highest professional development level in accordance with their potential. Softvision University comprises 11 communities: .Net, Android, iOS, Web, DB, QA, Java, C/C++, DevOps, PM and Artificial Intelligence.

 

Edurom is a national company that has been successfully providing in Romania, since 2002, human resources services, based on two powerful and well known global methodologies: BELBIN and Situational Leadership -The Original Model.

Moreover, EDUROM exclusively represents these methodologies in Romania. Thus, day by day, we are striving to: Build Leaders, Create and Develop PERFORMING Teams, and achieve significant Improvements of Productivity for our customers. Based on this, Edurom provides professional services in Training, Recruitment, AND Consultancy (Performance Management and Productivity Improvement).

 

Ness Digital Engineering is an innovative custom software development firm Ness Digital Engineering provides digital transformation and custom software product engineering services to help organizations envision, build, and continually evolve their digital platforms to enter new markets, capture new revenue and gain operational efficiencies.

Their global team enables clients to compete and grow in today’s digital economy by providing deep expertise in experience engineering, product and platform development, and data analytics. Ness’s strength is the ability to provide a seamless blend of creative design and user experience engineering, combined with a rigorous, productized approach to digital platform development and data analytics.

Product engineering is central to the company’s heritage. Using their Ness Connected framework, they help companies define and develop the right digital products and services faster to significantly accelerate time to market, improve customer engagement and reduce business risk. As a custom software development firm, Ness believes digital platform development and product engineering requires a fundamentally different approach than running traditional enterprise IT services or providing staff augmentation.

 

The ambition of Orange Systems is to develop IT domain under trademark of agility, creativity and competitiveness, through creating software products and local competence centers.
The digital revolution is our playground. In the future, everything will be connected, your home, your car, your office. Our goal is to make this connectivity available truly everywhere and entirely safe.
The code is everywhere now, software is helping us to do our daily jobs and share precious moments with the loved ones.
That’s why it’s so important for us to create an environment where we can nurture IT talent.
IT guys are the new creatives looking for a worthy challenge.
Orange Systems gives you challenges worth taking.

 

Expert technology. Bright people. Solid Delivery.
We are an R Systems Group company, with more than 20 years of experience in telecom and technology. Our global approach accounts for more than 1,000 projects delivered successfully to over 100 companies worldwide, 11 offices on 3 continents and more than 250 highly skilled engineers. We enable businesses to grow and innovate through expert technology and bright people. We do this with a clear mind for technology and a warm heart for people.

 

Endava is a public technology company, with over 17 years of experience of working with some of the world’s leading Finance, Insurance, Telecommunications, Media, Technology, and Retail companies. Through the Digital Evolution, Agile Transformation and Automation solutions, Endava helps its clients be more engaging, responsive and efficient by supporting them from ideation to production.
Endava has 4,700 employees located in offices in North America and Western Europe and delivery centers in Romania, Moldova, Bulgaria, Serbia, Macedonia, Argentina, Uruguay, Venezuela, and Colombia.
Along with investing in long-term customer relationships, Endava recognized the importance of providing rewarding and challenging careers for people and, by doing so, has established itself as the employer of choice in certain regions.

 

AMDARIS is a rapidly expanding multinational Software Development Company. With offices in the UK, Romania and Moldova, they combine deep technology expertise, solutions architecture capability, development and program management skills that deliver best-in class Solutions that help Enterprises scale and meet their software challenges. They are a Microsoft Gold Partner, meaning they are industry recognized as being “best-in-class”, and are in the top 1% of the Microsoft Partner Ecosystem.

AMDARIS delivers projects and programmes, working on products or platforms for clients ranging from tech start-ups, through to global multi-billion dollar businesses.

Their Abilities

They are able to provide end-to-end solutions, encompassing product design, project management, develop & build, through to automated testing, deployment, integration and ongoing support and Lifecycle Management.

  • Their delivery models include:
  • Augmented Development Resource (Including Teams, Complete Software Development function Agile, Waterfall or Hybrid
  • Blend of On-Site and Near-Shore

Operational excellence, governance and quality underpin everything they do. As an ISO9001 and ISO27001 company, their enterprise clients see them as a safe pair of hands.

 

Stefanini is a Brazilian company with over three decades of IT expertise, ranging from IT infrastructure outsourcing to software applications development and maintenance, focused on making the digital transformation dream a successful reality for our clients. They have a direct presence in 40 countries, through 77 offices, enjoy working for over 500 clients.

They’ve been on the Romanian market for 13 years, building a team of over 1 600 people in their offices in Bucharest, Sibiu and Târgu Mureș. Since 2016 they have been also present in Chișinău with a team of around 90 people delivering great services.

Their “big enough, yet small enough” approach makes us flexible, responsive and agile. Stefanini has career opportunities for professionals interested in a vibrant, passionate, team-oriented workplace.

Learn more about them on https://stefanini.com and join them on facebook.com/stefaniniromania/.

 

ASSIST Software Romania specializes in outsourcing software development projects. Based in Eastern Europe, we are operating in a challenging economy that creates a fertile environment for Information Technology and business outsourcing. Our team has a solid and proven track record, delivering high quality and timely services.

Founded in 1992, ASSIST Software is present on the international market as a supplier of innovative solutions, adding business value through technology implementation at a professional level. Focusing our activities toward developing complex software products, ASSIST Software provides consistent results in emerging fields such as mobile and web-based custom business applications, e-commerce, e-payment, e-security, e-health and enterprise & resource planning, entertainment, and gaming industry.

We are focused on developing powerful and cutting-edge applications, that allow us to offer solutions which provide real business benefits. We deliver products and services with quantifiable ROI built around customer’s goals and strategic vision.

Our team continuously fulfills our partners’ demands by constantly updating our knowledge, conquering new areas of expertise, increasing the quality of our consultancy and support services. We build long-lasting relationships with our business partners, easily adapting to each one of their requirements.

Our Microsoft Certified Partner status is recognition for our performances and competences. These competencies are greatly supported by the software development team. The partnership with IBM, Intel, CISCO, and HP are a testament to our ability to design and deliver quality hardware and software solutions optimized for any platform.

Veoneer is the world’s largest pure-play company focused on Advanced Driving Assistance Systems (ADAS) and Automated Driving (AD). We are 7,900 people in 13 countries worldwide, working on making the world’s fastest growing, cutting-edge technologies — like radar, night vision, electronic controls, and human-machine interface — ready for the demands of mass production and real world use.

 

At JetBrains, code is their passion. For over 15 years they have strived to make the strongest, most effective developer tools on earth. By automating routine checks and corrections, their tools speed up production, freeing developers to grow, discover and create.

Their line of software products include:

* IntelliJ IDEA (The most intelligent Java IDE)
* PhpStorm (Lightning-smart PHP IDE)
* WebStorm (The smartest JavaScript IDE)
* PyCharm (Python IDE for professional developers)
* RubyMine (The most intelligent Ruby IDE)
* AppCode (Smart IDE for iOS/OS X development)
* CLion (A smart cross-platform IDE for C and C++)
* DataGrip (Your Swiss Army knife for databases & SQL)
* PyCharm Edu (Professional tool to learn programming with Python)

* Rider (New Cross-platform .NET IDE based on the IntelliJ Platform and ReSharper)
* ReSharper (Visual Studio extension for .NET developers)
* ReSharper C++ (Visual Studio extension for .NET developers)
* dotTrace (.NET performance Profiler)
* dotMemory (.NET memory Profiler)
* dotCover (.NET unit test runner and code coverage tool)
* dotPeek (Free .NET decompiler and assembly browser)

* TeamCity (Powerful Continuous Integration out of the box)
* YouTrack (Issue tracker designed for development teams
* Upsource (Code review and repository browsing)
* Hub (JetBrains team tools, integrated)

* Kotlin (Statically typed programming language for the JVM, Android and the browser)
* MPS (DSL development environment)

 

Driven by the ‘Cogito ergo sum’,  Xogito is a global citizen company operating worldwide in a virtual environment. We are industry leaders in remote work. Every day we help our clients exceed their business goals and gain invaluable experience of it.

Digital technologies are constantly changing to keep up with business needs and to create new ones. We help you think through where you are technically and help you map out where you want to go and how to get there. Data, RTB, E-Commerce, AdTech – we approach your needs within the larger technical landscape in full accord with best practices, emerging trends and forward thinking solutions.

As an employer Xogito stands for bringing together and nurturing top digital talent. Our team consists of seasoned IT Professionals who solve with curiosity and excellence extreme technical challenges. We believe that the Agile SWD, TDD, cloud computing and open source technologies are the present and the future of technology. In our day-to-day activities we adhere to best industry practices and enjoy it.

 

Jivy Group is a group of people and companies working together in the startup nation.
Jivy Group develops software products for a variety of startups in different industries such as gaming, social networks, trading industries, media complementary products, ad networks, online gambling and more.

 

Adding automatic tests to an ASP.NET MVC application (part 1)

I. Introduction

Soon after software development has emerged, it became obvious that any application beyond a homework needs testing. Testing evolved naturally along with frameworks, both on client side and server side and now we are talking about Test-driven development and Behavior-driven development(e.g. Cucumber). Of course, most efficient tests are automatic ones.

A couple of years ago, we had the opportunity to start a project from scratch (MDW Automatic Testing along with Claudiu) and I said to my self: why not develop a small framework to easily add automatic tests?

Since back then ASP.NET Core was not mature enough to go into production, we stuck to the more solid ASP.NET MVC 5, along with its natural companion, Entity Framework 6. On the client side, we used AngularJS(Angular was not mature enough back then).

So, this article will focus on automatic testing using this tech stack, but most of the concepts also apply to other tech stacks.


II. Unit testing

Simply put, unit testing refers to testing the functions in your code.

Unit tests represent the base of the automated test pyramid and from my personal experience, they are often skipped, because they require a lot of coding and thus more time (also check this nice article about levels of testing). We made a compromise and have chosen to cover critical functionality with unit tests and use integrative tests for the rest.

In order for the code to be unit-testable some tools and design-patterns were used to cover the following concepts:

  • Dependency Injection — we chose Ninject. Of course, there are alternatives, but this seemed to be most versatile. This allows to easily replace a service dependency when needed (e.g. with a mock object)
  • A mocking framework — we chose NSubstitute . This allows to easily to replace classes or functions for unit testing.
  • A unit testing framework — we use NUnit. It integrates nicely in Visual Studio and we use it to run all our tests (including Selenium Web driver ones).
  • Generic repositories — a design pattern that involves creating a generic class that handles basic data operations (add, insert, insert bulk, update, update bulk etc.). Unfortunately, Entity Framework 6 is not very friendly when it comes to dependency injection and mocking, so generic repositories are of good use since that can simply be replaced with some generic in-memory repositories.

NOTE: thankfully, ASP.NET Core 2.0 was built with dependency injection in mind and comes with an in-memory database provider that makes unit tests much easier.

Enough talk, let’s dive into some code.

  1. The generic repositories

All generic repositories implement a single interface (see below). Besides the regular (non-cached) repository and the in-memory one, there is also a “cached” one that is plugged for some entities to avoid database fetches (typically mapped to rarely changed and relatively small tables).

Read the complete article here.

Written by Alexandru Dragan, METRO SYSTEMS Romania

Artificial intelligence will certainly be part of the future world, will we?

terminator

For some time now, artificial intelligence has been revolutionizing the way we see banking, fintech, retail, education and even the medical system. At this point, it is clear for everyone that whatever future we might have, AI will definitely be part of it. The thing we don’t seem to agree on is how good will such technology be for humanity. On the one hand, a lot of experts believe that AI advancements will bring much value and will help humans improve their existence over the next decades. And on the other hand, we have those who worry that, in time, we might start to change our idea of what it means to be human.

In the summer of 2018, a group of technology pioneers, innovators, developers, business leaders and policy makers have debated on the exact topic and reached an unanimous conclusion. They predicted that artificial intelligence will augment human effectiveness, but also threaten human autonomy and capabilities. They also discussed the possibility of systems becoming so smart that they could actually be better than humans even at what is now impossible for AI to do: complex decision-making, reasoning and learning.

In a recent interview, Bill Gates has also declared that “artificial intelligence is both promising and dangerous, like nuclear weapons and nuclear energy”.  However, Microsoft’s co-founder believes that medicine and education can and should be the main areas that benefit from what AI can bring to the table.

The elephant in the room

The matter of whether humans will be replaced or not by machines haunts most of our dreams since AI has become almost ubiquitous in our lives. Nowadays, there’s almost no industry that has not deployed artificial intelligence technology. Banks are using it to detect fraudulent transactions and make predictions, retailers save a lot of time and money by adding AI capabilities for inventory and shelving and there are even hospitals that adopt it to help doctors identify certain diseases. Furthermore, data shows that more than a third of US hospitals actually have at least one robot that can perform surgeries.

With the possibility of machines someday really thinking and acting like (or even better than) us, everything seems to point towards humans becoming obsolete. How not to worry?

FIRST ‘TAKEOVER’ WE NEED TO TACKLE – AI AND UNEMPLOYMENT

Job security has always been one of people’s main worries over the years. And with AI disrupting so many domains, our replacement has become more of a fact than a possibility. Apart from the repetitive and predictable tasks, there are also a number of white collar jobs that might be done (better) in the future by an AI system. Lawyers, doctors, writers or journalists are also at risk of being replaced by machines.

But such technological development will bring so many other changes and innovations that we will not be able to address at once, which means new skills and capabilities will be required from humans. This will lead to new jobs being created, thus adding different opportunities for individuals.  The hypothesis of AI creating more jobs than it replaces is also confirmed by a Gartner study, which predicts that in 2020, AI will create 2.3 million new jobs while eliminating 1.8 million traditional jobs.

Read the complete article here.

Written by Ionela Bărbuță, Strongbytes

A study towards understanding the job titles in a DevOps world

DevOps is an IT related concept heavily debated, marketed, talked-about in the industry for quite some years. What I love most about it is that it continuously improves; it is like a living organism, as any IT company built on people’s creativity, passion and knowledge.

As I see it, if DevOps would be a person, automation would be its heart, communication and knowledge sharing would be its blood, agile product management would be its brain while servant leadership (or even further — transformational leadership) would be its breathing air.

In this article I am going to have a look at the DevOps heart and how could we keep it pumping.

In a DevOps environment, practices such as continuous integration, continuous delivery, continuous deployment, continuous monitoring, continuous testing, self-healing, auto-scaling are a must; and all these can only be achieved by automating workflows, operations, whatever repetitive task that implies human effort.

In order to cover this automation need, several job titles appeared in the market: Build Engineer, Release Engineer, DevOps Engineer, Site Reliability Engineer, [Cloud] Platform Engineer and some other flavors of these ones. Of course, passionate debates and quite very well documented papers appeared on what exactly does it mean one or the other, how do they overlap, how do they complement and in which kind of organizational structure do they fit (if curious about it, please see the references of this article).

The understanding and the usage of these job titles depend also on the geographical location, in direct correlation with how many companies/teams have adopted DevOps (culture, methodology, processes, and tools). As reference, in the 2017 State of DevOps Report done by Puppet & DORA, it is stated that 54% of the software teams have adopted already DevOps in North America, 27% in Europe and Russia and 10% in Asia, so I expect some differences in the maturity level, thus in the job-related titles (implicitly, in roles & responsibilities).

From my observations on the Romanian jobs market, I have built the following picture with regards to these job titles topology:

As a storyline, I would put it like this:

· two ~ three years ago, when I first made an analysis of the market, there were many job requests for Build Engineers, meaning someone with technical expertise in automating the build process, who would be able to implement continuous code integration, as a first step towards building a Continuous Delivery Pipeline (CDP). Specific technical skills that are mostly required for this role: source control management and tools (e.g GIT, SVN), scripting languages for packing the source code (e.g Ant, Maven, Makefile), CDP related tools (e.g Jenkins, Groovy, TeamCity, Artifactory, Nexus); knowledge on CDP workflow and technical components;

· then, for quite a small period of time, I have observed an increase of requests for so-called Release Engineers, from whom the companies demanded the same knowledge as for Build Engineers and, in addition, strong knowledge also on managing environments/platforms, configuration management & deployment automation, agile-specific tooling configuration/ administration/management. They were expected to build a complete, reliable Continuous Delivery Pipeline, connecting all the technical pieces together (e.g. integrating Selenium for test automation, Docker or Cloud Providers SDKs), implementing best practices in the workflow. The term is not that used anymore, at least on the Romanian market. Searching through LinkedIn Jobs, I can observe that also worldwide is not heavily used, in comparison with Build Engineer (a few times more job requests) or DevOps Engineer (which is requested like 10~15 times more). Maybe the word “release” was not that inspiring and everyone in the industry was thinking about the old release policies with long feedback loops and that is why it was more or less dropped off. On the other hand, Google mentions Release Engineer role in “Site Reliability Engineering. How Google runs production systems” book as defining “best practices for using [their] tools in order to make sure projects are released using consistent and repeatable methodologies. Examples include compiler flags, formats for build identification tags, and required steps during a build.”

· There is also an increasing number of requests for [Site] Reliability Engineers (SRE). This is a role launched by Google, heavily sustained by one of the top DevOps researchers, Jez Humble, which is rapidly gaining adoption, in a direct correlation also with Google Cloud Platform increase in the market share. SRE, as Google defines it, is a team with both coding and system engineering skills, which “is fundamentally doing work that has historically been done by an operations team, but using engineers with software expertise”. The team is expected to be responsible for the availability, latency, performance, efficiency, change management, continuous monitoring, emergency response, building up strategies for rollbacks, auto-scaling or self-healing. The required technical expertise is referring to performance monitoring tools (e.g DataDog, OMD, Grafana), Linux scripting, programming languages (e.g Go, Python, Java, JavaScript), cloud technologies (e.g Google Cloud Platform, AWS, OpenStack), microservices architecture.

Read the complete article here.

Written by Aura Virgolici, METRO SYSTEMS Romania

Welcome to the retail robot takeover

One of the main areas we’re starting to see the proven power of artificial intelligence is in the retail sector. Whether it’s a robot salesclerk whizzing down the aisles, ready to assist customers in need of directions, or number-crunching systems that make sense of big data rendering it both manageable and actionable to help a company make informed decisions that will positively impact its bottom line. There’s no denying that we’re only beginning to discover the value of what AI can bring to the table when it comes to sales, service and support to enhance the customer experience.

One proven example of the move towards making large volumes of data meaningful within the retail ecosystem is Salesforce Einstein, a robust set of services that brings sophisticated AI activities into Salesforce’s existing popular CRM. With Einstein, retailers can transform business, as usual, helping every department to run efficiently and do what they do best for their valued customers. The company can offer predictions and recommendations based on customer data and develop apps that will transform how shoppers interact with its online and physical stores.

Read more about how AI is impacting e-commerce in this article written by OSF Commerce, an OSF Global Brand.

Why I would not choose Java to run in Kubernetes

Together with the rise of Java, Java Applications Servers (e.g Tomcat, IBM WAS) also came into the game. The idea of an application server was to have one JVM and to run multiple deployments (e.g. jar, ear, war), this way the memory footprint necessary for running lots of processes can be reduced.

Historically, the teams were well-defined in application administrators that could also be responsible with the operations aspects and developers with a focus on developing the business features of their product and not so much on how their code runs in terms of performance, reliability and so on. App admins instead, took a heavy interest in how the code is running on their administered applications so they would have a stable system. As one of them, even with optimized code, I still had a job that killed that Java process on a 24h basis, just to be sure, considering that we had processes that just froze after 1 week.

Then containers were launched and the idea that everything can be packed in images and those images can run anywhere. Kubernetes would be used for orchestration, monolith applications would be migrated to the cloud, by re-writing them in microservices.

The app admins will remain to administrate the monolith and the developers will go and build new small applications based on microservices in Docker.

In some of these new teams, there were no application administrators, to raise awareness on JRE, JVM and the garbage collector related issues, and no one else took care about this aspect. Instead, Kubernetes is used to deploy our newly shiny Docker images. So, there are not too many people to wonder if Java is really suitable for this kind of architecture from a reliability point of view.

As an old app admin to a new SRE position, I learned about Golang, which looks like a much better alternative for microservices.

Meanwhile, all Kubernetes is full of Java code and there are apps that cannot start if they have not a minimum of 200MB of RAM because Java code runs into a container image with its own JWM, JRE, JAR, CVE security patches and so on (all with an Image size 500+ MB).

                                                  scala microservice

During my learning time for Go, I started to play by writing small compiled Go microservices:

  • Static data that have 11MB in image size and 9MB of RAM used
  • DB Command Model 13MB in image size and 23MB of RAM used
                                                     golang static data
                                     golang database command model

(*both Java and Go screenshots are from services that run for at least 1 day).

Read the complete article here.

Written by Ionut Ilie, METRO SYSTEMS Romania

Masterclass: Testing Strategies for Microservices

Date: 12 April 2019, CLUJ
Training fee: €300/participant plus VAT, only 25 seats available

To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

About the training

Software development is trending toward building systems using small, autonomous, independently deployable services called microservices.

Leveraging microservices makes it easier to add and modify system behavior with minimal or no service interruption. Because they facilitate releasing software early, frequently, and continuously, microservices are especially popular in DevOps.

But how do microservices affect software testing and testability? Are there new testing challenges that arise from this paradigm? Or are these simply old challenges disguised as new ones?

Join Tariq King as he describes the pros and cons of testing under the microservices architecture.

Learn how to develop a microservices testing strategy that fits your project needs—and avoids common pitfalls and misunderstandings.

Whether you’re already using microservices or just considering making the shift, come and engage with Tariq as he brings clarity to testing in a microservices world.

The trainer

Tariq King is the senior director and engineering fellow for quality and performance at Ultimate Software. With more than fifteen years’ experience in software testing research and practice, Tariq heads Ultimate Software’s quality program by providing technical and people leadership, strategic direction, staff training, and research and development in software quality and testing practices. Tariq is a frequent presenter at conferences and workshops, has published more than thirty research articles in IEEE- and ACM-sponsored journals, and has developed and taught software testing courses in both industry and academia. His primary research interest is engineering autonomous self-testing systems. He is cofounder with Jason Arbon of the Artificial Intelligence for Software Testing Association.

Date: 12 April 2019, CLUJ
Training fee: €300/participant plus VAT, only 25 seats available

To book your seats, please contact us by email ([email protected]) or phone (+40 741 103 133).

Lunch and Coffee Breaks included in the price of the Masterclass.

Browse more masterclasses here.

The real perils of artificial intelligence

terminator

Why is The Terminator scenario in AI unrealistic? Modern AI focuses on automated reasoning, based on the combination of perfectly understandable principles and plenty of input data, both of which are provided by humans or systems deployed by humans. To think that common algorithms such as nearest neighbour classifier or linear regression could somehow spawn consciousness and start evolving into superintelligent AI minds is farfetched in our opinion.

The idea of exponential intelligence increase is also unrealistic for the simple reason that even if a system could optimise its own workings, it would keep facing more and more difficult problems that would slow down its progress. This would be similar to the progress of human scientists requiring ever greater efforts and resources from the whole research community and indeed the whole society, which the superintelligent entity wouldn’t have access to.

Read more about the doomsday scenarios within the AI field in this article written by Strongbytes.

3 Fintech areas where AI bring the most value

fintech ai

Having discovered the power of artificial intelligence, people all over the world are doing their best to integrate its capabilities into their businesses. According to data from Gartner, by the end of 2020, 20% of citizens in developed nations are expected to use AI for everyday operational tasks.

Customer support revived

Customer-oriented systems such as text chats, voice systems and chatbots are no longer a novelty. They can carry on human-like conversations and deliver expert advice at a low cost. A lot of banks and companies offering financial services have these capabilities in place.

Credit scores and loans

The use of AI in this field brings a major improvement to the decision-making process by turning it into a faster and more reliable one. This translates into allowing more people to apply for a loan or credit, thus increasing their chances of actually getting it.

Fraud detection

Since the advent of electronic commerce and online banking, payment fraud is a constant in our lives. A 2018 report from McAfee shows that the cost of cybercrime currently reaches 0.8% of the global gross domestic product. The most prevalent type of financial cybercrime is credit card fraud, which grows at a fast pace due to the increase in online transactions. But AI tools and machine learning algorithms are quite successful in detecting financial fraud.

Read more about the topic in this article written by our friends from Strongbytes.