Senior Software Engineer - Technology & Digital
QUALIFICATIONSDegree from an accredited college/university in technology related field4 - 8 years of IT experience with appetite for high end software development
Experience in all facets of software development life cycle, e.g. analysis, design, development, system integration and implementation
Experience with Java 8 and Spring
Boot 2 framework
Experience with build automation engines like Maven or Gradle
Proficient experience working with Java testing frameworks like JUnit and Mockito
Experience writing and utilizing RESTful API services and performance tuning applications
Ability in handling data through SQL databases via JPAExperience developing Single-Page applications using technologies and frameworks like ReactJS, Redux, AngularJS, Typescript, Bootstrap and modern open-source web frameworks
Experience with Java
Script unit testing frameworks and libraries, such as Mocha, Chai, Jasmine, Jest and Enzyme
Knowledge/Experience with HTML5, CSS3Basic understanding of tools like WebPack or Browserify
Experience working with Microservices and Event Driven Architecture
Experience with Docker, Docker Compose and artifacts managers like JFrog. Experience working with container orchestration managers such as Kubernetes
Experience with DevOps practices and tooling (E.g.
CD pipelines, Chef, Puppet or Ansible)Knowledge/experience in developing cloud native applications on platforms such as AWS, Azure or Heroku
Experience in Agile software delivery; acceptance test driven development and/or test-driven development preferredWHO YOU'LL WORK WITHYou will be based in New York and will be part of our Technology & Digital (T&D) function, focused on digital evaluations. This group implements technology solutions that are used to attract, develop and retain exceptional people at McKinsey. You’ll be part of a team that is a core element of the people tribe that is responsible to deliver technology enabled solutions of the future. This will involve all business value chain activities from understanding product needs to product development to on-going maintenance and enhancement.
WHAT YOU'LL DOYou will be responsible for development, support, maintenance and implementation of an application and work on problems of relatively complex scope, through general usage of standard programming concepts and principles. In this role, you will contribute to the architecture across the technology stack, from database to native apps. You’ll be member of a squad with technical capability to develop and implement various components of an application. You will create rapid prototypes, as well as full-scale applications. You will work collaboratively with design and development team to deliver fully function web-based and mobile applications that meet business goals. You will also work as a fully contributing team member, under broad supervision/ guidance from senior engineers. You will adhere to software development best practices, standards, and road maps. Lastly, you will deliver components with high code quality and security.