100
100
100
100
100
100%
Orange and blue background.

Bril Lopez

Frontend DEV & Designer

body { background-color: #1d1f21; color: #c5c8c6; font-family: 'Courier New', monospace; } h1 { font-size: 4em; text-shadow: 2px 2px #00ff00; }

body { background-color: #1d1f21; color: #c5c8c6; font-family: 'Courier New', monospace; } h1 { font-size: 4em; text-shadow: 2px 2px #00ff00; }

const generateRandomCode = () => { const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; let code = ''; for (let i = 0; i < 8; i++) { code += chars.charAt(Math.floor(Math.random() * chars.length)); } return code; }; console.log(generateRandomCode());

const generateRandomCode = () => { const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; let code = ''; for (let i = 0; i < 8; i++) { code += chars.charAt(Math.floor(Math.random() * chars.length)); } return code; }; console.log(generateRandomCode());

<p>Why don't skeletons fight each other? <span style="visibility:hidden;">Because they don't have the guts!</span> But seriously, I think they just prefer to keep things < span style = "visibility:hidden;" > bare - bones.</span ></p>

<p>Why don't skeletons fight each other? <span style="visibility:hidden;">Because they don't have the guts!</span> But seriously, I think they just prefer to keep things < span style = "visibility:hidden;" > bare - bones.</span ></p>

developer = {"code_quality": "works on my machine", "bugs": "features", "coffee": "empty"}; print(f"Code Quality: {developer['code_quality']}, Bugs: {developer['bugs']} - Solution: Refill coffee cup and remember: 'If it works on my machine, it's a deployment issue.'")

developer = {"code_quality": "works on my machine", "bugs": "features", "coffee": "empty"}; print(f"Code Quality: {developer['code_quality']}, Bugs: {developer['bugs']} - Solution: Refill coffee cup and remember: 'If it works on my machine, it's a deployment issue.'")

using System; class Program { static void Main() { int num1 = 5, num2 = 10; Console.WriteLine("Sum: " + (num1 + num2)); } } using System; class Program { static void Main() { int num1 = 5, num2 = 10; Console.WriteLine("Sum: " + (num1 + num2)); } }

using System; class Program { static void Main() { int num1 = 5, num2 = 10; Console.WriteLine("Sum: " + (num1 + num2)); } } using System; class Program { static void Main() { int num1 = 5, num2 = 10; Console.WriteLine("Sum: " + (num1 + num2)); } }

SELECT * FROM developers WHERE caffeine_level > 100 AND sleep_hours < 4; SELECT * FROM relationships WHERE status = 'complicated';

SELECT * FROM developers WHERE caffeine_level > 100 AND sleep_hours < 4; SELECT * FROM relationships WHERE status = 'complicated';

public class Main { public static void main(String[] args) { int a = 5, b = 10; System.out.println("Sum: " + (a + b)); } }

public class Main { public static void main(String[] args) { int a = 5, b = 10; System.out.println("Sum: " + (a + b)); } }

test('adds 10 + 20 to equal 30 and multiplies 2 * 5 to equal 10, and checks if 5 is greater than 3', () => { expect(10 + 20).toBe(30); expect(2 * 5).toBe(10); expect(5).toBeGreaterThan(3); });

test('adds 10 + 20 to equal 30 and multiplies 2 * 5 to equal 10, and checks if 5 is greater than 3', () => { expect(10 + 20).toBe(30); expect(2 * 5).toBe(10); expect(5).toBeGreaterThan(3); });

$developer = @{ "CodeReview" = "Pending"; "TestCoverage" = "Optional"; "Deadline" = "Yesterday" }; Write-Host "Code Review: $($developer.CodeReview), Test Coverage: $($developer.TestCoverage), Deadline: $($developer.Deadline) - Ah, the perfect development cycle!"

$developer = @{ "CodeReview" = "Pending"; "TestCoverage" = "Optional"; "Deadline" = "Yesterday" }; Write-Host "Code Review: $($developer.CodeReview), Test Coverage: $($developer.TestCoverage), Deadline: $($developer.Deadline) - Ah, the perfect development cycle!"

package main; import "fmt"; func main() { for i := 1; i <= 100; i++ { if i%15 == 0 { fmt.Println("FizzBuzz") } else if i%3 == 0 { fmt.Println("Fizz") } else if i%5 == 0 { fmt.Println("Buzz") } else { fmt.Println(i) } } }

package main; import "fmt"; func main() { for i := 1; i <= 100; i++ { if i%15 == 0 { fmt.Println("FizzBuzz") } else if i%3 == 0 { fmt.Println("Fizz") } else if i%5 == 0 { fmt.Println("Buzz") } else { fmt.Println(i) } } }

fibo = [0, 1]; (2..29).each { |i| fibo << fibo[-1] + fibo[-2] }; puts "First 30 Fibonacci numbers: " + fibo.map.with_index { |num, idx| "#{idx + 1}: #{num}" }.join(', ')

fibo = [0, 1]; (2..29).each { |i| fibo << fibo[-1] + fibo[-2] }; puts "First 30 Fibonacci numbers: " + fibo.map.with_index { |num, idx| "#{idx + 1}: #{num}" }.join(', ')

class CardFactory { fun createCard(type: String): Card = when(type) { "creature" -> CreatureCard("Goblin", 1, 1); "spell" -> SpellCard("Fireball", "Deal 3 damage"); "artifact" -> ArtifactCard("Black Lotus", "Sacrifice for 3 mana of any color"); else -> LandCard("Mountain") } }

class CardFactory { fun createCard(type: String): Card = when(type) { "creature" -> CreatureCard("Goblin", 1, 1); "spell" -> SpellCard("Fireball", "Deal 3 damage"); "artifact" -> ArtifactCard("Black Lotus", "Sacrifice for 3 mana of any color"); else -> LandCard("Mountain") } }

A headshot of a coder.
Background of orange geometric trees with a blue sunrise.

ABOUT ME

I'm a PC gamer, former professional Magic the Gathering player, current Hearthstone Battlegrounds enthusiast, board game aficionado, Lord of the Rings fanboy, and all-around nerd.

For the past seven years, I've worked as a full-stack software engineer. I started off as a frontend engineer, but as time went on, I found myself increasingly focused on backend work.

Its been great, but what drove me to this career was the creative outlet that frontend work provided me. I'm one of those crazies that love CSS. After years of navigating the dark depths of backend code and deployment pipelines, it's time to grab this Balrog of a career path by the horns and steer it in the direction I want.

I'm seeking a role as a senior frontend developer, consultant, or a design role with mentorship opportunities.

Let's build Awwwards winning websites together.

WORK HISTORY

Ai generated image of coworkers collaborating on a project.Ai generated image of a lion drawn on a tablet.Ai generated image of a software engineer sitting at a desk with four monitors.Ai generate image of Portland, Oregon.

Portland based fullstack software engineer with over 7 years of experience.

2006 - 2014

Army National Guard

25U - Signal Support Systems Specialist

As a Signal Support Systems Specialist in the Washington Army National Guard, I maintained and troubleshooted communication systems, including radios, satellites, and networks. I ensured secure, reliable connections and trained others to use the equipment, keeping operations running smoothly.

2017 - 2020

Zapproved

Software Engineer

Zapproved is a Portland-based SaaS company that specializes in cloud-based e-discovery software. During my time there, Zapproved was recognized as one of the fastest growing and most admired companies in Oregon, according to Portland Business Journal.

One of the major projects I worked on at Zapproved was Digital Discovery Pro, a cloud-based e-discovery software. My role included integrating cutting-edge cloud solutions and collaborating with other engineers to ensure the platform was scalable and robust in order to manage vast amounts of litigation data.

As a part of this project, I was responsible for both frontend and backend development, ensuring smooth integration between the components. I worked closely with the product team to build features and streamline the data review process.

Angular
Component Libraries
Platform Architecture
Cloud Integration
Design Patterns
Scrum/Agile
C#
.NET
Mouse icon

2020 - 2021

Serverless Guru

Senior Serverless Engineer

Serverless Guru is a cloud consulting company specializing in AWS serverless architecture. My role involved working closely with enterprise clients, including Air Canada, to architect, build, and deploy scalable serverless applications, as well as providing consulting services to enhance cloud adoption strategies.

Additionally, I oversaw the use of SonarQube, leading an effort to eliminate code smells and mitigate security risks across their services. My work had a direct impact on improving code quality, security, and best practices.

AWS
Serverless Architecture
CloudFormation
Lambda
SonarQube
CI/CD
Cloud Security
Code Reviews
DevOps
Infrastructure as Code
Mouse icon

2021 - 2023

Ruby

Senior Fullstack Engineer

Ruby is a leading provider of virtual receptionist and live chat services. I contributed to the development of internal applications used by receptionists for efficiently handling calls, scheduling appointments, and performing essential customer service tasks.

I worked on the internal applications team. One major task I worked on was to redesign and restructure a large part of the monolithic frontend application that was causing production delays. The existing codebase suffered from poor state management and implicit types, which hindered feature development. My work modernized the application, significantly improving developer productivity.

Frontend Architecture
State Management
TypeScript
.NET
Backend Development
Cloud Migration
CI/CD
Cloud Security
Angular
C#
Dotnet
Mouse icon

2022 - 2023

Pure Chat

Senior Fullstack Engineer

After Ruby acquired Pure Chat, I took the lead on maintaining the product, ensuring its seamless integration into Ruby’s internal applications. I managed both the integration and continued support for Pure Chat’s existing customers, overseeing its functionality while maintaining its core features for real-time customer engagement and live chat service.

I worked with several departments, including finance, legal, product, marketing, and engineering management. This wide-ranging responsibility gave me a comprehensive understanding of the product and its impact on Ruby’s broader ecosystem. I wrote thorough documentation outlining all maintenance tasks, as well as onboarding materials, which I used to rapidly onboard three developers to the project.

I managed the production environment, including Google Analytics, monitoring production logs, and handling outages with 24-hour on-call support. Whether it was day or night, I ensured that PureChat was stable and functioning correctly.

React
Javascript/Typescript
Google Analytics
Team lead / Mentorship
Cross-departmental Collaboration
Monitoring and Prodcution support
Mouse icon
SEARCH
Next.js
Tailwind CSS
Angular
React
Storybook
Component Libraries
JavaScript
Scrum/Agile
TypeScript
C#
HTML
CSS3
AWS Lambda
Backbone
Node
.NET 5.1
AWS Route 53
Git
GitHub Actions
Jenkins
Postgres
AWS SQS
AWS SNS
AWS RDS
CloudFormation
CloudWatch
Terraform
AngularJs
Winforms
Angular Material
Dotnetcore
SQL Server
SSR (Server-side rendering)
Redis
TeamCity
Graylog
Logstash
Kibana
Docker
RabbitMQ
Maria DB
AWS Step Functions
Serverless Framework
AWS API Gateway
GraphQL
AWS EC2
AWS S3
SonarQube
Swagger
Mocha
Jasmine
jQuery
AWS Elasticsearch
AWS DynamoDB
BitBucket
Jira
Frontend Architecture
Serverless Architecture
State Management
framer-motion
GreenSock (GSAP)
Reusable Component Libraries
Figma
Adobe Photoshop
Adobe Firefly
Adobe Illustrator
Wireframing
Prototyping
Responsive/Mobile First Design
CSS Preprocessors
Webpack
Redux
Accessibility Best Practices
SEO Optimization
WebSockets
Continuous Integration/Deployment (CI/CD)
Animations/Transitions
NPM
AWS IAM
Google Analytics
Yarn
Vite
Three JS
Microservice Infrastructure
Sketch
Linting tools
Firebase
API Integration
SOLID Design Principles
Functional Programming
Test Driven Development
Design Patterns
Object Oriented Programming
Dependency Injection
94 SKILLS

bril.dev@outlook.com

/in/dlopez6877

dlopez6877

LET'S

CONNECT

CURRENTLY INTERESTED IN:

FRONTEND
UX/UI DESIGN
FULL-TIME
PART-TIME
CONTRACT
STARTUPS
CONSULTING
FREELANCE