Senior Software Development Lead
CurrentMy responsibilities include building web applications, desktop applications, and back-end services that allow users to search, filter, and browse records, chart and graph records to show trends, and allow users to process data through custom workflows.In addition, I am responsible for training developers on full stack best practices. Great software development is not one single bullet; it's a hundred little techniques. In, my hands-on class, developers build real web applications from scratch while learning these techniques along the way These practices include how to build REST endpoints that execute ElasticSearch queries, how to build REST endpoints that execute SQL transactions, how to debug the Angular TypeScript code and back-end Java code using IntelliJ, how to build the front-end Angular components, how to setup a navigation bar that's beautiful and functional, how to make charts using HighCharts, and how to build unit tests with an embedded ElasticSearch or embedded postgres data source. The technologies I use on a daily basis include the following: On the back-end, Java, Maven, Spring MVC, SpringBoot, ElasticSearch, Flyway, Postgres, and Hadoop. On the front-end, Angular, Angular Material Design, NPM, HighCharts, and ag-grid. Maven is used to mange the Java dependencies, NPM is used to manage the JavaScript dependencies, and HighCharts is used to display the charts and graphs on the front-end. Finally, Maven and the Angular CLI are used together to package the entire web application into a single executable JAR that can be easily deployed or placed in a container.ElasticSearch is the search engine employed by the project. The web applications send JSON over HTTPS to the ES cluster for searches. ES responses are sent back to the front-end and displayed in an Angular Grid. ES aliases are employed so that the web application can search the last 30 days of ES data.