Intro to Myself
Hello, World! My name is Christian Robles and I’ve been programming since 2013.
My journey into programming began in 8th grade. I was in an engineering class where we had to build an assembly line for transporting a wooden block. I was responsible for programming the beginning part of the assembly line. We used a language similar to Robot C and I liked how the code just worked. It does exactly what you ask it to. Plus doing an entire semester worth of work in about four lines of code was pretty cool too.
Education
With my sights set on programming, I attended Advanced Technologies Academy for their Computer Science program. Thanks to some great teachers, I learned the fundamentals of programming with Visual Basic, C++, and Java.
A couple days after graduating in 2017, I started working as a Full Stack Developer at LV.Net. Getting the opportunity to work as a developer straight out of high school allowed me to put myself through college while gaining real world experience at the same time.
In 2022, I earned my Bachelor of Science in Computer Science from UNLV. While there, I studied Data Structures and Algorithms, Assembly and CPUs, Operating Systems, Networks, Compilers, Databases, and many other areas of Computer Science.
Work Experience
LV.Net and ISP.Net
I spent about seven years working as a Full Stack Developer at LV.Net and ISP.Net. This is where I learned most of what it means to actually build and support software that people depend on every day.
The main application I worked on was a custom internal business application used throughout the company. It had around 100 database tables, more than 50 pages, and was used by departments including HR, Accounting, Operations, Sales, and Support.
Most of the application was built using the LAMP Stack with Linux, Apache, MySQL, and PHP. On the front end I worked with JavaScript, jQuery, HTML, and CSS. I also worked with technologies such as Symfony, Doctrine, Smarty, cron jobs, APIs, GPS systems, RFID hardware, SMS services, and Google Maps.
Over time I was able to take ownership of projects from the initial idea all the way through development, deployment, and long term support.
One of the largest systems I worked on was our employee scheduling and timekeeping system. It handled employee shifts, clock ins, overtime, PTO, tardies, time off requests, timecard corrections, and write ups. I worked closely with HR and Accounting to understand the rules behind these processes and turn them into software.
I also developed an HR onboarding application that converted the company’s paper onboarding process into a web application. Employees could complete their forms before their first day and the information could then be routed to HR or Accounting depending on what needed to happen next. This included federal employment forms such as the I 9 and W 4, direct deposit information, background check forms, and employee information.
Another project involved tracking field technicians using GPS data. I worked with management to determine when technicians arrived at jobs, how long they were there, whether they were late, and how to handle difficult situations such as casino parking garages, rooftop installations, technicians parked around the corner from a job, and vehicles that were idling. The final system included reports, alerts, and Google Maps visualizations and saved management many hours every week.
I also worked on billing automation that compared thousands of transactions against our billing system. Shortly after it was deployed, the system helped identify more than $20,000 in missed revenue.
One of the most valuable things I learned at ISP.Net was how to work with older software. Some parts of the application had been worked on by many developers over many years. I learned when it was better to make a small and safe change and when it made sense to build something new with a cleaner structure. Later, I helped work on the gradual migration of parts of the application into Symfony and Doctrine, which taught me a lot about maintaining existing systems while slowly improving their architecture.
Vegas Low Roller
I also worked as a Software Engineer contractor for Vegas Low Roller LLC.
I worked with a small team developing a slot machine game and built a command line math simulator used to test the game’s behavior. I worked with a proprietary C++ game engine and built tools around the math behind the game.
This project was very different from the business applications I was used to building and gave me experience learning an unfamiliar code base, working closely with a mathematician, coordinating with a small development team, and documenting software for other developers.
LVMPD
Today I work as a Programmer Analyst at the Las Vegas Metropolitan Police Department.
My role involves supporting and developing software used throughout the department. I work with developers, Business Analysts, officers, supervisors, vendors, and other IT teams to troubleshoot problems and improve applications.
A large part of my job is production support. When someone reports an issue, I work with them to reproduce it, determine whether the problem is coming from the application, hardware, configuration, or another system, and find a solution or workaround.
I also get the opportunity to develop solutions when a business process needs to be improved.
One project involved creating a mobile arrest documentation workflow using Softdocs. I worked with department personnel to understand the existing process and determine what information was required. The solution allowed officers to complete the required documentation in the field and send it to jail personnel so they could begin their part of the process without requiring the arresting officer to leave the field just to deliver paperwork.
The system used Softdocs to create the forms and export PDFs to a server. I then used PowerShell and Windows Task Scheduler to process the files, preserve the originals, rename them with useful information, and place them where jail personnel could easily access them.
I have also worked with vendor APIs where I was responsible for studying an unfamiliar API, testing it with Postman, learning its authentication methods, identifying missing functionality, working directly with the vendor to improve the API, and building a Python solution that could provide the information needed by downstream systems.
Working at LVMPD has given me a different perspective on software development. At ISP.Net I spent years building custom enterprise software from the ground up. At LVMPD I have been able to see the other side of enterprise software, where reliability, production support, vendors, existing platforms, documentation, security, and the people using the application are just as important as writing the code itself.
Personal Projects
Outside of work, I still spend a lot of time learning and building my own projects.
Recently I have been getting deeper into Java, Spring Boot, PostgreSQL, Docker, Groovy, and modern application architecture.
One of my current projects is a utility operations application inspired by the types of workflows found in systems such as Oracle Customer to Meter and IBM Maximo. It includes customers, addresses, service points, meters, employees, work orders, business rules, audit history, REST APIs, database migrations, automated testing, and external system integrations.
I built the application using Java 21, Spring Boot, PostgreSQL, JPA, Hibernate, Flyway, Thymeleaf, Groovy, and Docker. I also deployed the application and database to the cloud so that I could get experience taking a project from development on my computer all the way to a running production environment.
I am also learning Swift and SwiftUI because I want to build native applications for Apple platforms and better understand mobile application development.
What Now
When I first made this website, my goal was to become a better backend developer. That is still something I care about, but after years of working professionally, my goals have become a lot broader.
I want to become the kind of developer who can understand a business problem, design a good solution, build it, deploy it, support it, and improve it over time.
I have spent most of my career working on business applications, and that is still the type of software I enjoy building the most. I like taking processes that are slow, repetitive, confusing, or dependent on spreadsheets and paperwork and figuring out how software can make them better.
There is still a lot I want to learn. That is part of why I continue building personal projects. Every project gives me an excuse to learn a new language, framework, architecture, or way of approaching a problem.
You can see what I am currently working on in my personal projects.