Logo

Ignacio Fernández

Software Engineer & Designer

Hi! I am Ignacio, a 23 years old software engineer residing in Uruguay and currently working as a fullstack developer at Cargonet.

I highly recommend you reading this article by DHH to quickly understand my approach to software development and most aspects of my life, from the moment I saw it, I took it as my north star.

It must be worth it even if it doesn’t work

I shine when I can take ownership of a problem, most of the time in a small team this implies stepping out of just writing code, and this is a procces that I love given that I’ve also care deeply about the whole product and the parts of software that are not code.

I strongly believe that the way to go is to being open to create value in a wide range of areas. I work as a software engineer, yes, but I’ve also tackled tasks in areas such as design, branding, marketing, among others.

I follow closely what’s happening in the software industry and how small startups and meaningful founders are building products that I engage with, that solve real problems, I love to learn from them and apply it to my own work.

Real world experience

I’ve been working full time since April 2024 as a fullstack developer at Cargonet, an Uruguayan Freight Forwarder agent. When I first started I had no idea about what a freight forwarder was but I loved the challenge as much as the opportunity.

Since then, I’ve been working in a small team with great people (such as Diego) within a fast-paced environment, this job allowed me to build my trust as a developer with real world experience, I am lucky being able to build software that solves real problems, and experience deploying a feature in the morning and getting feedback from the end users during lunch.

I’ve tackled a wide range of problems in every stage of my career here, so taking into consideration this great article as a guide, here is how I grew at Cargonet from most recent to oldest:

  • 9 to 18 months, fullstack development and increased ownership (Current)

Capable of devising new patterns and conventions within existing code bases and in greenfield development. Requires no direction to effectively manage their time, finds valuable and productive tasks to work on without prodding. Work doesn’t necessarily need to be reviewed, but general approach may be.

During this stage, I took full responsibility for the frontend: building new features, fixing bugs, improving performance, and keeping the codebase clean and maintainable.

Given my understanding of how the product was used day to day, I naturally became a point of contact for questions, feedback, and real-world issues, which increased my ownership and strengthened the connection with end users.

We needed a better way to organize and track user feedback and internal requests. I was given full autonomy and ownership to design and build a new backoffice service from the ground up, defining both the system architecture and the user experience.

Here I applied my frontend experience to a new internal interface and worked closely with peers to design a clean, scalable, and maintainable microservice using Spring Boot.

I was fully trusted not only to design features and fix bugs but also to deploy directly to production using Docker containers and custom scripts, improving the frontend deployment workflow and reducing release times.

I also started pushing for a more consistent way to approach new tasks, like:

  • If the state is complex enough or if it needs to be easily shared or persisted client-side, go for Zustand
  • Define schemas and run validations using Typescript and Zod
  • Using the needed endpoints, create and easily reuse queries or mutations using React Query

Also, after the news that CRA is being deprecated I take action into migrating our whole app’s frontend to Vite improving hot refresh, build times, and overall developer experience.

  • 3 to 9 months, frontend web development, figma UI prototyping, AI research and implementation

Work is reviewed with some back and forth, may require oversight from senior peers. Prioritizes tasks and project work with little direction, works confidently and effectively persisting when faced with uncertainty or ambiguity but pulls in support when needed. Follows established patterns and approaches within existing code bases with ease, capable of working on clearly defined and scoped individual features or problems.

Here I’ve started writing code for the main internal-use tool, focusing on React and managing bug-fixes in the legacy codebase. I was the main responsible of improving and refactoring the overall look and feel of the tool, mostly css-focused changes. Aiming for a more modern and professional look I’ve created an unified style and certain guidelines to make it easier in a future to develop new features.

I’ve also was responsible of translating team ideas into a dynamic figma prototype which was the blueprint to our dashboard. Once the prototype was finished, I’ve developed the dashboard’s frontend using mostly mantine and shadcn.

We also take a few weeks to research about possible implementations using langchain and third-party LLM’s providers such as groq, creating a functional proof of concept.

At the end of this period I was able to identify and apply improvements to the existing codebase on a daily basis, even in the code that I wrote when I just started.

  • 0 to 3 months, frontend mobile development

During this stage, I started writing React Native, for a sales-focused application, replicating already existent logic into more simplified and compact approach, less features but high research around the React native ecosystem. I’ve also proposed simple solutions for brand identity needs using figma.

Occasional issues following patterns and approaches within existing code bases, routine and tightly-scoped problems, required regular guidance and a somewhere straight-forward path to follow.