![[hexa_logo.svg|700x200]] >[!info]- Company Overview >Hexa Containment is a leading company in the industry, specializing in American-made spill containment, spill recovery, surface protection, and facility & safety products. Founded to provide robust solutions engineered for extreme conditions, the company manufactures its products at its headquarters in Houston, Texas. Hexa Containment serves a wide range of needs with a comprehensive product line and offers customized solutions for unique requirements, including support for various harsh chemicals and environments. The company emphasizes customer support, offering round-the-clock service to ensure effective and immediate assistance. > [!info] > Role: Lead Full Stack Engineer > Job Type: Contract > Started: April 2022 > Ended: Current > [Marketing Site](https://hexacontainment.com/) > [Customer Portal](https://customer.hexahq.com/auth/login) > > Core Stack: #Angular #Rails #AWS #REST > Technologies: #Bugsnag #Sentry #Auth0 #Gitlab #Figma #Redis #Sidekiq #JavaScript #TypeScript #CSS #SASS #HTML #Git #AWS/EC2 #AWS/ElasticBeanstalk #AWS/RDS #Jest #Rspec #Netlify #Angular/Material #NgRx #RxJs #NewRelic #PostgreSQL > > >[!tip]- Jibble Integrated Timetracker > >Built a feature using Rails to run a cron task that would fetch employee time entries from [Jibble](https://www.jibble.io/) via their API. This required authentication, so I would generate an auth token and store it in redis. When the task ran, the expiration on the token would be checked and renewed. > > > >The cron task would run daily and fetch and store the entries in Hexa's database. From there, I made a SSR page where management could go and check things like labor and cost about their employees. > > > >I also ended up integrating with New Relic. So that I could more efficiently track logs. At the time they were just reading the log files on the EC2 instance that the application was deployed on. > > > >#Rails #PostgreSQL #Redis #NewRelic > > >[!tip]- Production Scheduler > >This was a feature that allowed management user roles to create and view Kanban production schedules. Which would show inventory deficits, purchase orders, and custom orders. The management would add work to queues and lesser user roles only had the ability to update the work in the stack from different statuses. The view also should things like trending completion time which would give management projection insight on how much work was getting accomplished and if they would be able to meet their daily deliveries. > > > >#Rails #PostgreSQL > > >[!tip]- Customer Portal > >This was an entire application that utilized Rails as an API and Angular for the front end. > > >[!tip]- Customer User Creation > > >I built a SSR Rails page on Hexa's internal application that would allow them to create customer user accounts for their clients. Under the hood, this would not only create the necessary records to tie the user to purchase orders, accounts, and etc. It would also generate a user within Auth0 for them to be able to login to the customer portal. > > > > > >The users also had the ability to request access via the customer portal. This would send out an email to Hexa staff. > > > > > >#Rails #Angular #Auth0 #PostgreSQL > > > > > > >[!tip]- Portal Inventory > > >The customer portal was unique for every client's account. So I created tools within Hexa's internal application that would allow the staff to create different categories and product types. These were dynamic and allowed them to create grouped products that could be set for each account. > > > > > >When the users logged in via the customer portal. They could see the categories, product types, and products that were selected for them to view and purchase. > > > > > >#Rails #Angular #PostgreSQL > > > > >[!tip]- Portal Purchasing > > >Once customers selected from the different products to purchase they could checkout. This would generate a purchase order to the Hexa internal staff who then contacted and approved the order. During this process, invoices and quotes would get generated as PDFs that the customers could use. > > > > > >#Rails #Angular #PostgreSQL > > > > > > >[!tip]- Portal Orders > > >Customers could view all current and past order via dashboard. They could also view QuickBooks invoices and their quotes in pdf format. > > > > > >#Rails #Angular > >